インバウンドSCIMを構成する

Before you start

この機能を使用するには、Auth0プランまたはカスタム契約にエンタープライズ接続が含まれている必要があります。詳細については、「Auth0の価格設定」ページを参照してください。

インバウンドSCIM接続をテストするには、Postmanがローカルにインストールされている必要があります。

SCIM は、ユーザーID関連情報をプロビジョニング、デプロビジョニング、管理するためにエンタープライズ組織が使用するプロトコルおよびスキーマの標準です。

Auth0のインバウンドSCIM機能は、B2B SaaS開発者のエンタープライズIDプロバイダーとの統合をサポートします。現在サポートされているAuth0接続タイプは、SAMLOpenID ConnectOkta Workforce Identity CloudMicrosoft Azure AD / Entra IDです。

エンタープライズ接続のためにインバウンドSCIMを有効にする

  1. Auth0 Dashboardを起動し、構成したいテナントを選択します。

  2. [Authentication(認証)] > [Enterprise(エンタープライズ)]に移動し、その後SAML、OpenID Connect、Okta WorkforceMicrosoft Azure ADから選択します。

  3. 既存の接続を選択するか、[Create Connection(接続の作成)]を使用して新しく作成します。

  4. 接続の[Provisioning(プロビジョニング)]タブで、[Sync user profile attributes at each login(ログインの度にユーザープロファイル属性を同期する)]のトグルを[Off(オフ)]にし、[Sync user profiles using SCIM(SCIMを使用してユーザープロファイルを同期する)][On(オン)]に切り替えます。

  5. [Sync user profiles using SCIM(SCIMを使用してユーザープロファイルを同期する)][Setup(セットアップ)]タブを選択し、SCIMエンドポイントURL とPostmanのテストに必要なSCIMトークンを取得します。

Postmanを使用したテスト

SCIM構成をテストするために、以下からPostman collectionをダウンロードできます。

  1. Postmanを起動し、 [File(ファイル)] > 「Import(インポート)…]を選択して、ファイル scim_postman_collection.json をインポートダイアログボックスに移動します。

  2. SCIM 2.0 Tests コレクションを選択し、[Variables(変数)]タブを選択します。

  3. Auth0 DashboardからSCIMエンドポイントURL値をコピーし、SCIM-ENDPOINT-URL 変数の隣にある[Current Value(現在の値)]フィールドに貼り付けます。

  4. Auth0 Dashboardで[Generate New Token(新しいトークンを生成)]を選択した後に[Generate Token(トークンを生成)]を選び、[Copy and Close(コピーして閉じる)]を選択します。

  5. Postmanに戻り、 [Authorization(認可)]タブを選択し、トークンの値を[Token(トークン)]フィールドに貼り付けます。

  6. [Save(保存)]

  7. 表示される順序でテストを実行します。POSTコマンドで開始して、DELETEで終了します。各ユーザーオペレーションの結果は、Auth0 Dashboardの[User Management(ユーザー管理)] >[Users(ユーザー)] および[Monitoring(モニタリング)] > [Logs(ログ)]のテナントログに表示されます。

特定のIDプロバイダーのテストについては、「SAMLまたはOpenIDを使用してIDプロバイダーに対してインバウンドSCIMを構成する」をご覧ください。

サポートされているSCIM操作

Auth0は、ユーザー管理のために以下のSCIM 2.0操作をサポートします:

コマンド 説明
POST RFC7644のセクション3.3に記載されているSCIM 2.0のコアスキーマとエンタープライズスキーマ拡張機能に含まれる属性を使って、Auth0内にユーザーを作成します。
GET すでにAuth0に作成されているユーザーを、Auth0のuser_idの値とRFC7644のセクション3.4.1に記載の仕様を使って取得します。
PUT RFC7644のセクション3.5.1に記載されているSCIM 2.0のコアスキーマとエンタープライズスキーマ拡張機能に含まれる属性を使って、Auth0内のユーザーを置き換えます。
PATCH RFC7644のセクション3.5.2に記載されているSCIM 2.0のコアスキーマとエンタープライズスキーマ拡張機能に含まれる属性を使って、Auth0のユーザーを更新します。
DELETE Auth0のuser_idの値とRFC7644のセクション3.6に記載の仕様を使って、Auth0のユーザーを削除します。
SEARCH RFC7644のセクション3.4.2に記載されているSCIMフィルターを使って、Auth0のユーザーを検索します。等価(EQ)、AND、ORの演算子に対応しています。
PUT(無効化) Auth0に保管されたユーザーを置き換え、SCIMのアクティブ属性をfalseに設定することで、Auth0内でユーザーがブロックされます。
PATCH(無効化) Auth0に保管されたユーザーを更新し、SCIMのアクティブ属性をfalseに設定することで、Auth0内でユーザーがブロックされます。

