Okta のSCIMプロビジョニングを構成する

この記事では、Okta を使用して Databricks プロビジョニングを設定する方法について説明します。 ユーザーとグループを Databricks にプロビジョニングするには、Okta テナントが Okta ライフサイクル管理機能を使用している必要があります。

プロビジョニングの設定は、Databricks アカウント レベルまたは Databricks ワークスペース レベルで設定できます。

Databricks では、ユーザー、サービスプリンシパル、およびグループをアカウント レベルにプロビジョニングし、 ID フェデレーションを使用してユーザーとグループをワークスペースに割り当てることをお勧めします。 ID フェデレーションが有効になっていないワークスペースがある場合は、引き続きユーザー、サービスプリンシパル、およびグループをそれらのワークスペースに直接プロビジョニングする必要があります。

プロビジョニングに対する ID フェデレーションの影響の説明や、アカウント レベルとワークスペース レベルのプロビジョニングを使用するタイミングに関するアドバイスなど、Databricks での SCIM プロビジョニングの詳細については、「 ID プロバイダーからユーザーとグループを同期する」を参照してください。

ユーザーが Okta を使用してログインするには、Okta から Databricks へのシングル サインオンを構成する必要があります。 シングル サインオンを構成するには、 Databricks アカウント コンソールの SSO を参照してください。

顔立ち

Databricksは、Okta統合ネットワーク(OIN)のプロビジョニング・アプリとして利用でき、Oktaを使用してユーザーとグループをDatabricksで自動的にプロビジョニングできます。

Databricks Oktaアプリケーションを使用すると、次のことができます。

  • Databricks アカウントまたはワークスペースにユーザーを招待する

  • 招待ユーザーまたはアクティブなユーザーをグループに追加する

  • Databricks アカウントまたはワークスペースの既存のユーザーを非アクティブ化する

  • グループとグループ メンバーシップを管理する

  • プロファイルの更新と管理

要件

  • Databricks アカウントには 、プレミアム プラン以上が必要です。

  • Okta開発者ユーザーである必要があります。

  • Databricks アカウントのプロビジョニングを設定するには、Databricks アカウント管理者である必要があります。

  • Databricks ワークスペースのプロビジョニングを設定するには、Databricks ワークスペース管理者である必要があります。

Okta を使用したアカウントレベルのSCIMプロビジョニングの設定

このセクションでは、Okta SCIMコネクタを構成して、ユーザーとグループをアカウントにプロビジョニングする方法について説明します。

Databricks でSCIMトークンとアカウントのSCIM URLを取得する

  1. アカウント管理者として、Databricks アカウント コンソールにログインします。

    1. [設定 ] をクリックします 。 ユーザー設定アイコン

    2. [ ユーザー プロビジョニング] をクリックします。

    3. [ユーザー プロビジョニングの設定] をクリックします。

      SCIM トークンとアカウントの SCIM URL をコピーします。 これらを使用して、Oktaでコネクタを構成します。

SCIM トークンはアカウント SCIM API /api/2.0/accounts/{account_id}/scim/v2/ に制限されており、他の Databricks REST APIsに対する認証には使用できません。

Okta でのSCIMプロビジョニングの構成

  1. Okta管理ポータルにログインします。

  2. アプリケーション 」に移動し 、「アプリ・カタログの参照」をクリックします。

  3. [ アプリ統合の参照] カタログで Databricks を検索します。

  4. [ 統合の追加] をクリックします。

  5. [ 追加] Databricks で、次のように構成します。

    • [アプリケーション ラベル] に、 アプリケーションの名前を入力します。

    • [ ユーザーにアプリケーション アイコンを表示しない] を選択します。

    • [ Oktaモバイルアプリにアプリケーションアイコンを表示しない]を選択します。

  6. [ 完了] をクリックします。

  7. [ プロビジョニング] をクリックし、次のように入力します。

    • [プロビジョニング ベース URL] に、 Databricksからコピーした SCIM URL を入力します。

    • [プロビジョニング API トークン] に、Databricks からコピーした SCIM トークンを入力します。

  8. [ API 資格情報のテスト] をクリックし、接続が成功したことを確認して、[ 保存] をクリックします。

  9. [プロビジョニング] タブをリロードします。追加の設定は、API 資格情報のテストが成功した後に表示されます。

  10. Oktaの変更をDatabricksにプッシュするときの動作を構成するには、[ アプリへのプロビジョニング]をクリックします。

    • [ 編集] をクリックします。 必要な機能を有効にします。 Databricks では、ユーザー の作成ユーザー属性の更新、および ユーザーの非アクティブ化を有効にすることをお勧めします。

    • [ Databricks 属性マッピング] で、 Databricks 属性マッピングを確認します。 これらのマッピングは、上記で有効にしたオプションによって異なります。 必要に応じてマッピングを追加および編集できます。 Oktaドキュメントの [プロビジョニング]ページでのアプリケーション属性のマッピング を参照してください。

  11. Databricksの変更をOktaにプッシュするときの動作を構成するには、[ Oktaへ]をクリックします。 既定の設定は、Databricks プロビジョニングに適しています。 デフォルト設定と属性マッピングを更新する場合は、Oktaドキュメントの 「プロビジョニングとプロビジョニング解除 」を参照してください。

