ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
IDCS/アイデンティティ・ドメインでのSAMLベースのIDPのジャストインタイム・プロビジョニングの構成
イントロダクション
SAMLベースのジャストインタイム(JIT)プロビジョニングは、新規ユーザー用のIdentity Cloud Serviceでのアイデンティティのユーザー作成を自動化するのに役立ちます。ユーザー・アカウントは、ユーザーがSSOを介してターゲット・アプリケーションにアクセスしようとすると作成されます。ユーザーの作成とともに、JITはプロビジョニングの一部としてグループ・メンバーシップを付与および取り消すこともできます。JITを使用して、ソース属性(サービス・プロバイダ- SP)をアイデンティティ・プロバイダ- IDPにマップすることで、プロビジョニングされたユーザーを更新することもできます。
IDCSでアイデンティティ・プロバイダのJITプロビジョニングを有効にすることで、ユーザーをより効率的に管理でき、ユーザーを手動で同期する管理コストを削減できます。
JITプロビジョニングを使用する利点
-
最初にすべてのユーザーをIdentity Management Cloud Service (IDCS)にロードしないが、ユーザーがログインしようとしたときにその場でユーザーを作成する必要があるコンシューマ・ユーザーの場合。
-
IDPでユーザーが手動で作成する必要がないため、管理コストを削減できます。
目標
REST APIを介してIDCS/アイデンティティ・ドメインでSAMLベースのIDPのジャストインタイム・プロビジョニングを構成します。
ノート: テナンシがすでにアイデンティティ・ドメインに移行されており、この設定をコンソールで実行する場合は、次のリンクを参照してください: ジャストインタイムSAML IdPの追加。
前提条件
-
IDCSには、JITプロビジョニング機能を使用するためのStandardライセンス層が必要です。JITは、各層のオブジェクト制限の対象となるアイデンティティ・ドメインを使用する場合、すべてのドメイン・タイプで使用できます。詳細は、「アイデンティティ・ドメイン・タイプの理解」を参照してください。
-
IDCSのJITプロビジョニング機能はデフォルトで無効になっているため、Oracle serviceリクエストを介して有効にする必要があります。
-
IDPは、SAMLを使用したシングル・サインオンのIDCS/アイデンティティ・ドメインで構成する必要があります。詳細は、「IDプロバイダの追加」を参照してください。
-
セキュリティ管理者権限を持つIDCS/アイデンティティ・ドメインのユーザー・アカウント。
-
Oracle Identity Cloud Service/アイデンティティ・ドメインのRESTエンドポイントを使用するためのPostmanを設定します。詳細は、PostmanでのOracle Identity Cloud Service REST APIの使用を参照してください。
タスク1: IDCS/アイデンティティ・ドメイン・テナンシで構成されたアイデンティティ・プロバイダのリストのフェッチ
-
https://idcs-xxxx.identity.oraclecloud.com/admin/v1/IdentityProviders (GET操作)というRESTエンドポイントを使用して、JITプロビジョニングを有効にするIDPのIDを見つけます。
サンプル出力:

タスク2: 構成済のSAML IDPの詳細のフェッチ
タスク1にあるプロバイダIDを使用して、JITプロビジョニングを有効にする構成済SAML IDPの詳細をフェッチします。
-
次のRESTエンドポイントを使用します: https://idcs-xxxx.identity.oraclecloud.com/admin/v1/IdentityProviders/{IDPプロバイダID} (GET操作)。
サンプル出力:

タスク3: JITプロビジョニングを有効にするためのIDPプロバイダ設定の更新
PATCH操作を使用してSAML IDPのJITプロビジョニングを有効にするようにIDPプロバイダ設定を更新します。
- https://idcs-xxxx.identity.oraclecloud.com/admin/v1/IdentityProviders/{IDPプロバイダID} (PATCH操作)のRESTエンドポイントを使用します。
ノート:
- 次のサンプル・コード・スニペットは参考用です。各属性を有効にする前に、Oracleドキュメントで各属性の詳細を確認することをお薦めします。
- グループ・メンバーシップを追加する場合は、グループをIDCSに事前作成する必要があります。
サンプル本文:
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "jitUserProvEnabled",
"value": true
},{
"op": "replace",
"path": "jitUserProvCreateUserEnabled",
"value": true
},
{
"op": "replace",
"path": "jitUserProvAttributeUpdateEnabled",
"value": true
},
{
"op": "replace",
"path": "jitUserProvGroupAssertionAttributeEnabled",
"value": false
},
{
"op": "replace",
"path": "jitUserProvGroupSAMLAttributeName",
"value": "groups"
},
{
"op": "replace",
"path": "jitUserProvGroupAssignmentMethod",
"value": "Overwrite"
}
]
}
次の表では、前述のIDPプロパティについて説明します。
| アイデンティティ・プロバイダ・プロパティ | 説明 |
|---|---|
| jitUserProvEnabled | 構成済IDPのSAML JITプロビジョニング機能を使用可能/使用不可にするブール・プロパティ。 |
| jitUserProvCreateUserEnabled | ユーザーがまだ存在しない場合に、受信するアサーションに基づくユーザー作成のブール・プロパティ。 |
| jitUserProvAttributeUpdateEnabled | ユーザーがすでに存在する場合、受信アサーションに基づくユーザー更新のブール・プロパティ。 |
| jitUserProvGroupAssertionAttributeEnabled | SAML属性のIDPから受信したグループ名のリストに基づいて、グループ・メンバーシップをユーザーに割り当てるかどうかを示すブール・プロパティ。 |
| jitUserProvGroupSAMLAttributeName | プロパティjitUserProvGroupAssertionAttributeEnabledがtrueの場合に、ユーザーに割り当てるグループを含むSAMLアサーション属性の名前。 |
| jitUserProvGroupAssignmentMethod | グループ・メンバーシップをIdentity Cloud Serviceユーザー(上書き/マージ)に割り当てる方法を制御する文字列プロパティ。 |
この操作をポストして、SAML IDPに対してJITプロビジョニングを有効にし、タスク2で説明したGET操作を実行して、これを確認できます。次の図は、出力の例を示しています。

これにより、SP属性をIDP属性にマップするために次のエンドポイントで使用されるマップ済属性IDが提供されます。

タスク4: ユーザー・プロビジョニング用のSAMLアイデンティティ・プロバイダのjitUserProvAttributesマッピングの設定
SAML IDPのJITプロビジョニングを有効にした後、次のステップはサービス・プロバイダ属性をアイデンティティ・プロバイダ属性にマップすることです。この項で説明するRESTエンドポイントとともに、タスク3のマップ済属性IDを使用します。
ノート:
- 属性をこのエンドポイントにパッチ適用する前に、SAMLアサーションをチェックして
managedObjectAttributeName(SP側アサーションの詳細)を検索することをお薦めします。SAML属性に関する情報を含む<SAML:AttributeStatement>のアサーション・チェックから。saml:Attribute Nameの下の値を使用して、対応するIDCS属性にマップします。- このエンドポイントを、次のサンプル本文コードを含むPATCH操作として使用して、属性マッピングを更新します。これを確認するには、同じエンドポイントでGET操作を実行し、マップされた属性の更新された値を確認します。
-
次のRESTエンドポイントを使用します: https://idcs-xxxx.identity.oraclecloud.com/admin/v1/MappedAttributes/{Mapped Attribute ID} (GET操作)
ノート: これは、属性マッピングのサンプル・コード・スニペット(参照専用)です。構成したSAML IDPのアサーションに従って適切に更新し、保存します。
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "replace", "path": "attributeMappings", "value": [ { "managedObjectAttributeName": "$(assertion.mail)", "idcsAttributeName": "userName" }, { "managedObjectAttributeName": "$(assertion.firstname)", "idcsAttributeName": "name.givenName" }, { "managedObjectAttributeName": "$(assertion.lastname)", "idcsAttributeName": "name.familyName" }, { "managedObjectAttributeName": "$(assertion.mail)", "idcsAttributeName": "emails[primary eq true and type eq \"work\"].value" } ] } ] }
タスク5: jitUserProvAttributesマッピング更新属性の構成
サービス・プロバイダ- SPからアイデンティティ・プロバイダ- IDPへのjitUserProvAttributesマッピング更新属性を構成します。
-
https://idcs-xxxx.identity.oraclecloud.com/admin/v1/MappedAttributes/{Mapped Attribute ID} (PATCH Operation)のRESTエンドポイントと、本文のタスク4のコードでRESTエンドポイントをPATCHします。
-
GET操作を実行して、変更が更新されたことを確認します。
タスク6: JITプロビジョニングのテスト
- 新しいブラウザ・セッションで、コンソールのIDCSへのログインを試みます。
- IDCSはログイン画面を表示します。
- JITプロビジョニングで有効になった構成済IDPを選択します。
- IDCSにより、サインインのためのIDPログイン・ページにルーティングされます。
- IDCSに存在しないユーザーの有効な資格証明を入力してください。
- ログインに成功すると、IDCSの自分のコンソール画面にルーティングされます。
- 管理アカウントを使用して、ユーザーがIDCSで正常に作成されたことを検証します。
関連リンク
承認
作成者 - Chetan Soni (クラウド・ソリューション・エンジニア)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Configure Just-In-Time Provisioning for SAML based IDP in IDCS/Identity Domains
F76244-01
January 2023
Copyright © 2023, Oracle and/or its affiliates.