Auth0は、ユーザーリソースのためにSCIM 2.0 コアスキーマおよびユーザーリソースのためにエンタープライズスキーマ、そして複数のエンタープライズIDプロバイダーとの幅広い互換性のためにクライアント認証ベアラートークンを使用します。

SCIMエンドポイントおよびトークン

各エンタープライス顧客は、接続固有のSCIMエンドポイントおよびAuth0テナントに保存されているユーザーアカウントをプロビジョニング、デプロビジョニング、管理するためのトークンを取得します。

エンドポイントおよびトークンは、Auth0 Dashboard[Authentication(認証)] > [Enterprise(エンタープライズ)] > [connecton-type(接続タイプ)] > [your-connection(あなたの接続)] > [Provisioning(プロビジョニング)] >  [Sync user profiles using SCIM(SCIMを使用してユーザープロファイルを同期する)] > セットアップに表示され、構成可能です。

DashboardのSCIMセットアップのスクリーンショット

SCIMエンドポイントURLにより、SCIMクライアントは、特定のIDプロバイダーに対してAuth0に保存されているユーザーアカウントを管理できます。

[Generate New Token(新しいトークンを生成)]オプションは、このSCIMエンドポイントに対して最大2つのアクティブトークンを生成し、SCIMクライアントが使用するトークンをダウンタイムなしで更新できます。またトークンは、[Delete(削除)]を選択することで、この画面上で取り消すことができます。

DashboardのSCIMトークン設定のスクリーンショット

