このページでは、Microsoft Entra IDを使用してAzure Databricks アカウントを自動 ID 管理に移行する方法について説明します。
自動 ID 管理の概要については、「 自動 ID 管理」を参照してください。
前提 条件
自動 ID 管理を有効にする前に、環境が次の要件を満たしていることを確認します。
| Requirement | 詳細情報 | 確認方法 |
|---|---|---|
| Premium レベルまたは Enterprise レベル | Standard レベルのアカウントでは、自動 ID 管理を使用できません。 | アカウント コンソール >アカウント設定>サブスクリプションレベル |
| 単一 Microsoft Entra ID テナント | 自動 ID 管理では、テナント間 ID はサポートされません。 すべてのユーザー、グループ、およびサービス プリンシパルは、単一のMicrosoft Entra ID テナントに属している必要があります。 テナント間 ID を持つ環境は、SCIM プロビジョニングに残る必要があります。 | ID チームに確認します。 |
| 少なくとも 1 つのワークスペースで有効になっている ID フェデレーション | ID の自動管理には、少なくとも 1 つの ID フェデレーション ワークスペースが必要です。 非フェデレーション ワークスペースは引き続き機能しますが、自動 ID 管理は使用しません。 | アカウント コンソールで ワークスペース を開き、 ID フェデレーション バッジを探します。 有効にするには、「 ID フェデレーションを有効にする」を参照してください。 |
| アカウント管理者ロール | 自動 ID 管理を有効にできるのは、アカウント管理者だけです。 | アカウント コンソール >User Management。 ロール チップには アカウント管理者が表示されている必要があります。 |
役割と責任
| 役割 | 職責 | 自動 ID 管理が有効になった後の動作 |
|---|---|---|
| アカウント管理者 | ID の自動管理を有効にします。 アカウント レベルの SCIM を構成、一時停止、または無効にします。 検証と外部 ID チェックを実行します。 ワークスペースにグループを割り当てます。 アカウント レベルの ID と Unity カタログのアクセス許可を管理します。 ID 関連の監査ログを確認します。 | 自動 ID 管理の有効化、検証、ロールバックを担当します。 必要に応じて、外部 ID 構成ミス軽減スクリプトを実行します。 |
| ワークスペース管理者 | 自動 ID 管理または SCIM を制御しません。 ワークスペースに既に割り当てられている ID を使用して、ワークスペース レベルの ACL を管理します。 移行後のテストを実行し、問題を報告します。 | ワークスペースから直接Microsoft Entra ID ID を検索してプロビジョニングできます (Settings > Identity and Access > ユーザーの管理)。 自動 ID 管理を有効または無効にすることはできません。 |
| ワークスペース ユーザー | サインインし、ノートブックとジョブを実行し、割り当てられたコンピューティングを使用します。 プロビジョニングされた ID を使用して資産を共有します。 | アクティブなセッションに変更はありません。 自動 ID 管理を有効にした後の最初のサインインでは、JIT を使用してユーザーがプロビジョニングされます。 アクセス許可は、以前と同じグループ メンバーシップを使用して解決されます。 Microsoft Entra ID ID と資産を共有できます。 |
変わらない点
自動 ID 管理を有効にすると、次の内容が保持されます。
- SCIM 同期グループ メンバーシップ: 自動 ID 管理では、最初に SCIM によって同期されたグループ メンバーシップは削除されません。 これは、これらのメンバーシップに依存するジョブとアクセス許可を中断しないように設計されています。
- 既存のアクセス許可: ワークスペースと Unity カタログのアクセス許可は、引き続き同じプリンシパルに対して解決されます。
- アクティブなセッション: ID の自動管理では、ユーザーのログアウトや実行中のセッションの中断は強制されません。
- 実行中のジョブ: 現在の認証情報で認証されたサービス プリンシパルは引き続き動作します。
- ワークスペース ローカル グループ: 自動 ID 管理では、アカウント レベルの ID のみが管理されます。 ワークスペース ローカル グループは引き続き機能しますが、Microsoft Entra IDからは同期されません。
- Databricks 専用のサービス プリンシパル: Microsoft Entra ID に登録されていないサービス プリンシパルは影響を受けません。
既存の SCIM プロビジョニングなしで移行する
Azure Databricks アカウントにアカウント レベルの SCIM プロビジョニングがない場合は、このパスを使用します。 これは最も簡単な移行パスです。
表示名別にサービス プリンシパルを参照する自動監査。
自動 ID 管理が有効になっている場合、Azure DatabricksはMicrosoft Entra IDを権限のあるソースとして扱い、カスタム サービス プリンシパルの表示名をMicrosoft Entra IDの表示名で上書きします。 ワークフローが壊れないようにするには、自動化 (Terraform 構成やスクリプトなど) を更新し、表示名ではなくアプリケーション ID でサービス プリンシパルを参照します。
自動 ID 管理を有効にする:
- アカウント管理者として、アカウント コンソールにログインします。
- [セキュリティ] をクリックします。
- [ ユーザー プロビジョニング ] タブで、[ 自動 ID 管理 ] を [有効] に切り替えます。
- 変更が反映されるまで 5 ~ 10 分かかります。
(省略可能)アカウント アクセス拒否リストを構成します。 アカウント アクセス拒否リストを使用して、特定のMicrosoft Entra ID ID がAzure Databricks アカウントにアクセスできないように制限します。 アカウントへの ID アクセスの拒否を参照してください。
(省略可能)ワークスペース管理者に通知します。 自動 ID 管理の概要をワークスペース管理者と共有して、Just-In-Time プロビジョニングなど、予期される動作の変化を把握します。
自動 ID 管理を有効にした後、 検証手順を完了します。
既存の SCIM プロビジョニングからの移行
Azure Databricks アカウントが現在アカウント レベルの SCIM プロビジョニングを使用している場合は、このパスを使用します。 Databricks では、既存の SCIM プロビジョニングと並行して自動 ID 管理を有効にし、両方を並列で実行することをお勧めします。 自動 ID 管理が正常に動作していることを検証した後、SCIM を無効にすることができます。
自動 ID 管理を有効にした場合の変更点
| Behavior | 自動 ID 管理の前 | 自動 ID 管理の後 |
|---|---|---|
| ID の発行元 | SCIM は、スケジュールに従ってユーザー、グループ、およびサービス プリンシパルをMicrosoft Entra IDからアカウント SCIM エンドポイントにプッシュします。 | Azure Databricks Graph APIを使用してMicrosoft Entra IDから直接 ID を読み取ります。 プロビジョニングは、初回利用時またはログイン時に行われる Just-In-Time (JIT) 方式です。 |
| グループ メンバーシップ | 直接メンバーのみ。 入れ子になったグループは、Microsoft Entra IDまたは SCIM スコープルールでフラット化する必要があります。 | 推移的なグループ メンバーシップは自動的に展開されます。 |
| グループ メンバーシップ同期の待機時間 | 次の SCIM サイクル (通常は 40 分) を待ちます。 | ブラウザーのサインイン: 最大 5 分。 ブラウザー以外 (ジョブ、CLI、サービス プリンシパル): 最大 40 分。 |
| サービス プリンシパルのプロビジョニング | サービス プリンシパルは SCIM のスコープ ルールによってプッシュされます。 | サービス プリンシパルは、初回の認証時にプロビジョニングされます。 SCIM プッシュは必要ありません。 |
| Microsoft Entra IDでのグループ名の変更 | SCIM は、次の同期サイクルで表示名を更新します。 | グループ名は事前に再同期されません。 アカウント コンソールでグループの詳細ページを開くアカウント管理者が更新をトリガーします。
resolveByExternalId API を呼び出して同期をトリガーすることもできます。 |
移行を準備する
Databricks ナレッジ ベースから自動 ID 管理有効化準備スクリプトを実行します。
このスクリプトは、Azure DatabricksとMicrosoft Entra IDの間の外部 ID の不一致を識別して解決し、ID フェデレーションされているワークスペースを識別します。
Note
自動 ID 管理では、id を同期するための権限のあるリンクとして Microsoft Entra ID
objectIdを使用します。 Azure Databricks内のプリンシパルのexternalIdがそのMicrosoft Entra IDobjectIdと一致しない場合、自動 ID 管理によって重複するプリンシパルが作成される可能性があります。 自動 ID 管理を有効にして不一致を特定して修正する前に、検出スクリプトを実行します。表示名別にサービス プリンシパルを参照する自動監査。
自動 ID 管理が有効になっている場合、Azure DatabricksはMicrosoft Entra IDを権限のあるソースとして扱い、カスタム サービス プリンシパルの表示名をMicrosoft Entra IDの表示名で上書きします。 ワークフローが壊れないようにするには、自動化 (Terraform 構成やスクリプトなど) を更新し、表示名ではなくアプリケーション ID でサービス プリンシパルを参照します。
(省略可能)アカウント アクセス拒否リストを構成します。 アカウントへの ID アクセスの拒否を参照してください。
(省略可能)ワークスペース管理者に通知します。 自動 ID 管理の概要をワークスペース管理者と共有して、Just-In-Time プロビジョニングなど、予期される動作の変化を把握します。
ID の自動管理を有効にする
- アカウント管理者として、アカウント コンソールにログインします。
- [セキュリティ] をクリックします。
- [ ユーザー プロビジョニング ] タブで、[ 自動 ID 管理 ] を [有効] に切り替えます。
- 変更が反映されるまで 5 ~ 10 分かかります。
自動 ID 管理と SCIM プロビジョニングは、両方がアクティブな間に並列で実行されます。 SCIM は、最初にプロビジョニングされた ID を引き続き管理します。 自動 ID 管理を検証したら、SCIM を無効にすることができます。 SCIM プロビジョニングの無効化を参照してください。
自動 ID 管理を検証する
自動 ID 管理を有効にした後、ID が正しく同期されていることを確認します。
ロール別のテスト
各ロールの代表的なユーザーに、次のテストを実行させます。
アカウント管理者
アカウント コンソールからユーザーをプロビジョニングします。
- ユーザー管理>ユーザー>アカウント コンソールに移動し、[ユーザーの追加] をクリックします。
- Azure DatabricksでプロビジョニングされていないユーザーをMicrosoft Entra IDで検索する
- ユーザーを選択し、[ユーザーの 追加] をクリックします。
- ユーザーが Azure Databricks に表示され、状態が Active であることを確認します。
アカウント コンソールからグループをプロビジョニングします。
- [ユーザー管理] > グループ>アカウント コンソールに移動し、[グループの追加] をクリックします。
- Azure DatabricksでプロビジョニングされていないグループをMicrosoft Entra IDで検索します。
- グループがAzure Databricksに表示されたことを確認します。 グループ メンバーは、ログイン時に Just-In-Time ベースでプロビジョニングされます。
ワークスペースのアクセスを確認します。
- 前の手順のグループをワークスペースに割り当てます。
- そのグループのメンバーにワークスペースに対する認証を行います。
- 認証が成功し、ユーザーがAzure Databricksでプロビジョニングされ、ワークスペースに追加されていることを確認します。
ワークスペース管理者
ワークスペースからユーザーをプロビジョニングします。
- [設定] > [ID とアクセス] > [ユーザーの管理] に移動し、[ユーザーの追加] をクリックします。
- Azure DatabricksでプロビジョニングされていないユーザーをMicrosoft Entra IDで検索します。
- ユーザーの状態が [アクティブ] であることを確認します。
ワークスペースからグループを作成する:
- クエリやダッシュボードなどのワークスペース資産を開き、[ 共有] をクリックします。
- Azure DatabricksでプロビジョニングされていないグループをMicrosoft Entra IDで検索し、そのグループと資産を共有します。
- グループがAzure Databricksでプロビジョニングされていることを確認します。
- そのグループのメンバーにワークスペースに対する認証を行い、共有資産にアクセスできることを確認します。
監査ログで自動 ID 管理を確認する
system.access.audit テーブルにクエリを実行して、自動 ID 管理がアクティブであることを確認します。
add、addPrincipalToGroup、createGroup、updateUserなどのイベントの 0 以外のカウントは、ID が同期されていることを確認します。
SELECT action_name, count(*) AS n
FROM system.access.audit
WHERE request_params.endpoint = 'autoUserCreation'
AND event_time > current_timestamp() - INTERVAL 2 DAYS
GROUP BY action_name
ORDER BY n DESC;
自動 ID 管理監査イベントの詳細については、「自動 ID 管理イベントの監査」を参照してください。
ID の自動管理を無効にする
自動 ID 管理を無効にする手順については、「 自動 ID 管理を無効にする」を参照してください。
SCIM から移行した後に自動 ID 管理を無効にする場合:
- 自動 ID 管理によって作成された ID はAzure Databricksに残りますが、Microsoft Entra IDと同期されなくなります。
- 自動 ID 管理によって同期されたグループ メンバーシップは、アクセス許可の解決に使用されなくなりました。 以前にこれらのグループ メンバーシップを通じてアクセス許可を継承したユーザーは、アクセス権を失います。
- 自動 ID 管理がアクティブな状態でAzure Databricksに認証されたユーザーは、以前に表示したダッシュボードに引き続きアクセスできますが、グループ メンバーシップはMicrosoft Entra IDから更新されません。
- Azure Databricksにアクセスしたことがないユーザーは、Microsoft Entra IDの割り当てられたグループに属している場合でも、自動 ID 管理を無効にした後はアクセスできません。
Databricks では、自動 ID 管理を無効にする前に SCIM プロビジョニングを設定することをお勧めします。 Microsoft Entra ID (Azure Active Directory) を使用した SCIM プロビジョニングの構成を参照してください。
SCIM プロビジョニングを無効にする
自動 ID 管理を検証した後、必要に応じて SCIM プロビジョニングを無効にすることができます。 SCIM は、環境内で次のすべての条件が満たされていることを確認した後でのみ無効にします。
- 入れ子になったグループはありません: ID 構造体は、Microsoft Entra IDの入れ子になったグループ メンバーシップに依存しません。
-
外部 ID の整合: グループは SCIM コネクタ アプリを使用して Microsoft Entra ID から複製されたため、Azure Databricks の
externalId値は、対応する Microsoft Entra ID のobjectId値と一致します。 Customer Instance Discovery スクリプトを使用して、不一致を特定して解決します。 - ローカル メンバーシップの変更はありません: グループ メンバーシップは SCIM 経由でのみ管理されており、Azure Databricksで手動で変更されていません。 Customer Instance Discovery スクリプトは、ローカルで変更されたメンバーシップを検出できます。
環境がこれらの条件をすべて満たしていない場合、Databricks では引き続き SCIM プロビジョニングと自動 ID 管理を並列で実行することをお勧めします。
SCIM を無効にした後の既知の制限事項
永続的な SCIM 同期グループ メンバーシップ
SCIM によって同期されたグループ メンバーシップは、SCIM が無効になった後も保持されます。 たとえば、子グループ C がMicrosoft Entra IDの親グループ P の下に入れ子になっている場合、C と P のリレーションシップが後でMicrosoft Entra IDで削除された場合、メンバーシップはAzure Databricksのままであるため、ユーザーは引き続き P からアクセス許可を継承できます。 Databricks では、SCIM を無効にする前に、外部グループからの直接グループ メンバーシップをクリーンアップすることをお勧めします。
入れ子になったグループ構造を持つ環境
入れ子になったグループ構造を使用する環境の場合、Databricks では、入れ子になったグループ メンバーシップの同期を維持するために、自動 ID 管理と共に SCIM プロビジョニングを引き続き実行することをお勧めします。
手動で変更されたグループ メンバーシップ
グループ メンバーシップがAzure Databricksで手動で編集されている場合、SCIM を無効にした後、それらのメンバーシップはMicrosoft Entra IDと同期されず、時間の経過と共に古くなる可能性があります。 SCIM を無効にする前に、 Databricks ナレッジ ベース の自動 ID 管理有効化準備スクリプトの指示に従って、手動で変更されたグループ メンバーシップを識別して修正します。
移行に関する考慮事項
入れ子になったグループをワークスペースに明示的に割り当てる必要がある
入れ子になったMicrosoft Entra ID グループを使用する場合、子グループはワークスペース内のリソース共有に自動的には使用できません。 ノートブックやクエリなどのワークスペース オブジェクトに対する子グループのアクセス許可を付与するには、親グループが既に割り当てられている場合でも、その子グループをワークスペースに直接割り当てる必要があります。
たとえば、親グループ P に子グループ C が含まれており、P のみがワークスペースに割り当てられている場合、C 自体も割り当てられるまで、C にはワークスペース リソースに対するアクセス許可を付与できません。
グループ メンバーは Just-In-Time ベースでプロビジョニングされます
SCIM とは異なり、自動 ID 管理では、グループ メンバーシップがAzure Databricksに事前に同期されることはありません。 グループ メンバーは、Azure Databricksにアクティビティがある場合 (ログインなど)、またはアカウント管理者またはワークスペース管理者が明示的に追加した場合にプロビジョニングされます。
削除されたユーザーは直ちに非アクティブ化されません
ユーザーがMicrosoft Entra IDから削除されると、ユーザーは引き続きAzure Databricksアクティブとして表示されます。 ログインできませんが、状態は自動的に更新されません。
メール アドレスの変更によって新しいユーザーが作成される
ユーザーの電子メール アドレスがMicrosoft Entra IDで変更された場合 (たとえば、alice@example.com が alice-new@example.com になった場合)、自動 ID 管理によって、既存のレコードを更新するのではなく、Azure Databricksで新しいユーザーが作成されます。 これは、現在の SCIM 動作と一致します。 メール アドレスの変更については、Databricks サポートにお問い合わせください。
SCIM API は、自動 ID 管理によってプロビジョニングされたメンバーを返しません
SCIM GET /groups/{id} API は、Azure Databricks UI または SCIM を介してプロビジョニングされたグループ メンバーのみを返します。 自動 ID 管理によってプロビジョニングされたユーザーや、Microsoft Entra IDに存在するが、Azure Databricksでまだプロビジョニングされていないユーザーは返されません。
Unity カタログのアクセス許可には、プロビジョニングされた ID が必要です
Unity カタログのアクセス許可付与 API は、Azure Databricksでまだプロビジョニングされていない ID を参照できません。 ID にアクセス許可を付与する前に、 resolveByExternalId API を使用してプロビジョニングします。 ID がプロビジョニングされたら、通常どおりアクセス許可を付与できます。
プリンシパルを名前で参照する関数 ( is_account_group_member() など) も、最初にプリンシパルをプロビジョニングする必要があります。
ワークスペース ローカル グループは、自動 ID 管理によって管理されません
自動 ID 管理では、ワークスペースローカル グループは管理されません。 ワークスペースローカル グループとその割り当てられたアクセス許可は引き続き機能しますが、メンバーシップの更新は、自動 ID 管理の外部で処理する必要があります。
Databricks では、自動 ID 管理でメンバーシップを管理できるように、ワークスペースローカル グループをアカウント レベルのグループに移行することをお勧めします。 「 ワークスペースローカル グループをアカウント グループに移行する」を参照してください。