統合 をテストする

構成をテストするには、Oktaを使用してユーザーをDatabricksアカウントに招待します。

  1. Oktaで、[ アプリケーション ]に移動し、[ Databricks]をクリックします。

  2. [ プロビジョニング] をクリックします。

  3. [割り当て ]、[ユーザーに割り当てる] の順にクリックします。

  4. Oktaユーザーを検索し、[ 割り当て]をクリックします。

  5. ユーザーの詳細を確認し、[割り当て] をクリックして 戻り、[ 完了] をクリックします。

  6. アカウントコンソール にログインし、 アカウントコンソールのユーザー管理アイコン [ ユーザー管理] をクリックして 、ユーザーが追加されたことを確認します。

この簡単なテストの後、 「Okta を使用して Databricks でユーザーとグループを管理する」で説明されているように、一括操作を実行できます。

Okta (レガシー) を使用してワークスペースレベルの SCIM プロビジョニングをセットアップする

プレビュー

この機能はパブリックプレビュー段階です。

このセクションでは、OktaからDatabricksワークスペースへのプロビジョニングを直接設定する方法について説明します。

Databricks で API トークンと SCIM URL を取得する

  1. Databricks ワークスペース管理者として、個人用アクセストークンを生成します。 トークン管理を参照してください。個人用アクセストークンは安全な場所に保管してください。

    重要

    この個人用アクセストークンを所有するユーザーは、Okta内で管理することはできません。 そうしないと、Oktaからユーザーを削除すると、SCIM統合が中断されます。

  2. Oktaの構成に必要な次のURLをメモします。

    https://<databricks-instance>/api/2.0/preview/scim/v2

    <databricks-instance> を Databricks デプロイの ワークスペース URL に置き換えます。「 ワークスペース オブジェクトの識別子を取得する」を参照してください。

このブラウザタブは開いたままにしておきます。

Okta の Databricks SAMLアプリケーションでSCIMプロビジョニングを構成す

  1. [アプリケーション]に移動し 、[Databricks]をクリックします。

  2. [ プロビジョニング] をクリックします。 上記のセクションから取得した次の情報を入力します。

    • プロビジョニング ベース URL: プロビジョニング エンドポイント

    • プロビジョニングAPIトークン: 個人用アクセストークン

  3. [ API 資格情報のテスト] をクリックします。

  4. [プロビジョニング] タブをリロードします。追加の設定は、API 資格情報のテストが成功した後に表示されます。

  5. Oktaの変更をDatabricksにプッシュするときの動作を構成するには、[ アプリへ]をクリックします。

    • [全般] で、[編集] をクリックします。必要な機能を有効にします。 Databricks では、少なくとも [ ユーザーの作成 ] を有効にすることをお勧めします。

    • [ Databricks 属性マッピング] で、 Databricks 属性マッピングを確認します。 これらのマッピングは、上記で有効にしたオプションによって異なります。 必要に応じてマッピングを追加および編集できます。 Oktaドキュメントの [プロビジョニング]ページでのアプリケーション属性のマッピング を参照してください。

  6. Databricksの変更をOktaにプッシュするときの動作を構成するには、[ Oktaへ]をクリックします。 既定の設定は、Databricks プロビジョニングに適しています。 デフォルト設定と属性マッピングを更新する場合は、Oktaドキュメントの 「プロビジョニングとプロビジョニング解除 」を参照してください。

統合 をテストする

構成をテストするには、Oktaを使用してユーザーをDatabricksワークスペースに招待します。

  1. Oktaで、[ アプリケーション ]に移動し、[ Databricks]をクリックします。

  2. [割り当て]タブをクリックし、 [ユーザーに割り当てる] をクリックします

  3. Oktaユーザーを検索し、[ 割り当て]をクリックします。

  4. ユーザーの詳細を確認します。 「 完了」をクリックします。

  5. Databricks ワークスペースの管理者設定ページで、 [ID とアクセス ] タブをクリックし、 [ ユーザー ] セクションに移動して、ユーザーが追加されたことを確認します。 少なくとも、ユーザーにワークスペース権限を付与します。

