Microsoft Entra ID (Azure Active Directory) を使用して SCIM プロビジョニングを構成する

この記事では、Microsoft Entra ID (旧称 Azure Active Directory) を使って Azure Databricks へのプロビジョニングを設定する方法について説明します。

Microsoft Entra ID を使うと、Azure Databricks アカウント レベルまたは Azure Databricks ワークスペース レベルで Azure Databricks へのプロビジョニングを設定できます。

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

注意

プロビジョニングの構成方法は、Azure Databricks のワークスペースまたはアカウントの認証および条件付きアクセスの構成とはまったく異なります。 Azure Databricks の認証は、OpenID Connect プロトコル フローを使って Microsoft Entra ID によって自動的に処理されます。 条件付きアクセスの構成が可能です。これにより、サービス レベルで、多要素認証を要求したり、ローカル ネットワークへのログインを制限したりするルールを作成できます。

Microsoft Entra ID を使用して Azure Databricks アカウントに ID をプロビジョニングする

SCIM プロビジョニング コネクタを使って、Microsoft Entra ID テナントから Azure Databricks にアカウント レベルのユーザーとグループを同期できます。

重要

ID をワークスペースに直接同期する SCIM コネクタが既にある場合、アカウント レベルの SCIM コネクタが有効になっているときには、これらの SCIM コネクタを無効にする必要があります。 「ワークスペース レベルの SCIM プロビジョニングをアカウント レベルに移行する」を参照してください。

要件

  • Azure Databricks アカウントに Premium プランが必要です。
  • Microsoft Entra ID でのクラウド アプリケーション管理者ロールが必要です。
  • グループをプロビジョニングするには、Microsoft Entra ID アカウントが Premium エディション アカウントである必要があります。 ユーザーのプロビジョニングは、任意の Microsoft Entra ID エディションで利用できます。
  • Azure Databricks のアカウント管理者である必要があります。

Note

アカウントコンソールを有効にして、最初のアカウント管理者を設置するには、最初のアカウント管理者の設置に関するページを参照してください。

手順 1: Azure Databricks を構成する

  1. Azure Databricks アカウント管理者として、Azure Databricks アカウント コンソールにログインします。
  2. ユーザー設定アイコン[設定] をクリックします。
  3. [ユーザー プロビジョニング] をクリックします。
  4. [ユーザー プロビジョニングの設定] をクリックします。

SCIM トークンとアカウント SCIM URL をコピーします。 これらを使って、Microsoft Entra ID アプリケーションを構成します。

Note

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

手順 2: エンタープライズ アプリケーションを構成する

この手順では、Azure portal でエンタープライズ アプリケーションを作成し、そのアプリケーションをプロビジョニングに使用する方法について説明します。 既存のエンタープライズ アプリケーションがある場合は、Microsoft Graph を使用して SCIM プロビジョニングを自動化するように変更できます。 これにより、Azure portal で個別のプロビジョニング アプリケーションを使用する必要がなくなります。

Microsoft Entra ID で Azure Databricks アカウントにユーザーとグループを同期できるようにするには、次の手順のようにします。 この構成は、ユーザーとグループをワークスペースに同期するために作成した構成とは別です。

  1. Azure portal で、[Microsoft Entra ID] > [エンタープライズ アプリケーション] に移動します。
  2. アプリケーションの一覧の上にある [+ 新しいアプリケーション] をクリックします。 [ギャラリーから追加する] で、Azure Databricks SCIM プロビジョニング コネクタを検索して選択します。
  3. アプリケーションの [名前] を入力して [追加] をクリックします。
  4. [管理] メニューで [プロビジョニング] をクリックします。
  5. [プロビジョニング モード] を [自動] に設定します。
  6. SCIM API エンドポイント URL を、先ほどコピーしたアカウント SCIM URL に設定します。
  7. [シークレット トークン] を、先ほど生成した Azure Databricks SCIM トークンに設定します。
  8. [テスト接続] をクリックし、プロビジョニングを有効にするための資格情報が承認されたというメッセージが表示されるのを待ちます。
  9. [保存] をクリックします。

手順 3: アプリケーションにユーザーとグループを割り当てる

