DatabricksアカウントコンソールでのSSOのセットアップ

[Set up SSO for your Databricks account console \| Databricks on AWS](https://docs.databricks.com/administration-guide/account-settings-e2/single-sign-on/index.html) [2023/6/20時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

あなたの組織のアイデンティティプロバイダーを用いて[アカウントコンソール](https://docs.databricks.com/administration-guide/account-settings/index.html#account-console)への認証にシングルサインオン(SSO)を活用します。アカウントコンソールは、ワークスペース作成、委任されたAWSアクセス資格情報、AWSストレージ設定、顧客管理VPC(オプション)を含む、お使いのDatabricksアカウントレベルの設定を管理する場所となります。

アカウントコンソールのSSOでは、SAML 2.0あるいは[OpenID Connect \(OIDC\)](https://openid.net/connect/)をサポートしています。お使いのアイデンティティプロバイダー(IdP)は、少なくともいずれかのプロトコルをサポートしている必要があります。お使いのIdPでOIDCとSAML 2.0の両方をサポートしているのであれば、アカウントコンソールの認証にはOIDCを使うことをお勧めします。

アカウントでSSOを有効化すると、すべてのユーザーに対して、アカウントコンソールへのログインにはSSOを使うことが要求されます。アカウントオーナーのみはユーザー名(メールアドレス)とパスワードを用いてログインすることができます。

SSO認証を用いたアカウントコンソールの挙動は、ユーザーがDatabricksアカウントの`admin`ロールを持っているかどうかによって変化します。

- `admin`ロールがある場合、ユーザーはワークスペースやワークスペースリソースの作成や変更のようなアカウントコンソールのアカウント管理者向け機能にアクセスできます。
- `admin`ロールがない場合、ユーザーはログインできるワークスペース一覧やワークスペースへのリンクの参照のような非管理者のアクションに限定されます。

:::note
**注意**
アカウントレベルのSSOを使うには、アカウントは[E2バージョンのDatabricksプラットフォーム](https://docs.databricks.com/getting-started/overview.html#e2-architecture)である必要があります。アカウントタイプがわからない場合には、Databricks担当者にお問い合わせください。
:::

# 統合ログイン

2023/6/21以降にDatabricksアカウントが作成されたのであれば、あなたのアカウントで統合ログインが有効になっています。統合ログインによって、アカウントとすべてのDatabricksワークスペースで使用される一つのSSO設定を管理することができます。アカウントでSSOが有効化されると、新規・既存のすべてのワークスベースでアカウントレベルのSSO設定が用いられ、アカウント管理者、ワークスペース管理者を含むすべてのユーザーはSSOを用いてDatabricksにサインインしなくてはなりません。ワークスペースレベルで個別にSSOを管理することはできません。

2023/6/21以前にアカウントが作成されている場合、アカウントで統合ログインは有効化されていません。これは、アカウントのSSOとワークスペースごとのSSOは個別に管理しなくてはならないことを意味します。アカウントとワークスペースで同じアイデンティティプロバイダーを設定しなくてはなりません。

:::note
**プレビュー**
2023/6/21以前に作成されたアカウントの統合ログインは[プライベートプレビュー](https://docs.databricks.com/release-notes/release-types.html)です。アクセスするにはDatabricks担当者にお問い合わせください。
:::

# アカウントコンソールSSOアプリケーションの例

以下のアイデンティティプロバイダーでのSSOの設定方法に関しては、手順を参照することができます:

- [SSO to your Databricks console with Azure Active Directory](https://docs.databricks.com/administration-guide/account-settings-e2/single-sign-on/azure-ad.html)
- [Configure SSO with Okta for your Databricks account console](https://docs.databricks.com/administration-guide/account-settings-e2/single-sign-on/okta.html)
- [Configure SSO with OneLogin for your Databricks account console](https://docs.databricks.com/administration-guide/account-settings-e2/single-sign-on/one-login.html)

OIDCやSAML 2.0をサポートしているいかなるアイデンティティプロバイダーではプロセスは同様なものとなります。お使いのアイデンティティプロバイダーが上に列挙されていない場合には、以下の[OIDC](#oidcを用いたアカウントシングルサインオン認証の有効化)や[SAML](#samlを用いたアカウントシングルサインオン認証の有効化)の手順に従ってください。アカウントコンソールの認証にはOICDを使うことをお勧めします。

# OIDCを用いたアカウントシングルサインオン認証の有効化

:::note alert
**警告！**
シングルサインオンのテストの過程でDatabricksからロックアウトされないように、別のブラウザウィンドウでアカウントコンソールを開いたままにしておくことをお勧めします。
:::

1. アカウントオーナーあるいはアカウント管理者として、[アカウントコンソール](https://docs.databricks.com/administration-guide/account-settings/index.html#account-console)にログインし、サイドバーの**Settings**をクリックします。
1. **Single sign-on**タブをクリックします。
1. このタブの上部にあるドロップダウンから、**OpenID Connect**を選択します。
1. **Single sign-on**タブで、**Databricks Redirect URI**の値をメモしておきます。
![](https://docs.databricks.com/_images/sso-account-console-empty.png)
1. お使いのアイデンティティプロバイダーに移動し、新たにクライアントアプリケーション(web)を作成し、アイデンティティプロバイダーの設定インタフェースの適切なフィールドに**Databricks Redirect URI**を入力します。

    お使いのアイデンティティプロバイダーでは、このプロセスのガイドに関するドキュメントを提供しているに違いありません。

1. このアプリケーション向けにアイデンティティプロバイダーが生成したクライアントID、クライアントシークレット、OpenIDイシュアーURLをコピーしておきます。

    - **クライアントID**は、お使いのアイデンティティプロバイダーであなたが作成したDatabricksアプリケーションのユニークなIDです。これは時には、**アプリケーションID**と呼ばれます。
    - **クライアントシークレット**は、作成したDatabricksアプリケーション向けに生成されたシークレットあるいはパスワードです。これは、アイデンティティプロバイダーでDatabricksを認証する際に使用されます。
    - **OpenIDイシュアーURL**は、お使いのアイデンティティプロバイダーのOpenID設定ドキュメントを発見できるURLです。このOpenID設定ドキュメントは`{issuer-url}/.well-known/openid-configuration`で発見できるべきです。

    例については、[アカウントコンソールSSOアプリケーションの例](#アカウントコンソールssoアプリケーションの例)をご覧ください。

1. Databricksアカウントコンソールの**Single sign-on**タブに戻り、**Client ID**、**Client secret**、**OpenID issuer URL**フィールドにアイデンティティプロバイダーアプリケーションでコピーした値を入力します。
![](https://docs.databricks.com/_images/sso-account-console-complete.png)
1. **Save**をクリックします。
1. SSO設定が適切に動作していることをテストするために**Test SSO**をクリックします。
1. お使いのアカウントでシングルサインオンを有効化するために、**Enable SSO**をクリックします。
1. SSOを用いてアカウントコンソールログインをテストします。

# SAMLを用いたアカウントシングルサインオン認証の有効化

以下の手順では、アカウントオーナー以外のアカウントコンソールユーザーを認証するために、どのようにSAML 2.0を使うのかを説明します。お使いのIdPでOIDCとSAML 2.0の両方をサポートしているのであれば、[アカウントコンソールの認証](#oidcを用いたアカウントシングルサインオン認証の有効化)にはOIDCを使うことをお勧めします。

:::note alert
**警告！**
シングルサインオンのテストの過程でDatabricksからロックアウトされないように、別のブラウザウィンドウでアカウントコンソールを開いたままにしておくことをお勧めします。
:::

1. アカウントコンソールのSSOページにアクセスし、SAML URLをコピーします:
    1. アカウントオーナーあるいはアカウント管理者として、[アカウントコンソール](https://docs.databricks.com/administration-guide/account-settings/index.html#account-console)にログインし、サイドバーの**Settings**をクリックします。
    1. **Single sign-on**タブをクリックします。
    1. このタブの上部にあるドロップダウンから、**SAML 2.0**を選択します。
    1. **Databricks SAML URL**フィールドの値をコピーしておきます。後のステップでこのDatabricks SAML URLが必要になります。
![](https://docs.databricks.com/_images/sso-acount-console-saml.png)
1. 別のブラウザウィンドウあるいはタブで、お使いのアイデンティティプロバイダーでDatabricksアプリケーションを作成します。
    1. アイデンティティプロバイダー(IdP)にアクセスします。
    1. 新たなクライアントアプリケーション(web)を作成します。
        - 必要であればお使いのアイデンティティプロバイダーのドキュメントを活用します。
        - (リダイレクトURLと呼ばれることもある)SAML URLフィールドには、DatabricksページでコピーしたDatabricksのSAML URLを使用します。
    1. 新たに作成したDatabricksアプリケーションから以下のオブジェクトとフィールドをコピーします:
        - **x.509証明書**: Databricksとアイデンティティプロバイダーの間のコミュニケーションを保護するためにアイデンティティプロバイダーから提供されるデジタル証明書。
        - **お使いのアイデンティティプロバイダーのシングルサインオン(SSO)URL**: これは、お使いのアイデンティティプロバイダーを用いたシングルサインオンを起動するURLです。また、これは時にはSAMLエンドポイントとも呼ばれます。
        - **アイデンティティプロバイダーのイシュアー**: これは、お使いのSAMLアイデンティティプロバイダーに対するユニークなIDです。これは時には、エンティティIDやイシュアーURLとも呼ばれます。

    例については、[アカウントコンソールSSOアプリケーションの例](#アカウントコンソールssoアプリケーションの例)をご覧ください。

1. お使いのアイデンティティプロバイダーを使用するようにDatabricksアカウントを設定します。
    1. DatabricksアカウントコンソールのSSOページを表示しているブラウザタブあるいはウィンドウに戻ります。
    1. アイデンティティプロバイダーアプリケーションから以下のフィールドの値を入力、貼り付けします: シングルサインオンURL、アイデンティティプロバイダーのID、x.509証明書。
    1. **Save**をクリックします。
    1. SSO設定が適切に動作していることをテストするために**Test SSO**をクリックします。
    1. お使いのアカウントでシングルサインオンを有効化するために、**Enable SSO**をクリックします。
    1. SSOを用いてアカウントコンソールログインをテストします。

# アカウントサインインのプロセス

統合ログインが有効化され、アカウントレベルのSSOが有効化されると、アカウントのサインインページとワークスペースのサインインページで、シングルサインオンのオプションが表示されるようになります。挙動は以下の通りとなります:

- 管理者を含むすべてのユーザーは、DatabricksアカウントやワークスペースにはSSOを用いて*サインインしなくてはなりません*。ユーザー名やパスワードを用いてサインインすることはできません。
- アカウント管理者は、アカウントレベルのREST API呼び出しにユーザー名とパスワードを使用することができます。
- すべてのユーザーはワークスペースレベルのREST API呼び出しでユーザー名とパスワードを使うことができます。

    :::note info
    **注意**
    アカウントが2023/6/21以降に作成されており、ワークスペースのAPIユーザーのユーザー名とパスワードによる認証を制限する必要がある場合には、Databricks担当者にお問い合わせください。
  :::

統合ログインが無効化され、アカウントレベルのSSOが有効化されると、アカウントのサインインページでシングルサインオンのオプションが表示されるようになります。デフォルトの挙動は以下の通りです:

- アカウントオーナーを除き、ユーザーを含む全ユーザーは、SSOを用いてDatabricksアカウントに*サインインしなくてはなりません*。アカウントオーナーはユーザー名とパスワードでサインインすることができます。
- アカウント管理者は、アカウントレベルのREST API呼び出しにユーザー名とパスワードを使用することができます。

統合ログインが無効化されると、ワークスペースレベルのSSOは個別に設定しなくてはなりません。デフォルトのワークスペースサインインプロセスについては、[ワークスペースサインインのプロセス](https://qiita.com/taka_yayoi/items/603d4db1c353fe9c8b73#%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%B3%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9)をご覧ください。

### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)