この簡単なテストの後、次のセクションで説明するように、一括操作を実行できます。

Oktaを使用して Databricks 内のユーザーとグループを管理する

このセクションでは、DatabricksアカウントまたはワークスペースへのOkta SCIMプロビジョニングを使用して実行できる一括操作について説明します。

Databricks ワークスペースからOkta へのユーザーのインポート

DatabricksからOktaにユーザーをインポートするには、[インポート]タブに移動し 、[今すぐインポート]をクリックします。Eemailアドレスによって既存のOktaユーザーと自動的に照合されないユーザーの割り当てを確認して確認するよう求められます。

Databricks アカウントにユーザーとグループの割り当てを追加する

ユーザーとグループの割り当てを確認または追加するには、[ 割り当て ] タブに移動します。 Databricksでは、 Everyone という名前の Okta グループをアカウント レベルの SCIM プロビジョニング アプリケーションに追加することをお勧めします。 これにより、組織内のすべてのユーザーが Databricks アカウントに同期されます。

グループを Databricks にプッシュする

OktaからDatabricksにグループをプッシュするには、[ プッシュグループ] タブに移動します。 Databricks に既に存在するユーザーは、Eメール アドレスで照合されます。

アカウント からユーザーまたはグループを削除する

OktaのアカウントレベルのDatabricksアプリケーションからユーザーを削除すると、そのユーザーはDatabricksアカウントから削除され、それらのワークスペースでIDフェデレーションが有効になっているかどうかに関係なく、すべてのワークスペースにアクセスできなくなります。

Oktaのアカウント・レベルの Databricks ・アプリケーションからグループを削除すると、そのグループ内のすべてのユーザーがアカウントから削除され、アクセスしていたワークスペースにアクセスできなくなります(別のグループのメンバーであるか、アカウントまたはワークスペースへのアクセスが直接許可されている場合を除く)。 Databricks では、アカウント内のすべてのワークスペースへのアクセスを失わせる場合を除き、アカウント レベルのグループを削除しないことをお勧めします。

ユーザーを削除すると、次の結果に注意してください。

  • ユーザーが生成したトークンを使用するアプリケーションまたはスクリプトは、Databricks にアクセスできなくなります APIs

    • ユーザーが所有するジョブが失敗する

    • ユーザーが所有するクラスター 停止

    • クエリまたはユーザーが作成し、実行を所有者として資格情報を使用して共有するダッシュボードは、共有が失敗しないように新しい所有者に割り当てる必要があります

非アクティブ化されたユーザーをワークスペース から削除する

OktaのワークスペースレベルのDatabricksアプリケーションからユーザーを削除すると、そのユーザーはDatabricksワークスペースで 非アクティブ化 されますが、ワークスペースからは削除されません。 非アクティブ化されたユーザーには、 workspace-access または databricks-sql-access 資格がありません。 非アクティブ化されたユーザーの再アクティブ化は、Oktaにユーザーを再追加するか、Databricks SCIM APIを直接使用することで元に戻すことができます。 Databricks ワークスペースからのユーザーの削除は中断を伴い、元に戻すことはできません。

重要

Okta SCIMプロビジョニング・アプリを構成した管理者を非アクティブ化しないでください。 そうしないと、SCIM 統合は Databricks に対して認証できません。

Databricks ワークスペースからユーザーを削除するには:

  1. 管理者設定ページで、[ ユーザー ] タブに移動します。

  2. ユーザーの行の末尾にある [x ] をクリックします。

ユーザーを削除すると、次の結果に注意してください。

  • ユーザーによって生成されたトークンを使用するアプリケーションまたはスクリプトは、Databricks API にアクセスできなくなります。

  • ユーザーが所有するジョブは失敗します

  • ユーザーが所有するクラスターは停止します

  • ユーザーが作成し、所有者として実行資格情報を使用して共有されたクエリーまたはダッシュボードは、共有が失敗しないように、新しい所有者に割り当てる必要があります。

Oktaを使用してワークスペース管理者、エンタイトルメント、IAMロール を管理する

Databricks では、Okta のワークスペース レベルの Databricks アプリケーションからのワークスペース管理者、IAMロール、およびワークスペースの資格の割り当てがサポートされています。 役割と資格の割り当ては、OktaのアカウントレベルのDatabricksアプリケーションではサポートされていません。 OktaからIAMロールとワークスペースのエンタイトルメントを割り当てる場合は、OktaでワークスペースレベルのDatabricksアプリケーションをそのワークスペースに作成する必要があります。