SCIM アプリケーションに割り当てられたユーザーとグループは、Azure Databricks アカウントにプロビジョニングされます。 既存の Azure Databricks ワークスペースがある場合、Databricks では、それらのワークスペース内のすべての既存のユーザーおよびグループを SCIM アプリケーションに追加することが推奨されます。

Note

Microsoft Entra ID では、Azure Databricks へのサービス プリンシパルの自動プロビジョニングはサポートされていません。 アカウントのサービス プリンシパルの管理 に従って、Azure Databricks アカウントにサービス プリンシパルを追加できます。

Microsoft Entra ID では、入れ子になったグループの Azure Databricks への自動プロビジョニングはサポートされていません。 Microsoft Entra ID では、明示的に割り当てられたグループの直接のメンバーであるユーザーのみを読み取ってプロビジョニングできます。 対処法として、プロビジョニングする必要のあるユーザーを含んだグループを明示的に割り当てます (またはスコープします)。 詳細については、この FAQ を参照してください。

  1. [管理] > [プロパティ] に移動します。
  2. [割り当てが必要][いいえ] に設定します。 Databricks では、すべてのユーザーが Azure Databricks アカウントにサインインできるようにするこのオプションをお勧めします。
  3. [管理] > [プロビジョニング] に移動します。
  4. Microsoft Entra ID のユーザーとグループの Azure Databricks への同期を始めるには、[プロビジョニングの状態] トグルを [On] に設定します。
  5. [保存] をクリックします。
  6. [管理] > [ユーザーとグループ] に移動します。
  7. [ユーザー/グループの追加] をクリックし、ユーザーとグループを選択して、[割り当て] ボタンをクリックします。
  8. 数分待って、そのユーザーとグループがご自分の Azure Databricks アカウントに存在することを確認します。

Microsoft Entra ID によって次回の同期がスケジュールされるときに、追加して割り当てるユーザーとグループが、Azure Databricks アカウントに自動的にプロビジョニングされます。

Note

アカウント レベルの SCIM アプリケーションからユーザーを削除すると、ID フェデレーションが有効になっているかどうかに関係なく、そのユーザーはアカウンとそのワークスペースからも非アクティブ化されます。

Microsoft Entra ID を使用して Azure Databricks ワークスペースに ID をプロビジョニングする (レガシ)

重要

この機能はパブリック プレビュー段階にあります。

ID フェデレーションが有効になっていないワークスペースがある場合は、それらのワークスペースにユーザー、サービス プリンシパル、グループを引き続き直接プロビジョニングする必要があります。 このセクションでは、これを実行する方法について説明します。

以下の例では、<databricks-instance> を Azure Databricks デプロイのワークスペース URL に置き換えます。

要件

  • Azure Databricks アカウントに Premium プランが必要です。
  • Microsoft Entra ID でのクラウド アプリケーション管理者ロールが必要です。
  • グループをプロビジョニングするには、Microsoft Entra ID アカウントが Premium エディション アカウントである必要があります。 ユーザーのプロビジョニングは、任意の Microsoft Entra ID エディションで利用できます。
  • Azure Databricks ワークスペース管理者である必要があります。

手順 1: エンタープライズ アプリケーションを作成して、それを Azure Databricks SCIM API に接続する

Microsoft Entra ID を使用した Azure Databricks ワークスペースへの直接プロビジョニングを設定するには、Azure Databricks ワークスペースごとにエンタープライズ アプリケーションを作成します。