以下のトークン生成の設定を使用できます。

  • [No expiration date(有効期限なし)]:トークンが期限切れするか、しないかを選択します。

  • [Expiration date in seconds(秒単位の有効期限)]:トークンに有効期限がない場合、トークンに対して有効時間を選択できます。トークンの期限が切れると、SCIMエンドポイントは、次回使用された時にエラー応答を返します。許容最小有効時間は900秒です。

  • [List of permissions (scopes)(許可リスト(スコープ)]:このトークンを使用して実行できるSCIM操作の詳細です。次が許可されます。

    • get:users - ユーザーを取得、検索できます。

    • post:users - ユーザーを作成できます。

    • put:users - PUTメソッドを使用してユーザーを更新できます。

    • patch:users - PATCHメソッドを使用してユーザーを更新できます。

    • delete:users - ユーザーを削除できます。

属性マッピング

各新規接続は、Auth0 Dashboardの[Authentication(認証)] > [Enterprise(エンタープライズ)] > [connecton-type(接続タイプ)] > [your-connection(あなたの接続)] > [Provisioning(プロビジョニング)] >  [Sync user profiles using SCIM(SCIMを使用してユーザープロファイルを同期する)] >  [Mapping(マッピング)]にあるデフォルト属性マップを使用し、ここで接続のニーズに合わせてマップを編集およびカスタマイズできます。

RFC 7643 セクション 3.1、4.1、4.3で定義されているコアSCIMユーザー属性が使用される場合があります。

メモ
1対1のマッピング 選択されたSCIM属性(またはサブ属性)は、1つのAuth0属性にのみマッピング可能です。
サブ属性のマッピング emailsとphoneNumbersなどの複数値SCIM属性内のサブ属性値は、eq演算子を使用するSCIMフィルター構文を使用して参照が可能です。例として、デフォルト属性のマップをご覧ください。
マッピングできない属性 SCIM idおよびメタデータ属性は、SCIMプロトコル応答でAuth0によってのみ送信されるため、マッピングできません。SCIM応答のid値は、常にAuth0 user_idに設定され、SCIMパスワード属性は、エンタープライズ接続に使用できません。
SCIM属性の省略 ある特定のSCIM属性が属性マップで処理されるように構成されていない場合は、すべてのSCIM要求および応答で無視されます。

これらのSCIM属性は、ユーザープロファイルのAuth0 ルートおよびメタデータ属性にマッピングできます。

注記
1対1のマッピング 選択された1つのAuth0属性は1つのSCIM属性にのみマッピングできます。
ルート属性のマッピング ルート属性へのマッピングでは、ユーザープロファイル属性にあるルート属性のみがSCIMクエリを使って検索できることにご注意ください。このリストに含まれない属性の検索が必要な場合は、app_metadataに追加してください。
メタデータ属性のマッピング user_metadataは使用できますが、エンドユーザーが直接編集できる属性を保管するものであるため、同期された属性としては一般的に推奨されません。代わりに、app_metadataまたはルート属性を使用してください。
ブロックされた属性の動作 Auth0のブロックされた属性へのマッピングでは、SCIMのアクティブ属性にマッピングされた際に特殊な動作をします。アクティブ属性にtrueまたはfalseの値が含まれる場合、Auth0はその値を反転し、Auth0のブロックされた属性をそれぞれfalseまたはtrueに設定します。

またAuth0では、ログイン時にプロビジョニングされた属性と並行してSCIMを使用して属性をプロビジョニングできます。詳細については、以下の「ログイン時に追加属性を同期する」をご覧ください。

ログおよびアウトバウンド通知

Auth0 Dashboardの[Monitoring(モニタリング)] > [Logs(ログ)]セクションで、Auth0が受け取るSCIM要求の詳細を確認できます。さらに、SCIMおよびSCIMログストリームフィルターカテゴリーを使用してユーザーが作成、更新、削除されたときに通知されるように、カスタムログストリームを統合できます。

セッションの取り消しおよびバックチャネルログアウト

Auth0がユーザーを無効化およびブロックするというSCIMメッセージを受け取ると、そのユーザーに対するすべてのAuth0セッションを終了し、リフレッシュトークンを取り消し、(構成済みの場合は)アプリケーションのために[OpenID Connectバックチャネルログアウト] をトリガーします。

導入のガイドライン

効率的なセットアップのために統合ギャラリーを活用する

SCIMおよびSSO両方のセットアップについてカスタマイズされたエクスペリエンスを顧客に提供するために、アプリケーションをOkta Integration Networkおよび統合を計画しているその他ワークフォースIDプロバイダー統合ギャラリーにリスト表示することを検討します。

最初に下位レベルの環境でSCIMをテストする

開発またはステージングAuth0テナントで統合を念入りにテストする前に、運用Auth0テナントでSCIMを有効にしないでください。

SCIMトークンを安全に送信する

プレーンテキストで、またはメールや安全でないチャネルを介してSCIMトークンを送信しないでください。SendSafelyなどの安全なコミュニケーションサービスを使用するか、アプリのセルフサービスコンソールとAuth0 Management APIを統合して、SCIMトークンを直接顧客に発行してください。

情報交換

Auth0 SCIMエンドポイントを顧客に提供する場合、正しく使用するために以下の情報が必要です。

  • Auth0接続ためのSCIMエンドポイントURL

  • SCIMエンドポイントURLに必要なSCIMトークン

また以下も推奨されます。

高度なトピック

ログイン時に追加属性を同期する

SAML/OIDC全体およびSCIMで同じユーザー属性セットをサポートしていないIDプロバイダーと統合する場合、SCIMプロビジョニングと並行して[Sync user profile attributes at login(ログイン時にユーザープロファイル属性を同期する)]を有効にすることで、追加属性にアクセスできます。

[Sync user profile attributes at login(ログイン時にユーザープロファイル属性を同期する)]が有効の場合、ユーザープロファイルのすべてのルート属性 は、ユーザーがログインするたびに上書きされます。SCIMとログイン同期との間の滞在的な競合を避けるために、以下のガイドラインに従ってください。

  • email およびusernameなどの一般的なAuth0ルート属性が、SCIM属性マップにも含まれている場合は、SAMLまたはOpenID Connect属性マップにマッピングされていることを確認します。

  • SCIM属性マップで、その他SCIM属性のすべてを(active属性を除く)、Auth0 app_metadata属性内の値にマッピングします。

ロールの同期

Auth0は、RFC7643で定義されている通り、SCIM 2.0 rolesユーザー属性の同期をサポートします。ロールを許可するために、接続のSCIM属性マップがSCIMroles属性をapp_metadata.rolesなどのAuth0ユーザー属性にマッピングされていることを確認します。

Okta Workforce Identity Cloudのアプリケーション固有ロールを同期する方法については、「SCIM Cloud統合で複数値ロールを追加する方法」をお読みください。Microsoft Entra IDロールについては、「Microsoft Entra IDでSaaSアプリケーションのユーザープロビジョニング属性マッピングをカスタマイズ」をお読みください。

グループの同期

Auth0は、RFC7644 セクション 3.2で定義されているように、フルグループオブジェクトおよびグループメンバーシップのプロビジョニング用の/groupsエンドポイントをサポートしていません。ただし、IDプロバイダーがグループのリストのSAMLまたはOpenID Connectを介した送信をサポートしている場合は、前述のログイン時に属性を同期する方法についてのガイドラインのセクションをご覧ください。

Organizations

SCIMプロビジョニング済みのユーザーがOrganization(組織)のメンバーになるには、Organization(組織)接続にJust-In-Time Membership(Just-In-Timeメンバーシップ)を付与するで記述されているように、接続を[Enable Auto-Membership(自動メンバーシップの有効化)]に設定する必要があります。

アカウントリンク

ユーザーアカウントのリンクを使用する場合、SCIMプロビジョニング済みのユーザーアカウントは、プライマリユーザーアカウントとして設定する必要があります。セカンダリアカウントとして設定すると、SCIM id 属性をSCIM 2.0 コアスキーマ仕様に反するものに変更します。エンタープライズユーザーのアカウントと、ソーシャルおよび個人ユーザーのアカウントとのアカウントリンクは、お勧めしません。

もっと詳しく