Databricksでは、代わりにOktaのアカウントレベルのDatabricksアプリケーションを使用して、ユーザー、サービスプリンシパル、およびグループをアカウントレベルでプロビジョニングすることをお勧めします。 ID フェデレーション を使用してユーザーとグループをワークスペースに割り当て、Databricks 内でそれらの権利と IAMロールを管理します。

同期ワークスペース管理者

Databricks は、Oktaのワークスペース・レベルの Databricks アプリケーションからのワークスペース管理者の役割の割り当てをサポートしています。 ワークスペース管理者は、Databricks admins グループのメンバーです。 Databricks グループは自動的にOktaにプッシュされます。 Oktaに新しい管理者ユーザーを追加するには、そのユーザーを admins グループに追加します。

重要

Okta SCIMプロビジョニング・アプリを構成した管理者を削除したり、 admins グループから削除したりしないでください。 そうしないと、SCIM 統合は Databricks に対して認証できません。

Okta からワークスペースのエンタイトルメントを割り当てる

Databricks は、Oktaのワークスペース・レベルの Databricks アプリケーションからのエンタイトルメントの割り当てをサポートしています。 ただし、ほとんどの場合、Databricks では、Databricks 内から権利を管理することをお勧めします。 Databricks 内では、権利を簡単に割り当てたり取り消したりできます。 Oktaでのマッピングの構成は複雑であり、資格ごとに2つのマッピングを構成する必要があります。

このセクションでは、Oktaユーザーに databricks-sql-access 資格を付与するようにマッピングを構成する方法について説明します。

重要

既定により、Databricks ユーザーは workspace-accessdatabricks-sql-access の権利を継承します。 既定では、Databricks 管理者ユーザーは create-cluster 権利を継承します。 これらの継承されたエンタイトルメントをOktaから割り当てる必要はありません。

継承されたエンタイトルメントをユーザーから取り消すには、グループからユーザーを削除するか、グループからエンタイトルメントを削除します。 権利を削除するには、Databricks 管理コンソールを使用する必要があります。

