ここでは、GAM を使用して新しいリポジトリを作成するために必要な手順について説明します。
GAM Manager リポジトリの管理者だけが、新しい
リポジトリを作成できることに注意してください。
GAM Backend を使用して
GAM Manager リポジトリの管理者として接続し、リポジトリを作成、更新、および削除できます。
GAM API はリポジトリの管理に必要なメソッドを提供するので、GAM Backend に手を加えてリポジトリ管理用のインターフェースを好みに合わせて変更できます。
1.GAM Manager リポジトリに接続します。
2.GAM Backend の "gamhome" を実行して、 [ 設定 ] ノードの下にあるメニューの [ リポジトリ ] オプションを選択します (GAMExampleWWRepositories オブジェクトを呼び出します)。このオプションは、現在のリポジトリが「GAM Manager リポジトリ」の場合にのみ使用できます。
ここで、リポジトリを追加、更新、および削除できます。
ここでは、(特に) 次の詳細情報を入力する必要があります:
- [ 現在のリポジトリを認証マスターリポジトリとして使用する ] - 「GAM: 現在のリポジトリを認証のマスターリポジトリとして使用」を参照してください。
- [ 名前空間 ] - リポジトリの名前空間です。名前空間は、何らかの共通点 (例: 所属する会社) のある複数のリポジトリをグループ化する手段です。 [ 現在のリポジトリを認証マスターリポジトリとして使用する ] がチェックされている場合は非表示になります。
- Connection User - 新しいリポジトリの接続ユーザーです。
- Connection Password - 新しいリポジトリの接続パスワードです。
- [ 現在のリポジトリを認証マスターリポジトリとして使用する ] がチェックされている場合に表示されます。新しいリポジトリの管理者ユーザーの認証タイプを示します (例: ローカル)。
- Administrator User - 新しいリポジトリの管理者ユーザーです。
- Administrator Password - 新しいリポジトリの管理者パスワードです。
注: 管理者ユーザーが、新しいリポジトリと同じ名前空間を持つ別のリポジトリのいずれかのユーザーと同じ場合、このユーザーのパスワードを指定する必要があります。そうしないと、次のエラーがスローされます:
ユーザー名が既に存在します。(GAM49)。
これは、属するリポジトリの名前空間をユーザーが継承するためです。他と同じ名前空間を持つリポジトリでユーザーを定義しようとする場合、そのユーザーは既に存在しているユーザーになります。
- 特定のロールを選択して新しいリポジトリにコピーすることができます (後述の 3 を参照)。
- 新しいリポジトリに新しいロールを自動的に作成することもできます。この場合、ロールの名前は "Administrator" になり、ロール外部 ID として "is_gam_administrator" が割り当てられます。これの主な目的は、ユーザーに GAM Web Backoffice へのアクセスを許可することです。「GAM Backoffice への制限付きアクセス」を参照してください。後で、必要と考えられるすべての GAM アクセス許可をこのロールに取り込むことができます。
- 管理者ユーザーにはリポジトリの Administrator ロールが割り当てられます。Administrator ロールはリポジトリの初期化時に決まります。
- Update Connection File - この項目をチェックすると、connection.gam ファイルがオンラインで更新されます。この場合、使用される connection.gam と新しいリポジトリに接続するための接続情報がマージされます。新しいリポジトリの接続情報のみの connection.gam ファイルを作成したい場合は、「GAM リポジトリ接続情報の取得方法」を参照してください。
GAM リポジトリを作成するための基本コードは次のとおりです:
&GUID = GUID.NewGuid().ToString()
&RepositoryCreate.GUID = &GUID
&RepositoryCreate.Name = &Name
&RepositoryCreate.NameSpace = &NameSpace
&RepositoryCreate.Description = &Description
&RepositoryCreate.AdministratorUserName = &AdministratorUserName
&RepositoryCreate.AdministratorUserPassword = &AdministratorUserPassword
&RepositoryCreate.AllowOauthAccess = &AllowOauthAccess
&RepositoryCreate.ConnectionUserName = &ConnectionUserName
&RepositoryCreate.ConnectionUserPassword = &ConnectionUserPassword
&RepositoryCreate.GenerateSessionStatistics = &GenerateSessionStatistics
&RepositoryCreate.GiveAnonymousSession = True
&RepositoryCreate.AllowOauthAccess = True
&RepositoryCreate.CreateGAMApplication = &CreateGAMApplication
&isOK = &GAM.CreateRepository(&RepositoryCreate, &UpdateConnectionFile, &Errors) //&Errors は GAMError のコレクション
//RepositoryCreate は RepositoryCreate GAM オブジェクトに基づく
If &isOK
Commit
Else
Do 'DisplayErrors'
Endif
RepositoryCreate GAM オブジェクトのこのプロパティを使用すると、作成するリポジトリ内に
GAM Backend アプリケーションを作成できます。
ユーザーは、このアプリケーションを作成しない限り、そのリポジトリに接続された GAM Web Backoffice を実行できません。CreateGAMApplication をアクティベートする必要があるかどうかは、場合によって異なります。
コード:
&RepositoryCreate.CreateGAMApplication = &CreateGAMApplication
ログに記録されたユーザーを新たに作成されたリポジトリの管理者に設定できます。
このプロパティの詳細については、
gamadmin および
admin の例を参照してください。
重要: このチェックボックス ( [ このユーザーを新しいリポジトリの管理者にする ] ) を使用すると、アクセスが許可されたリポジトリに切り替えることができます。このチェックボックスでは GAM.RepositoryUserEnable API メソッドが使用されています。
別のリポジトリの設定から次のものをコピーすることによって、リポジトリを初期化できます:
- GAM アプリケーション (メニューとアクセス許可を含む)
- ロール (アクセス許可を除く)
- セキュリティポリシー
- ロールのアクセス許可 (アクセス許可とロールの関係)
[ ロールをコピー ] オプションを使用すると、(リポジトリ ID コンボボックスで選択した) リポジトリのロールを、作成中のリポジトリにコピーできます。
作成する管理者ユーザーが属するロールを [ 管理者ロールの ID ] で選択する必要があります。
適切なロールを選択しないと、次のエラーがスローされます:
[ 管理者ロールの ID ] プロパティで既存のロールを構成する必要があります。(GAM39)。
注:
- ロールのアクセス許可を追加するには、 [ ロールのアクセス許可をコピー ] オプションを選択する必要があります (5 を参照)。
- リポジトリからロールをコピーしない場合は、"Administrator" ロールが作成され、そのロールに外部ロール ID として "is_gam_administrator" が追加されます。「GAM Backoffice への制限付きアクセス」を参照してください。
別のリポジトリ ( [ リポジトリ ID からコピー ] で選択したリポジトリ) の GAM アプリケーションを使用してリポジトリを初期化できます。そのアプリケーションのすべてのアクセス許可とメニューがコピーされます。
[ アプリケーション ID からコピー ] の編集可能なボックスにアプリケーション ID を入力する必要があります。そうしないと、次のエラーがスローされます:
リポジトリ x ( [ リポジトリ ID からコピー ] ) に既存のアプリケーションを構成する必要があります。(GAM39)。
ロールとアクセス許可の関連付けをコピーする必要がある場合は、このオプションを選択します。
アプリケーション ID (アクセス許可のコピー元) を管理者ロールの ID とともに指定する必要があります (すべてのロールが一方のリポジトリからもう一方のリポジトリにコピーされるため、どれが Administrator ロールであるかを指定する必要があります)。
Administrator ロール ID に基づいて、管理者ユーザーに割り当てるロールが認識されます。
このオプションを使用すると、 [ リポジトリ ID からコピー ] で指定したリポジトリからすべてのセキュリティポリシーをコピーできます。
別のリポジトリのデータを初期化する (いずれかのリポジトリの GAM アプリケーションをコピーする) 代わりに、GAM アプリケーションを一から作成すると同時にリポジトリを作成して、そのアプリケーションで初期化することができます。
このシナリオでは、後でアプリケーションにデータを入力する必要があります。
注: リポジトリに接続する前に GAM アプリケーションを作成しないと、次のエラーがスローされます:
アプリケーション GUID は確認されていません。アプリケーションの管理者にお問い合わせください。(GAM174)。
リポジトリ用のアプリケーションを作成するには、GAMRepositoryCreate オブジェクトの Application メソッドを使用します。
例:
GUID = GUID.NewGuid().ToString()
&RepositoryCreate.GUID = &GUID //RepositoryCreate は RepositoryCreate GAM オブジェクトに基づく
&RepositoryCreate.Name = &Name
&RepositoryCreate.NameSpace = &NameSpace
......
&GAMApplication.GUID = &GUIDApp //&GAMApplication は GAMApplication GAM 外部オブジェクトに基づく
&GAMApplication.Name = &Name
&GAMApplication.Description = &AppDescription
&GAMApplication.Version = "1.0"
&GAMApplication.AccessRequiresPermission = TRUE
&RepositoryCreate.Application = &GAMApplication
&isOK = &GAM.CreateRepository(&RepositoryCreate, TRUE, &Errors)
注:
- CopyFromApplicationId メソッドを使用する場合、RepositoryCreate オブジェクトの Application メソッドが上書きされます。
- 別の方法として、(GAM Deploy Tool を使用して) アプリケーションデータを空のリポジトリにインポートすることもできます。
GAM Deploy Tool パッケージから新しいリポジトリを作成する方法