Set up SSO for your workspace | Databricks on AWS [2023/6/20時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
ワークスペースシングルサインオン(SSO)によって、あなたの組織のアイデンティティプロバイダーを用いて、Databricksワークスペースに対してユーザーを認証することができます。
統合ログイン
2023/6/21以降にDatabricksアカウントが作成されたのであれば、あなたのアカウントで統合ログインが有効になっています。統合ログインによって、アカウントとすべてのDatabricksワークスペースで使用される一つのSSO設定を管理することができます。アカウントでSSOが有効化されると、新規・既存のすべてのワークスベースでアカウントレベルのSSO設定が用いられ、アカウント管理者、ワークスペース管理者を含むすべてのユーザーはSSOを用いてDatabricksにサインインしなくてはなりません。ワークスペースレベルで個別にSSOを管理することはできません。
2023/6/21以前にアカウントが作成されている場合、アカウントで統合ログインは有効化されていません。これは、アカウントのSSOとワークスペースごとのSSOは個別に管理しなくてはならないことを意味します。アカウントとワークスペースで同じアイデンティティプロバイダーを設定しなくてはなりません。
プレビュー
2023/6/21以前に作成されたアカウントの統合ログインはプライベートプレビューです。アクセスするにはDatabricks担当者にお問い合わせください。
アカウントレベルのSSO
アカウントコンソールでシングルサインオンを有効化するには、Set up SSO for your Databricks account consoleをご覧ください。
ワークスペースレベルのSSO
統合ログインが無効化された場合にのみ、ワークスペースレベルのSSOを設定することができます。2023/6/21以降にDatabricksアカウントが作成されたのであれば、あなたのアカウントで統合ログインが有効になっており、ワークスペースはアカウントの同じSSO設定を使用します。統合ログインをご覧ください。
ワークスペースSSOアプリケーションの例
- SSO with Microsoft Windows Active Directory for your workspace
- SSO with Microsoft Windows Active Directory for your workspace
- SSO with Azure Active Directory for your workspace
- SSO with Google Workspace (GSuite) for your workspace
- Configure SSO with Okta for your workspace
- Configure SSO with OneLogin for your workspace
- Configure SSO with Ping Identity for your workspace
様々なワークスペースSSOバージョンにおける要件
Databricksでは、SSOソフトウェアにバージョン2.0と1.0があります。
-
E2バージョンのDatabricksプラットフォームは常にSSOバージョン2.0を使用します。すべての新規Databricksアカウントとほとんどの既存アカウントはE2です。このため、ほとんどのワークスペースではSSOバージョン2.0を使用します。
SSOバージョン2.0では、アイデンティティプロバイダーによって暗号を用いてサインされたSAMLレスポンスが必要です。いくつかのアイデンティティプロバイダーでは、これには追加の設定が必要となります。
-
E2バージョンのDatabricksプラットフォームではないワークスペースのデフォルトはSamlAuthenticatorのバージョン1ですが、Databricks担当者はワークスペースでバージョン2を使用するようにアップグレードを行うことができます。ワークスペースでバージョン2を使うようになると、ワークスペースのSSO SAMLエンドポイントURLは変更され、お使いのIdPで設定を変更しなくてはなりません。ワークスペースがE2にアップグレードされると、SSOのSAMLエンドポイントURLは変更され、お使いのIdPで設定を変更しなくてはなりません。
SSOバージョン1.0では、SAMLレスポンスはオプションですが、使用することを強くお勧めします。
お使いのアカウントがE2プラットフォームかどうかがわからない場合には、Databricks担当にお問い合わせください。
ワークスペースレベルシングルサインオンの有効化
注意
統合ログインが無効化された場合にのみ、ワークスペースレベルのSSOを設定することができます。2023/6/21以降にDatabricksアカウントが作成されたのであれば、あなたのアカウントで統合ログインが有効になっており、ワークスペースはアカウントの同じSSO設定を使用します。統合ログインをご覧ください。
警告!
シングルサインオンのテストの過程でDatabricksからロックアウトされないように、別のブラウザウィンドウでアカウントコンソールを開いたままにしておくことをお勧めします。
-
ワークスペースの管理者設定に移動し、SSOタブを選択します。
-
お使いのアイデンティティプロバイダーに移動し、Databricks SAML URLフィールドの情報を用いてDatabricksアプリケーションを作成します。
セットアップ方法に関しては以下の手順をご覧ください。
- SSO with Microsoft Windows Active Directory for your workspace
- SSO with Microsoft Windows Active Directory for your workspace
- SSO with Azure Active Directory for your workspace
- SSO with Google Workspace (GSuite) for your workspace
- Configure SSO with Okta for your workspace
- Configure SSO with OneLogin for your workspace
- Configure SSO with Ping Identity for your workspace
SAML 2.0をサポートしている任意のアイデンティティプロバイダーにおいても、手順は同様なものとなります。
-
Provide the information from the identity providerフィールドに、アイデンティティプロバイダーのDatabricks SSOに関する情報を貼り付けます。
-
(オプション)自動ユーザー生成を有効化するために、Allow auto user creationを選択します。自動ユーザー生成によって、アイデンティティプロバイダーのユーザーがワークスペースにログインできるようになります。Databricksにユーザーのアカウントが存在していない場合、ログインの際に新規アカウントがプロビジョンされます。これは、just-in-time (JIT)プロビジョニングとしても知られるものです。自動ユーザー生成では、ユーザーをグループには紐づけません。
-
Access S3 with IAM credential passthrough with SAML 2.0 federation (legacy)を設定している場合には、Allow IAM role entitlement auto syncを選択します。
-
Enable SSOをクリックします。
(オプション)パスワードアクセスコントロールの設定
注意
統合ログインが無効化されている場合にのみ、パスワードアクセスコントロールを設定することができます。アカウントが2023/6/21以降に作成されており、パスワードアクセスコントロールが必要な場合には、Databricks担当者にお問い合わせください。
注意
アクセスコントロールはプレミアムプラン以上でのみ利用できます。このプランでない場合、皆様のユーザーエクスペリエンスはSSOのデフォルトのサインインの挙動となります。
統合ログインが無効化されると、すべてのワークスペース管理者はSSOかユーザー名・パスワードを用いてDatabricksにサインインすることができ、すべてのAPIユーザーは、自身のユーザー名・パスワードを用いてDatabricks REST APIの認証を受けることができます。ワークスペース管理者として、パスワードアクセスコントロールを用いて権限を設定することで、ワークスペース管理者ユーザーとAPIユーザーがユーザー名・パスワードで認証を受ける能力を制限することができます。
パスワードの権限レベルには、No permissionsとCan Useの二つがあります。Can Useは、非管理者ユーザーやワークスペース管理者に権限を付与します。以下の表では権限ごとの能力を一覧しています。
No permissions | Non-admin with Can Use | Workspace admin with Can Use | |
---|---|---|---|
パスワードを用いてAPIの認証を受ける | x | x | |
パスワードを用いてDatabricks UIの認証を受ける | x |
権限を持たない非管理者ユーザーが、パスワードを用いてREST APIを呼び出そうとした場合、認証は失敗します。ワークスペース管理者はワークスペースでパーソナルアクセストークンが有効化されていることを確認し、APIへの認証にはそれを使用することをユーザーに指示してください。
Can Use権限を持つワークスペース管理者ユーザーは、サインインページでAdmin Log Inを参照することができます。ユーザー名・パスワードでDatabricksにログインするために、このタブを使用することができます。
権限を持たないワークスペース管理者はこのページを参照することができず、SSOを用いてログインしなくてはなりません。
パスワード権限の設定
このセクションでは、UIを用いた権限の管理方法を説明します。Permissions APIを使うこともできます。
- ワークスペースの管理者設定に移動します。
- Workspace Settingsタブをクリックします。
- Password Usageの隣のPermission Settingsをクリックします。
- 権限設定ダイアログで、ユーザーやグループの隣のドロップダウンメニューを用いて、ユーザーやグループにパスワード権限を割り当てます。また、Adminsグループの権限を設定することもできます。
- Saveをクリックします。
ワークスペースサインインのプロセス
統合ログインが有効化され、アカウントレベルのSSOが有効化されると、アカウントやワークスペースのサインインページでシングルサインオンのオプションを参照することになります。この挙動は以下の通りとなります:
-
管理者を含むすべてのユーザーは、SSOを用いてDatabricksにサインインしなくてはなりません。ユーザー名やパスワードを用いてサインインすることはできません。
-
すべてのAPIユーザーはREST APIを呼び出すためにユーザー名とパスワードを使うことができます。代わりにパーソナルアクセストークンを使うことをお勧めします。
注意
アカウントが2023/6/21以降に作成されており、ワークスペースのAPIユーザーのユーザー名とパスワードによる認証が必要な場合には、Databricks担当者にお問い合わせください。
統合ログインが無効化され、SSOが有効化されるとワークスペースサインインページでシングルサインオンのオプションを参照することになります。デフォルトの挙動は以下の通りとなります:
- 非管理者ユーザーはSSOを用いてDatabricksにサインインしなくてはなりません。ユーザー名やパスワードを用いてサインインすることはできません。
- Can useのパスワードアクセスコントロール権限が付与されているワークスペース管理者ユーザーは、SSOかユーザー名・パスワードでサインインすることができます。
- Can useのパスワードアクセスコントロール権限が付与されているAPIユーザーは、REST APIの呼び出しでユーザー名・パスワードを使用することができます。代わりにパーソナルアクセストークンを使うことをお勧めします。
お使いのDatabricksアカウントがプレミアムプラン以上であれば、パスワードアクセスコントロールを用いて権限を設定することで、ワークスペース管理者やAPIユーザーのユーザー名・パスワードによる認証を制限することができます。
既存ユーザーをSSOに移行する
注意
自動ユーザー設定が有効化され、Databricksユーザーの現在のメールアドレス(ユーザー名)がアイデンティティプロバイダーと同じである場合、移行は自動で行われるのでこのステップをスキップすることができます。
アイデンティティプロバイダーのユーザーのメールアドレスが、Databricksのものと異なる場合、ログインした際に、アイデンティティプロバイダーのメールをベースとした新規ユーザーがDatabricksに表示されます。非管理者ユーザーは、古いメールアドレスとパスワードでログんできなくなっているので、既存のUsersフォルダーにあるファイルにアクセスすることができません。
古いUsersフォルダーから新たなUsersフォルダーにファイルを移行するには、以下のステップを踏むことをお勧めします:
- ワークスペース管理者が古いユーザーを削除します。これによって、当該ユーザーのフォルダーディレクトリは機能停止とマークされ、このディレクトリはワークスペースフォルダーのすべてのアクティブなユーザーの後に表示されます。依然として、ワークスペース管理者によってすべてのノートブックとライブラリはアクセスできます。このユーザーによって作成されたすべてのクラスターやジョブはそのままとなります。このユーザーが別のACLセットを持っていた場合、SSOの有効化によってこれらはリセットされ、ワークスペース管理者は新規ユーザーに手動でこれらのACLを設定しなくてはなりません。
- ワークスペース管理者は、古いユーザーのフォルダーを以下の図のように、新たなフォルダーに移動します。
トラブルシュート
ChromeやFirefoxのSAML Tracer拡張をインストールすることをお勧めします。Tracerによって、DatabricksからIdPに送信されるSAMLリクエストや、IdPからDatabricksに送信されるSAMLレスポンスを確認できるようになります。
以下のトラブルシュートを用いても問題が解決できない場合には、Databricks担当者にお問い合わせください。
SSOバージョンとURLの確認
- Databricksワークスペースで、管理者設定ページのSSOタブに移動します。
- Single Sign-Onの隣のカッコに表示されているSSOのバージョンを確認します。
- Databricks SAML URLを確認します。このURLをIdPで設定しなくてはいけません。ワークスペースをE2バージョンにアップグレードしたり、SSOバージョン2にアップグレードした際には、このURLは変更されます。
SAMレスポンスがサインされていることを確認
ブラウザにインストールしたSAML Tracerで以下のステップを実行します。
- incognitoウィンドウでTools > SAML Tracerに移動して、SAML Tracerを開きます。
- Databricksワークスペースに移動して、SSOを用いたログインを試みます。
- SAML TracerでResponseタブに移動します。
- レスポンスがサインされている場合、
<saml2p:Response>
要素の下には<ds:signature>
要素があります。レスポンスがサインされていない場合、IdPでSAMLレスポンスにサインするように設定してください。ワークスペースレベルシングルサインオンの有効化にあるお使いのIdPのリンク先の手順に従ってください。 - アサーションがサインされている場合、
<saml:Assertion>
の下には<saml2p:Response>
があり、さらにその下に<ds:Signature>
要素があります。
- レスポンスがサインされている場合、
ユーザーメールアドレスのケースセンシティビティを確認
Databricksにおいて、ユーザーのメールアドレスは大文字小文字を区別します。Databricksでのメールアドレスがjohn.doe@example.com
でIdPではJohn.Doe@example.com
であるユーザーを想定します。以下のいずれかの理由でDatabricksへのログインが失敗します:
- Databricksで自動ユーザー生成が有効化されている場合、新規ユーザーが作成され、そのユーザーは既存の資格情報ではなく、それらの資格情報を用いてログインします。
- 自動ユーザー生成が無効化されている場合、以下のようなエラーで失敗します。
We encountered an error logging you in. Databricks support has been alerted and will begin looking into this issue right away.
この問題を修正するために、Databricksで既存のユーザーを削除することができます。自動ユーザー生成が有効化されたら、ユーザーにSSOを用いて再度ログインするよう依頼してください。あるいは、メールアドレスがIdPのレコードと性格に一致することを確認して、ユーザーを再作成します。Databricksにユーザーが作成されたら、以前のユーザーによって所有されていた資産を新たなユーザーに再割り当てしなくてはなりません。