databricks-sql-access 資格を割り当てるには:

  1. Okta管理コンソールで、[ ディレクトリ>プロファイル・エディター]に移動します。

  2. Oktaユーザー・プロファイルの[ プロファイル 編集]ボタンをクリックします。

  3. [ + 属性の追加] ボタンをクリックして、ロールを追加します。

  4. [属性の追加] ダイアログで、[ 表示 名] を [ Databricks SQL ] に、[ 変数名] を [ databricks_sql] に設定します。

    Okta変数にハイフン(-)文字を含めることはできません。

  5. プロファイル エディターに戻り、Databricks プロビジョニング アプリのユーザー プロファイルの [プロファイル 編集] ボタンをクリックします。

  6. [ + 属性の追加] ボタンをクリックして、ロールを追加します。

  7. [属性の追加] ダイアログで、ロール属性に次の値を指定します。

    • 表示名: Databricks SQL

    • 変数名: databricks_sql

    • entitlements.^[type==‘$TYPE’].value形式の外部名$TYPEダッシュなしの資格のAPI 名( - ) です。 たとえば、 databricks-sql-access の [外部名] は entitlements.^[type=='databrickssqlaccess'].valueです。

    重要

    外部名形式では、アポストロフィ文字 (') を使用する必要があります。 中引用符 () を使用すると、 Request is unparseable エラーが発生します。

    • 外部名前空間: urn:ietf:params:scim:schemas:core:2.0:User.

    ロール属性 Databricks 追加する
  8. プロファイル エディターに戻り、Databricks プロビジョニング アプリのユーザー プロファイルの [マッピング] 編集ボタンをクリックします。

  9. Okta Databrick s の場合は、 appuser.databricks_sql[Databrick s ]列の を databricks_sql[ Okta ]列の にマップします。

  10. Okta を Databricks するには、 user.databricks_sql[Databrick s ]列の を databricks_sql[ Okta ]列の にマップします。

  11. マッピングの保存」をクリックします。

  12. ユーザーに資格値を追加するには、[ ディレクトリ > ユーザー] に移動し、ユーザーを選択して、ユーザー ページの [プロファイル ] タブに移動します。

    [ 編集 ] ボタンをクリックします。 エンタイトルメントのフィールドに、エンタイトルメントの API 参照名をダッシュなしで入力します ( databrickssqlaccessなど)。 ユーザーをアプリに割り当てると、入力した値がロールに設定されます。

この手順を繰り返して、追加の権利を割り当てます。

Okta からIAMロールを割り当てる

OktaからユーザーにIAMロールを割り当てるには、Oktaユーザー・プロファイルとOkta Databricksプロビジョニング・アプリ・プロファイルに複数値属性を作成し、これらの属性をDatabricks SCIM APIの属性にマップする必要があります。 たとえば、1つのユーザーに2つのIAMロールを割り当てる場合は、Databricksプロビジョニング・アプリで2つの属性を作成し、それぞれに1つのOktaユーザー属性をマップする必要があります。

Databricks では、IAMロールの割り当てを Databricks 内から管理することをお勧めします。 データブリック内では、IAMロールを簡単に割り当てたり取り消したりできます。 Oktaでのマッピングの構成は複雑であり、IAMロールごとに個別のマッピングを構成する必要があります。

次の手順では、 primary_role 属性を割り当てます。

  1. Okta管理コンソールで、[ ディレクトリ>プロファイル・エディター]に移動します。

  2. Oktaユーザー・プロファイルの[ プロファイル 編集]ボタンをクリックします。

  3. [ + 属性の追加] ボタンをクリックして、ロールを追加します。

  4. [属性の追加] ダイアログで、[ 表示 名] を [ Primary role ] に、[ 変数名] を [ primary_role] に設定します。

    Okta役割属性の追加
  5. プロファイル エディターに戻り、Databricks プロビジョニング アプリのユーザー プロファイルの [プロファイル 編集] ボタンをクリックします。

  6. [ + 属性の追加] ボタンをクリックして、ロールを追加します。

  7. [属性の追加] ダイアログで、ロール属性に次の値を指定します。

    表示名: Primary role

    変数名: primary_role

    roles.^[type=='$TYPE'].value形式の外部名$TYPE はロールを説明する文字列です。この場合、$TYPE が primaryの場合、外部名は roles.^[type=='primary'].value になります。

    重要

    外部名形式では、アポストロフィ文字 (') を使用する必要があります。 中引用符 () を使用すると、 Request is unparseable エラーが発生します。

    外部名前空間: urn:ietf:params:scim:schemas:core:2.0:User.

    ロール属性 Databricks 追加する
  8. プロファイル エディターに戻り、Databricks プロビジョニング アプリのユーザー プロファイルの [マッピング] 編集ボタンをクリックします。

  9. Okta Databrick s の場合は、 appuser.primary_role[Databrick s ]列の を primary_role[ Okta ]列の にマップします。

  10. Okta を Databricks するには、 user.primary_role[Databrick s ]列の を primary_role[ Okta ]列の にマップします。

  11. マッピングの保存」をクリックします。

  12. ロール属性値をユーザーに追加するには、[ ディレクトリ > ユーザー] に移動し、ユーザーを選択して、ユーザー ページの [ プロファイル ] タブに移動します。

    [ 編集 ] ボタンをクリックして、ユーザーの [プライマリ ロール] の値を入力します。 ユーザーをアプリに割り当てると、入力した値がロールに設定されます。

この手順を繰り返して、追加のロールを割り当てます。

制限

  • ワークスペースレベルのOktaアプリケーションからユーザーを削除すると、ユーザーを削除するのではなく、Databricksでユーザーが非アクティブ化されます。 Databricks からユーザーを直接削除する必要があります

  • 非アクティブ化されたユーザーを削除するには、まったく同じEメールアドレスを使用してOktaに再度追加します。

トラブルシューティングとヒント

  • Databricksプロファイルに名または姓がないユーザーは、新しいユーザーとしてOktaにインポートできません。

  • プロビジョニングのセットアップ前に Databricks に存在していたユーザー:

    • Oktaユーザーにすでに存在し、Eメール・アドレス(ユーザー名)に基づいて照合される場合、自動的にOktaユーザーにリンクされます。

    • 既存のユーザーに手動でリンクするか、自動的に一致しない場合はOktaで新しいユーザーとして作成できます。

  • 個別に割り当てられ、グループのメンバーシップを通じて複製されたユーザー権限は、ユーザーのグループ メンバーシップが削除された後も残ります。

  • Databricks ワークスペースから削除されたユーザーは、そのワークスペースにアクセスできなくなりますが、他の Databricks ワークスペースには引き続きアクセスできる場合があります。

  • admins グループは Databricks の予約済みグループであり、削除できません。

  • Databricks のグループの名前を変更することはできません。Oktaで名前を変更しようとしないでください。

  • Databricks グループ API または グループ UI を使用して、Databricks ワークスペース レベルのグループのメンバーの一覧を取得できます。

  • Databricks のユーザー名と Eメール アドレスを更新することはできません。