はじめに
本記事では、DatabricksアカウントコンソールでMicrosoft Entra IDとのSSO設定を行った際の手順、キャプチャをまとめる。
- Databricks on AWSを利用する
- SSOのプロトコルはOpenID Connect (OIDC) を利用する
参考ドキュメント
- Databricks アカウント コンソールで SSO を設定する |Databricks on AWS
- Microsoft Entra ID (旧称 Azure Active Directory) を使用した Databricks への SSO |Databricks on AWS
1. Databricks側でリダイレクトURLを取得
アカウントコンソールに管理者ユーザーでログインし、[Settings] > [Single sign-on] アクセスする。Databricks redirect URLの値をコピーする。
URLは一様に以下の値になっているはず。
https://accounts.cloud.databricks.com/oidc/consume
2. Microsoft Entra IDアプリケーションの作成と情報の取得
Azureポータル に管理者としてログインし、以下の作業を実施する。
2-1. アプリケーションの登録
- Entra IDのアプリの登録画面に遷移し、新規登録をクリックする
- [アプリケーションの登録] 画面で以下を設定し [登録] をクリックする
項目 | 値 |
---|---|
名前 | 任意の名前を入力する |
サポートされているアカウントの種類 |
この組織ディレクトリのみに含まれるアカウント にチェック |
リダイレクトURL |
Web を選択しDatabricks側のリダイレクトURLを入力する |
2-2. アプリケーション (クライアント) IDの取得
- 登録したアプリの概要ページから [アプリケーション (クライアント) ID] をコピーする
2-3. OpenID Connectメタデータドキュメントの取得
- 登録したアプリの概要ページ上部の [エンドポイント] をクリックする
- [OpenID Connectメタデータドキュメント] の値をコピーする
2-4. クライアントシークレットの値の取得
- 登録したアプリの [証明書とシークレット] にアクセスする
- 新しいクライアントシークレットを追加し、値をコピーする
3. Databricks側でSSO設定を行う
DatabricksのSSOの設定ページに行き、Entra ID側で取得した情報を入力し [Test SSO] をクリックする。
項目 | 値 |
---|---|
(上部のプロトコル選択のリストボックス) | OpenID Connect |
Client ID | Entra IDのアプリケーション (クライアント) IDを貼り付け |
Client secret | Entra IDのクライアントシークレットの値を貼り付け |
OpenID issuer URL | OpenID Connectメタデータドキュメントの値を貼り付け 注意点として、URL末尾の /.well-known 以降はOpenID issuer URL側に設定されてるため除去する |
- [Test SSO]をクリックするとMicrosoft Entra IDの画面が表示される(キャプチャ取り忘れ)ので、指示に従ってボタンをクリックすると設定が完了する
- DatabricksのSSO設定画面に戻ってくるので [Enable SSO] をクリックするとSSOが有効化される
- 必要に応じてSSOを無効化することもできる
4. SSOでのDatabricksサインイン確認
以上でSSOの設定は完了、以降はSSOを使ったDatabricksへのサインインを確認する。
4-1. SSOテスト用のユーザー
- IdP側に存在するユーザーでDatabricksに存在しないユーザーについて、Databricks側に登録する。
- シークレットウィンドウを開きアカウントコンソール (https://accounts.cloud.databricks.com) にアクセスする
- すると自動的にEntra IDのサインインページに遷移するのでEntra IDのユーザーアカウントのメールアドレスを入力する
- 続いてパスワードを入力する
- Entra IDでサインインが完了、自動的にDatabricks側に遷移する
- アカウントコンソール、ワークスペースいずれにも権限がないユーザーの場合は404が表示される
- Databricksの管理者でSSOテスト用ユーザーに権限を付与
- SSO用テスト用ユーザーでブラウザをリロードすると権限に応じた画面が表示される
以上です。