メインコンテンツまでスキップ

Keycloakを使用したDatabricksへのSSO

この記事では、Databricks アカウントでシングル サインオン (SSO) の ID プロバイダーとして Keycloak を構成する方法について説明します。 Keycloak は OpenID Connect (OIDC) と SAML 2.0 の両方をサポートしています。 Keycloak は、ユーザーとグループを Databricks に同期するための SCIM をサポートしていません。

警告

シングル サインオン テスト中に Databricks からロックアウトされるのを防ぐために、Databricks では、アカウント コンソールを別のブラウザー ウィンドウで開いたままにしておくことをお勧めします。 また、セキュリティキーを使用して緊急アクセスを構成して、ロックアウトを防ぐこともできます。 ロックアウトを防ぐための緊急アクセスを参照してください。

OIDC を使用した Keycloak SSO の有効化

  1. アカウント管理者として、 アカウントコンソール にログインし、サイドバーの [設定 ]アイコンをクリックします。

  2. 「認証 」タブをクリックします。

  3. 「認証」 の横にある 「管理 」をクリックします。

  4. [ ID プロバイダーによるシングル サインオン ] を選択します。

  5. 続行 」をクリックします。

  6. [ID プロトコル ] で [ OpenID Connect ] を選択します。

  7. [ 認証 ] タブで、 [Databricks リダイレクト URL ] の値をメモします。

  8. 新しいブラウザタブで、Keycloak 管理コンソールにログインします。

  9. Databricks 統合のレルムを選択するか、新しいレルムを作成します。

  10. 新しいクライアントを作成します。

    1. [クライアント] をクリックし、[ クライアントの作成 ] をクリックします。

    2. [クライアントの種類 ] で [ OpenID Connect ] を選択します。

    3. [クライアント ID ] と [名前] を入力します。

    4. 「次へ 」をクリックして 「保存」 をクリックします。

    Keycloak で新しいクライアントを作成します。

  11. Databricks クライアントを構成します。

    1. [アクセス設定 ] で、[ ホーム URL ] を Databricks アカウントの URL に設定します。(たとえば、 https://accounts.cloud.databricks.com/)。
    2. [有効なリダイレクト URI] を、上記でコピーした Databricks リダイレクト URL に設定します。
    3. [機能の構成 ] で、[機密アクセスの クライアント認証 ] を [オン ] に設定します。

    Keycloak でアクセス設定を行います。

  12. グループメンバーシップのマッピングを設定します。

    1. [ クライアント スコープ] をクリックし、クライアント専用のスコープを選択します。
    2. [マッパー] タブで、[ 新しいマッパーの設定 ] をクリックします。
    3. [マッパーの種類 ] で [ グループ メンバーシップ] を選択します。
    4. [名前 ] と [トークンの要求名 ] の両方を [グループ ] に設定します。
    5. 好みに応じて、[ 完全なグループパス ]を [オン ]または [オフ ]に切り替えます。

    Keycloak はグループ設定を構成します。

  13. Databricks アカウント コンソールの [認証 ] タブに戻り、Keycloak からコピーした値を入力します。

    1. クライアント ID : Keycloak のクライアント ID。
    2. クライアントシークレット :Keycloakクライアントの [資格情報 ]タブにあります。
    3. OpenID 発行者 URL : レルムを含む Keycloak URL (例: https://keycloak.example.com/realms/your-realm)。
  14. [ 保存 ]をクリックします。

  15. [SSOのテスト] をクリックして、SSO設定が正しく機能していることを確認します。

  16. [SSOを有効にする] をクリックして、アカウントのシングルサインオンを有効にします。

  17. SSOを使用したアカウントコンソールログインをテストします。

統合ログインを構成し、Databricks にユーザーを追加する

SSO を構成した後、Databricks では、統合ログインを構成し、SCIM プロビジョニングを使用してアカウントにユーザーを追加することをお勧めします。

  1. 統合ログインの設定

    統合ログインを使用すると、Databricks ワークスペースでアカウント コンソールの SSO 構成を使用できます。 アカウントが 2023 年 6 月 21 日より後に作成された場合、または 2024 年 12 月 12 日より前に SSO を構成しなかった場合、すべてのワークスペースでアカウントで統合ログインが有効になっており、無効にすることはできません。 統合ログインを設定するには、「 統合ログインを有効にする」を参照してください。

  2. Databricks にユーザーを追加する

    ユーザーがログインするには、Databricks にユーザーを追加する必要があります。 Databricks では、SCIM プロビジョニングを使用して、ユーザーとグループを ID プロバイダーから Databricks アカウントに自動的に同期することをお勧めします。 SCIM は、ID プロバイダーを使用して Databricks でユーザーとグループを作成し、適切なレベルのアクセス権を付与することで、新しい従業員やチームのオンボーディングを効率化します。 「SCIM を使用した ID プロバイダーからのユーザーとグループの同期」を参照してください。

SAML を使用した Keycloak SSO の有効化

  1. アカウント管理者として、 アカウントコンソール にログインし、サイドバーの [設定 ]アイコンをクリックします。

  2. 「認証 」タブをクリックします。

  3. 「認証」 の横にある 「管理 」をクリックします。

  4. [ ID プロバイダーによるシングル サインオン ] を選択します。

  5. 続行 」をクリックします。

  6. [ID プロトコル ] で [ OpenID Connect ] を選択します。

  7. [ 認証 ] タブで、 [Databricks リダイレクト URL ] の値をメモします。

    SAML SSO を設定します。

  8. 新しいブラウザタブで、Keycloak 管理コンソールにログインします。

  9. Databricks 統合のレルムを選択するか、新しいレルムを作成します。

  10. 新しいクライアントを作成します。

    1. [クライアント] をクリックし、[ クライアントの作成 ] をクリックします。
    2. [クライアントの種類 ] で [ SAML ] を選択します。
    3. [クライアント ID ] と [名前] を入力します。
    4. 「次へ 」をクリックして 「保存」 をクリックします。
    5. ログイン設定で、 [有効なリダイレクト URI] を、上記でコピーした Databricks リダイレクト URL に設定します。

    Keycloak で新しい SAML クライアントを作成します。

  11. クライアントを設定します。

    1. [設定 ] タブの [SAML機能 ] で、[ 名前 ID 形式 ] を [電子メール ] に設定します。
    2. [名前 ID 形式を強制する ] をオンにします。
    3. [ 保存 ]をクリックします。

    Keycloak は SAML 属性を設定します。

  12. SAML 属性マッピングを設定します。

    1. [ クライアント スコープ] をクリックし、クライアント専用のスコープを選択します。
    2. [マッパー] タブで、[ 事前定義マッパーの追加 ] をクリックします。
    3. [X500 Eメール ]、[ X500 givenName ]、および [X500 surname ] を選択し、[ 追加 ] をクリックします。

    Keycloak は専用のスコープを設定します。

  13. SAMLメタデータを取得します。

    1. [Realm settings ] と [General] をクリックします。

    2. [SAML 2.0 ID プロバイダー メタデータ ] をクリックします。

    3. メタデータから、次の値を保存します。

    • SingleSignOnService 要素の Location 属性 (https://my-idp.example.com/realms/DatabricksRealm/protocol/samlなど)。これは の シングルサインオン URL です Databricks
    • EntityDescriptor 要素の entityID 属性 (https://my-idp.example.com/realms/DatabricksRealmなど)。
    • X509Certificateタグ。
  14. Databricks アカウント コンソールの [認証 ] タブに戻り、Keycloak からコピーした値を入力します。

    1. シングルサインオン URL : 上記でコピーした SingleSignOnService 要素の Location 属性。
    2. エンティティ ID : 上記でコピーした EntityDescriptor 要素の entityID 属性。
    3. X509Certificate : 上記でコピーした X509Certificate タグ。
  15. [ 保存 ]をクリックします。

  16. [SSOのテスト] をクリックして、SSO設定が正しく機能していることを確認します。

  17. [SSOを有効にする] をクリックして、アカウントのシングルサインオンを有効にします。

  18. SSOを使用したアカウントコンソールログインをテストします。

統合ログインを構成し、Databricks にユーザーを追加する

SSO を構成した後、Databricks では、統合ログインを構成し、SCIM プロビジョニングを使用してアカウントにユーザーを追加することをお勧めします。

  1. 統合ログインの設定

    統合ログインを使用すると、Databricks ワークスペースでアカウント コンソールの SSO 構成を使用できます。 アカウントが 2023 年 6 月 21 日より後に作成された場合、または 2024 年 12 月 12 日より前に SSO を構成しなかった場合、すべてのワークスペースでアカウントで統合ログインが有効になっており、無効にすることはできません。 統合ログインを設定するには、「 統合ログインを有効にする」を参照してください。

  2. Databricks にユーザーを追加する

    ユーザーがログインするには、Databricks にユーザーを追加する必要があります。 Databricks では、SCIM プロビジョニングを使用して、ユーザーとグループを ID プロバイダーから Databricks アカウントに自動的に同期することをお勧めします。 SCIM は、ID プロバイダーを使用して Databricks でユーザーとグループを作成し、適切なレベルのアクセス権を付与することで、新しい従業員やチームのオンボーディングを効率化します。 「SCIM を使用した ID プロバイダーからのユーザーとグループの同期」を参照してください。