Oktaを設定して、ID管理を自動化する
このページでは、自動ID管理を使用して、Oktaを構成し、Databricksアカウントにユーザーとグループをプロビジョニングする方法について説明します。
始める前に
- Databricksのアカウント管理者である必要があります。
- Oktaの管理者権限が必要です。
- Databricksアカウント用にOkta SSOを構成する必要があります。
自動ID管理をセットアップする
Oktaアプリケーションを設定する
-
Okta管理コンソールで、 [アプリケーションとリソース] > [アプリケーション] に移動します。
-
「 Create App Integration 」をクリックし、「 Classic experience 」と「 API Services 」を選択して、「 Next 」をクリックします。
-
「Databricks AIM」などのアプリ統合の名前を入力し、 Use Okta-generated client ID を選択して、 Save をクリックします。
-
General tabの Public keys セクションで、「Add」をクリックして新しい公開鍵を追加します。
-
[新しいキーを生成] をクリックします。
-
Private key – Copy this! の下で、完全な JSON の値をコピーして安全に保管します。この値は、Databricks で Okta を設定するときに使用します。公開鍵や PEM 値はコピーしないでください。
-
Save をクリックして署名キーを有効にします。
-
署名キーがアクティブになったら、[ 全般 ] tabで [ クライアント資格情報 ] セクションに移動します。[ クライアント認証 ] で、[ クライアント シークレット ] を [ 公開鍵 / 秘密鍵 ] に変更します。
-
「 General 」tabの「 全般設定 」セクションで、「 所有権証明 」の下にある「 DPoPヘッダーを必須にする 」のチェックを外し、「 保存 」をクリックします。
-
On the Okta API Scopes tab, grant the following scopes:
okta.groups.readokta.users.read
-
Admin Roles タブで、 Read-only Administrator ロールをアプリに割り当てます。
Databricks で Okta を構成する
-
アカウント管理者として、アカウントコンソールにログインします。
-
サイドバーで 「セキュリティ」 をクリックします。
-
[ID プロバイダーのセットアップ] tab で、 [ID 管理] の横にある [自動 ID 管理] の横にある [構成] をクリックします。
-
以下の値を入力してください。
- Okta org URL : Okta 組織の URL(例:
https://your-org.okta.com)。管理コンソール URLではなく、組織 URL を使用してください。URL に-adminを含めないでください。 - クライアントID :作成したOktaアプリのクライアントID
- Client Private key : Oktaアプリケーションの設定時に生成およびコピーした、完全なプライベートキーのJSON値。
- Okta org URL : Okta 組織の URL(例:
-
接続テスト をクリックして、統合が成功したことを確認してください。
-
接続が成功したら、 「AIMを有効にする」 をクリックしてください。
接続のトラブルシューティング
無効なJSON
Client Private key フィールドには、完全なプライベート JWK を JSON 形式で指定する必要があります。Okta の Private key – Copy this! > JSON の下にある値全体をコピーします。公開鍵、PEM 値、または JSON オブジェクトの一部のみを貼り付けないでください。
302 Found
302 FoundOkta組織URL に管理コンソールURLではなくOkta組織URLが含まれていることを確認してください。ホスト名から -admin を削除します。たとえば、 https://your-org-admin.okta.com ではなく https://your-org.okta.com を使用します。
403 からの応答 /api/v1/users
403 からの応答 /api/v1/usersOkta アプリの Okta API Scopes tab で、アプリに okta.users.read スコープがあることを確認します。
403 からの応答 /api/v1/groups
403 からの応答 /api/v1/groupsOktaアプリに okta.groups.read スコープと Read-only Administrator ロールが付与されていることを確認します。
既知の問題点と制限事項
自動ID管理を有効にする際は、以下の動作と制限事項に注意してください。
自動ID管理を有効にした後に重複するIDが生成される
Databricks は、既存のユーザーおよびグループの externalId フィールドと Okta のユーザー ID またはグループ ID を比較して、ID を照合します。既存のIDの externalId に Okta ID がない場合、プロビジョニングによって重複エントリが作成されます。どちらのエントリも、既存の権限で引き続き使用できます。
以前に Okta Databricks OIN アプリと同期していた場合、通常、ユーザーの externalId の値は入力されますが、グループの値は入力されません。重複を解決するには、アカウント ユーザー、アカウント Service Principal、またはアカウント グループ API を使用して、各オブジェクトの externalId を一致する Okta ユーザー ID またはグループ ID に設定します。
統合ログイン
Databricksでは、アカウントとすべてのワークスペース間でSSOが一貫するように、統合ログインを強く推奨しています。これを行わない場合、アカウントレベルとワークスペースレベルのSSOで同じIDプロバイダーを使用し、同じフィールドをDatabricksのユーザー名にマッピングしている場合にのみ、自動ID管理が機能します。アカウントSSOがユーザー名をマッピングし、ワークスペースSSOがEメールをマッピングしている場合で、ユーザーのユーザー名とEメールが異なるときは、ログイン時に既存のユーザーと一致させずに2番目のユーザーが作成されます。
また、Okta SSO アプリでグループ クレームを設定し、グループ メンバーシップが OIDC トークンに含まれるようにします。
Okta での電子メールまたはユーザー名の変更
プロビジョニングにより、ログイン時の SSO ユーザー名クレームから各 Databricks ユーザーが作成されます。(たとえば、Okta でユーザーのEメールが変更された場合や、管理者が SSO のユーザー名クレームのフィールドマッピングを更新した場合など)そのクレームが変更されると、既存のユーザーを更新する代わりに新しいユーザーが作成されます。Databricks サポートに連絡して、Databricks ユーザー名と更新されたクレームを再調整するユーザー名の移行を実行します。
オンボーディング前にDatabricksユーザー名の一意性を確認してください。
Databricksは、OktaのログインフィールドとEメールの両方と比較して、ユーザー名でIDを照合します。Oktaは、Eメールではなく、ログインフィールドのユニーク性のみを保証します。複数のOktaユーザーがEメールを共有している場合、またはユーザーのEメールが別のユーザーのログインフィールドと一致する場合、プロビジョニングでは正しいユーザーを確実に特定できません。自動ID管理を有効にする前に、各Databricksのユーザー名がテナント全体の単一のOktaユーザーにマップされていることを確認してください。
外部 ID は、プロビジョニングされた後にのみ表示されます
ID プロバイダーからのユーザーとグループは、自動 ID 管理によって Databricks にプロビジョニングされるまで、アカウント コンソールの [ユーザー管理] ページには表示されません。ID がプロビジョニングされる前に検索するには、その ID を検索します。検索では、まだプロビジョニングされていない ID を含め、ID プロバイダーから一致する ID が返されます。