この手順では、Azure portal でエンタープライズ アプリケーションを作成し、そのアプリケーションをプロビジョニングに使用する方法について説明します。 既存のエンタープライズ アプリケーションがある場合は、Microsoft Graph を使用して SCIM プロビジョニングを自動化するように変更できます。 これにより、Azure portal で個別のプロビジョニング アプリケーションを使用する必要がなくなります。

  1. ワークスペース管理者として、Azure Databricks ワークスペースにログインします。

  2. 個人用アクセス トークンを生成して、コピーします。 後のステップでこのトークンを Microsoft Entra ID に指定します。

    重要

    Microsoft Entra ID エンタープライズ アプリケーションによって管理されて "いない" Azure Databricks ワークスペース管理者として、このトークンを生成します。 個人用アクセス トークンを所有している Azure Databricks 管理者ユーザーが、Microsoft Entra ID を使ってプロビジョニング解除されると、SCIM プロビジョニング アプリケーションは無効になります。

  3. Azure portal で、[Microsoft Entra ID] > [エンタープライズ アプリケーション] に移動します。

  4. アプリケーションの一覧の上にある [+ 新しいアプリケーション] をクリックします。 [ギャラリーから追加する] で、Azure Databricks SCIM プロビジョニング コネクタを検索して選択します。

  5. アプリケーションの [名前] を入力して [追加] をクリックします。 管理者が見つけやすい名前を使用します (<workspace-name>-provisioning など)。

  6. [管理] メニューで [プロビジョニング] をクリックします。

  7. [プロビジョニング モード][自動] に設定します。

  8. SCIM API エンドポイント URL を入力します。 ワークスペース URL に /api/2.0/preview/scim を追加します。

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

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

  9. [シークレット トークン] を、手順 1 で生成した Azure Databricks 個人用アクセス トークンに設定します。

  10. [テスト接続] をクリックし、プロビジョニングを有効にするための資格情報が承認されたというメッセージが表示されるのを待ちます。

  11. 必要に応じて、SCIM プロビジョニングで重大なエラーの通知を受信する通知メールを入力します。

  12. [保存] をクリックします。

手順 2: アプリケーションにユーザーとグループを割り当てる

Note

Microsoft Entra ID では、Azure Databricks へのサービス プリンシパルの自動プロビジョニングはサポートされていません。 ワークスペースのサービス プリンシパルの管理 に従って、Azure Databricks ワークスペースにサービス プリンシパルを追加できます。

Microsoft Entra ID では、入れ子になったグループの Azure Databricks への自動プロビジョニングはサポートされていません。 Microsoft Entra ID では、明示的に割り当てられたグループの直接のメンバーであるユーザーのみを読み取ってプロビジョニングできます。 対処法として、プロビジョニングする必要のあるユーザーを含んだグループを明示的に割り当てます (またはスコープします)。 詳細については、この FAQ を参照してください。

  1. [管理] > [プロパティ] に移動します。
  2. [割り当てが必要][はい] に設定します。 Databricks は、エンタープライズ アプリケーションに割り当てられているユーザーとグループのみを同期するこのオプションを推奨しています。
  3. [管理] > [プロビジョニング] に移動します。
  4. Microsoft Entra ID のユーザーとグループの Azure Databricks への同期を始めるには、[プロビジョニングの状態] トグルを [On] に設定します。
  5. [保存] をクリックします。
  6. [管理] > [ユーザーとグループ] に移動します。
  7. [ユーザー/グループの追加] をクリックし、ユーザーとグループを選択して、[割り当て] ボタンをクリックします。
  8. 数分待って、そのユーザーとグループがご自分の Azure Databricks アカウントに存在することを確認します。

将来、Microsoft Entra ID で次の同期がスケジュールされるときに、追加して割り当てるユーザーとグループが自動的にプロビジョニングされます。

重要

Azure Databricks SCIM プロビジョニング コネクタ アプリケーションの構成に使用した個人用アクセス トークンを持つ Azure Databricks ワークスペース管理者を割り当てないでください。

(省略可能) Microsoft Graph を使用して SCIM プロビジョニングを自動化する

Microsoft Graph には、SCIM プロビジョニング コネクタ アプリケーションを構成する代わりに、Azure Databricks アカウントまたはワークスペースへのユーザーとグループのプロビジョニングを自動化するためにアプリケーションに統合できる認証および認可のライブラリが含まれています。

  1. Microsoft Graph にアプリケーションを登録する手順に従います。 アプリケーションのアプリケーション IDテナント ID をメモします
  2. アプリケーションの [概要] ページに移動します。 そのページで:
    1. アプリケーションのクライアント シークレットを構成し、シークレットをメモします。
    2. アプリケーションに次のアクセス許可を付与します。
      • Application.ReadWrite.All
      • Application.ReadWrite.OwnedBy
  3. Microsoft Entra ID 管理者に、管理者の同意を許可するように依頼します。
  4. アプリケーションのコードを更新して、Microsoft Graph のサポートを追加します

