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

OIDC を使用した SSO の構成

この記事では、OIDC を使用してアカウント コンソールと Databricks ワークスペースに対して認証するように、シングル サインオン (SSO) を一般的に構成する方法を示します。 Okta で OIDC SSO を構成するデモについては、「 OIDC SSO を使用して Databricks アクセスを保護する」を参照してください。

アカウントでのシングル サインオンの概要については、「 Databricks で SSO を構成する」を参照してください。

OIDC を使用した SSO の有効化

警告

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

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

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

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

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

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

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

  7. [Databricks リダイレクト URL ] フィールドの値をコピーします。

    OIDC SSO を設定します。

  8. ID プロバイダーに移動し、新しいクライアント アプリケーション (Web) を作成し、ID プロバイダー構成インターフェイスの適切なフィールドに Databricks リダイレクト URL の値を入力します。

    IDプロバイダーがこのプロセスを説明するドキュメントを用意しているはずです。

  9. IDプロバイダーがアプリケーション用に生成したクライアントID、クライアントシークレット、OpenID発行者URLをコピーします。

    • クライアントID は、IDプロバイダーで作成されたDatabricksアプリケーションの一意の識別子です。これは、 アプリケーションID と呼ばれることもあります。

    • クライアントシークレット は、作成したDatabricksアプリケーション用に生成されたシークレットまたはパスワードです。これは、IDプロバイダーでDatabricksを認証するために使用されます。

    • 発行者 URL は、ID プロバイダーの OpenID 設定ドキュメントを見つけることができる URL のプレフィックスです。その OpenID 設定ドキュメントは {issuer-url}/.well-known/openid-configurationにある必要があります。

      URL から末尾の /.well-known/openid-configuration を削除します。 クエリ パラメーターを指定するには、発行者 URL に追加します (例: {issuer-url}?appid=123)。

  10. Databricks アカウント コンソールの [認証 ] タブに戻り、ID プロバイダー アプリケーションからコピーした値を [クライアント ID ]、[ クライアント シークレット ]、 および [OpenID 発行者 URL ] フィールドに入力します。

  11. 必要に応じて、email 以外の要求をユーザーの Databricks ユーザー名として使用する場合は、 [ユーザー名] 要求 を入力します。要求値に関する具体的な情報については、ID プロバイダーのドキュメントを参照してください。

    シングルサインオンタブ

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

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

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

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

  16. すべてのアカウントユーザーに、IDプロバイダー内のDatabricksアプリケーションへのアクセス権を付与します。アプリケーションへのアクセス権を変更する必要がある場合があります。

統合ログインを構成し、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 プロバイダーからのユーザーとグループの同期」を参照してください。

OIDC SSO のトラブルシューティング

次の表に、SSO 認証中に発生する可能性のある OIDC エラー コードを示します。各エントリには、エラー コード、コンピューターで読み取り可能なエラー名、詳細な説明、およびトラブルシューティングの推奨される次の手順が表示されます。この情報を使用して、ワークスペース内の OIDC 認証の問題を迅速に特定して解決します。

エラーコード

説明

次のステップ

oidc_login_error

一般的なログインエラーが発生しました。

要求 ID を取得して、失敗した要求を特定します。

oidc_state_missing

state パラメーターが IdP の応答にないか、Databricks が送信した内容と一致しません。これは、IdP が開始するOIDC フローを設定した場合にも発生する可能性がありますが、これはサポートされていません。state パラメーターは、クロスサイト リクエスト フォージェリ (CSRF) の防止に役立ちます。

IdP 構成を確認して、 state パラメーターが返され、要求と一致することを確認します。

oidc_nonce_missing

nonce パラメーターが Databricks 要求にありません。これは、nonceCookieの有効期限が切れた場合、またはCookieが完全に欠落している場合に発生する可能性があります。nonce パラメーターは、IdP からのトークンが Databricks によって開始された要求と一致するようにすることで、リプレイ攻撃を防ぎます。

ネットワーク トラフィックを検査して、nonce の有効期限が切れていないか、Cookie が欠落していないかを確認します。

oidc_metadata_fetch_failure

Databricks は OIDC 構成からメタデータを取得できませんでした。IdP の発行者 URL は、OIDC フローに必要なエンドポイントを検索するために使用されます。

{issuer-url}/.well-known/openid-configurationが有効で、一般にアクセス可能であることを確認します。各エンドポイント URL は到達可能である必要があります。

oidc_received_no_code_or_token_failure

IdP から認証コードが返されませんでした。Databricks では、次の手順で ID トークンと引き換えるために、このコードが必要です。

IdP が OIDC 認証コードフロー (response_type=code) をサポートし、認証コードを返すように設定されていることを確認します。リダイレクト URI と必要なスコープが正しく構成されていることを確認します。さらにサポートが必要な場合は、Databricks サポートにお問い合わせください。

oidc_code_exchange_failure

これは通常、クライアントシークレットが正しくないか、期限切れである場合に発生します。また、IdP が 200 以外の応答を返した場合にも発生する可能性があります。

クライアントシークレットが有効であることを確認します。

oidc_code_exchange_token_missing

認証コードは IdP から受信されましたが、その後のトークン交換では予期された ID トークンが返されませんでした。認証コードを受け取った後、OIDC フローの次のステップは ID トークンを取得することです。

IdP の設定を確認します。また、OIDC フローを手動でテストして、コードとトークンが返されることを確認することもできます。

oidc_generic_token_failure

oidc_code_exchange_token_missingと似ていますが、認証コードが無効、期限切れの場合、または要求の不一致 (発行者、対象ユーザー、または nonce) がある場合にも発生する可能性があります。クレームの不一致によるコードの検証またはデコードのエラーも、これを引き起こす可能性があります。

IdP の設定を確認します。また、OIDC フローを手動でテストして、コードとトークンが返されることを確認することもできます。

oidc_missing_email_claim

IdP は ID トークンで Eメール クレームを送信しませんでした。 これは、カスタム要求の使用が原因である可能性があります。

カスタム要求が使用されているかどうかを確認し、適切に構成されていることを確認します。

oidc_auth_error

一般的なログインエラーが発生しました。

要求 ID を取得して、失敗した要求を特定します。