プロビジョニングのヒント

  • プロビジョニングを有効にする前に Azure Databricks ワークスペースに存在していたユーザーとグループは、プロビジョニングの同期時に次の動作を示します。
    • Microsoft Entra ID にも存在する場合はマージされます
    • Microsoft Entra ID に存在しない場合は無視されます
  • 個別に割り当てられ、グループのメンバーシップを通じて複製されるユーザー アクセス許可は、ユーザーのグループ メンバーシップが削除された後も残ります。
  • Azure Databricks ワークスペース管理設定ページを使用して、Azure Databricks ワークスペースから直接削除されたユーザーは、次のようになります。
    • その Azure Databricks ワークスペースへのアクセスを失いますが、他の Azure Databricks ワークスペースへは引き続きアクセスできる可能性があります。
    • エンタープライズ アプリケーションに残っている場合でも、Microsoft Entra ID プロビジョニングを使って再度同期されることはありません。
  • 最初の Microsoft Entra ID 同期は、プロビジョニングを有効にした直後にトリガーされます。 その後の同期は、アプリケーション内のユーザーとグループの数に応じて、20 分から 40 分ごとにトリガーされます。 Microsoft Entra ID のドキュメントでプロビジョニング概要レポートに関する説明をご覧ください。
  • Azure Databricks ワークスペース ユーザーのユーザー名またはメール アドレスは更新できません。
  • admins グループは、Azure Databricks の予約済みグループであり、削除できません。
  • Azure Databricks Groups API または Groups UI を使用すると、任意の Azure Databricks ワークスペース グループのメンバーのリストを取得できます。
  • 入れ子になったグループまたは Microsoft Entra ID サービス プリンシパルを Azure Databricks SCIM プロビジョニング コネクタ アプリケーションから同期することはできません。 Databricks では、エンタープライズ アプリケーションを使用してユーザーとグループを同期し、Azure Databricks 内で入れ子になったグループとサービス プリンシパルを管理することをお勧めします。 ただし、入れ子になったグループまたは Microsoft Entra ID サービス プリンシパルを同期するために、Azure Databricks SCIM API をターゲットとする Databricks Terraform プロバイダーまたはカスタム スクリプトを使うこともできます。

トラブルシューティング

ユーザーとグループが同期されない

  • Azure Databricks SCIM プロビジョニング コネクタ アプリケーションを使用している場合:
    • ワークスペース レベルのプロビジョニングの場合: Azure Databricks 管理設定ページで、Azure Databricks SCIM プロビジョニング コネクタ アプリケーションで使用されている個人用アクセス トークンを持つ Azure Databricks ユーザーが、引き続き Azure Databricks のワークスペース管理者ユーザーであることと、トークンが引き続き有効であることを確認します。
    • アカウント レベルのプロビジョニングの場合: アカウント コンソールで、プロビジョニングの設定に使用した Azure Databricks SCIM トークンが引き続き有効であることを確認します。
  • 入れ子になったグループを同期しようとしないでください。これは、Microsoft Entra ID の自動プロビジョニングではサポートされていません。 詳細については、この FAQ を参照してください。

Microsoft Entra ID サービス プリンシパルが同期しない

  • Azure Databricks SCIM Provisioning Connector アプリケーションでは、サービス プリンシパルの同期はサポートされていません。

最初の同期後、ユーザーとグループの同期が停止する

Azure Databricks SCIM プロビジョニング コネクタ アプリケーションを使っている場合: 最初の同期の後では、ユーザーまたはグループの割り当てを変更しても Microsoft Entra ID はすぐには同期されません。 ユーザーとグループの数に基づいて、時間をおいてからアプリケーションとの同期をスケジュールします。 即時同期を要求するには、エンタープライズ アプリケーションの [管理] > [プロビジョニング] に移動し、[現在の状態を消去して、同期を再開します] を選択します。

Microsoft Entra ID プロビジョニング サービスの IP 範囲にアクセスできない

Microsoft Entra ID プロビジョニング サービスは、特定の IP 範囲で動作します。 ネットワーク アクセスを制限する必要がある場合は、この IP 範囲ファイルAzureActiveDirectory の IP アドレスからのトラフィックを許可する必要があります。 詳細については、「IP 範囲」を参照してください。