Onelogin と Tableau Cloud を連携し SAML による SSO と SCIM によるユーザーのプロビジョニングを行う #tableau
はじめに
Tableau Cloud と Onelogin を連携し認証をシングルサインオン(SSO)にし、SCIM でユーザーのプロビジョニングまで行う手順をまとめてみました。Onelogin は無料トライアルを使用しています。
以下の順に作業を行います。
- Tableau Cloud と Onelogin の SAML 構成
- Tableau Cloud と Onelogin の SCIM 構成
OneLogin を使用した SAML の構成
ドキュメントに記載があるので、こちらを参考に進めます。
ステップ 1: Tableau Cloud SAML 設定を開く
サイト管理者として Tableau Cloud サイトにサインインし「設定 > 認証」を選択し [認証] タブで [追加の認証方法を有効にする] にチェックを入れ、[SAML] を選択します。
そのすぐ下にある [構成 (必須)] ドロップダウンの矢印をクリックすると構成に必要な項目や情報が表示されます。
ステップ 2: Tableau Cloud を OneLogin アプリケーションに追加する
OneLogin 管理者ポータルにサインインし、[Applications] ページで、[Add App] を選択します。Tableau と検索し、結果から [Tableau Online SSO] を選択します。
Tableau Cloud サイトが複数ある場合は、ユーザーがサイトを選択しやすくなるように、[Display Name] にサイト名を含めることが推奨されています。
アプリの [Configuration] ページを開きます。
以下の通り Tableau Cloud 側で確認できる情報を入力し、画面右上の [Save] をクリックします。
- Consumer URL
- Tableau Cloud ACS URL を入力します
- Audience
- Tableau Cloud エンティティ ID を入力します
それぞれ Tableau Cloud 上では下図の通り確認できます。
次に、 OneLogin 側のアプリケーションの [SSO] ページで「SAML Signature Algorithm」として「SHA-256」を選択し、設定を保存します。
OneLogin 側のアプリケーションの [Parameters] ページで、少なくとも赤枠部分が下図のように表示されることを確認します。
ステップ 3: Tableau Cloud の OneLogin メタデータを構成する
OneLogin 側のアプリケーションの [SSO] ページで「SLO Endpoint (HTTP)」に表示されている URI を選択してコピーします。
また、同じページで「More Actions > SAML Metadata」を選択し SAML メタデータファイルダウンロードします。
ステップ 4: SAML 構成を完了する
Tableau Cloud 側の「Tableau にメタデータをアップロードする」で、OneLogin 側でダウンロードしたメタデータ ァイルをインポートします。
もしメタデータファイルのアップデートや構成完了時に、メタデータファイルによるエラーが発生する場合は、以下を参考に証明書のフォーマットを確認するか、対象のフォーマットで再度証明書を作成しアプリケーションでも使用するようにします。
Tableau Cloud 側の「属性の照合」で以下のように設定します。
- ユーザー名: Email
- [名と姓] ラジオ ボタンを選択
- 名: FirstName
- 姓: Lastname
構成のテストを行います。[構成のテスト] をクリックすると、ユーザーの認証タイプを SAML に変更する前に、SAML が正しく設定されているか確認することが可能です。
ユーザーを追加
Tableau Cloud 側でユーザーを追加してみます。
対応するユーザーをOnelogin 側にも追加し、ユーザー名(メールアドレス)で Tableau Cloud にサインインします。
すると Onelogin の画面が表示されるので、Onelogin 側の認証情報を入力することで、指定のユーザーで Tableau Cloud にサインインできます。
各ユーザーは、Onelogin 側からもアプリケーションを選択することでログイン可能です。
OneLogin を使用した SCIM の構成
続いて SCIM の構成を行います。こちらは以下に手順の記載があります。
ステップ 1: 前提条件を実行する
SAML シングル サインオン (SSO) をサポートするようにサイトを構成します。ここでは上記で設定済みです。
ステップ 2: SCIM サポートを有効にする
Tableau Cloud サイトにサイト管理者としてサインインし、「設定 > 認証」を開き、認証ページ内の「自動プロビジョニングとグループ同期 (SCIM)」欄にある [SCIM の有効化] にチェックを入れます。
シークレットが生成されるので、この値を安全な場所に控えておきます。
注意点として、トークンは生成直後にのみ表示されるため、紛失した際は再度新しいシークレットを作成します。
また、シークレット トークンは、SCIM を有効にするサイト管理者の Tableau Cloud ユーザー アカウントに関連付けられているため、そのユーザーのサイト ロールが変更されるか、そのユーザーがサイトから削除されると、シークレット トークンは無効になります。
この場合、別のサイト管理者が新しいシークレット トークンを生成して IdP 側に適用する必要があります。
OneLogin 側でアプリケーションの [Configuration] ページを開き、以下の作業を行い設定を保存します。
- API Status で [Ebnable] をクリック
- SCIM Bearer Token にTableau Cloud SCIM シークレットを指定
- SCIM Base URL に Tableau Cloud の SCIM 設定で表示された ベース URL を指定
[Provisioning] ページで、以下の手順を行い設定を保存します。
- [Enable provisioning] にチェック
- 「When users are deleted in OneLogin, or the user's app access is removed, perform the below action(OneLogin でユーザーが削除された場合、またはユーザーのアプリ アクセスが削除された場合、以下のアクションを実行する)」で [Suspend(一時停止)] を選択
[Parameters] ページで [SCIM Username] を [Email] 属性にマッピングし設定を保存します。
ステップ 3: ユーザーとグループをプロビジョニングする
はじめに Onelogin からユーザーをプロビジョニングします。
Onelogin 側で [Users] タブを開きプロビジョニングするユーザーを選択し、ユーザーの設定ページを開きます。
左側のメニューから [Application] ページを開き右上のプラス (+) アイコンをクリックします。
プロビジョニング先として Tableau Cloud アプリケーションを選択し [Continue] をクリックします。
ユーザーの情報が表示されます。Tableau Cloud 上には「SCIM Username」のユーザー名でプロビジョニングされます。
Tableau Cloud の場合は、サイト ロールを [Site Role] フィールドに入力することで、プロビジョニング時にサイトロールを指定できます。何も指定しない場合は「Viewer」が割り当てられます。ここでは明示的に「Viewer」を指定し [Save] をクリックします。
「Users > Provisiong」から対象のユーザーを選択し、「Approve」を選択します。
Tableau Cloud 側で確認するとユーザーが追加されるていることを確認できます。プロビジョニング時は表示名がメールアドレスとなっていました。
Onelogin からプロビジョニングしたユーザー名(メールアドレス)でサインインしてみます。
Oneloginの画面になるので、Onelogin側の認証情報を入力します。
下図の通りログインでき、属性がマッピングされています。
ユーザーがはじめてログインした時点で、表示名が「[Fist Name] [Last Name ]」に変更されました。
OneLogin のロールを持つ複数のユーザーをプロビジョニングする
Onelogin 側で「Users > Roles」から「New Role」をクリックし下図の通り「Tableau」という名称のロールを作成し、アプリケーション(Tableau Cloud )を追加します。
※Onelogin における「ロール」とは、割り当てたユーザーがアクセスできるアプリケーションのコンテナを指すことに注意します。(ユーザーにロールを割り当てると、そのロールに含まれるすべてのアプリケーションへのアクセスがユーザーに許可されます。)
さらに、ここでは下図の通り手動でテスト用のユーザーをロールに追加します。
- Test3 Yasuhara
- Test4 Yasuhara
また Onelogin 側で「Users > Custom User Fields」よりカスタムユーザーフィールドとして「SiteRole」を追加しておきました。
それぞれのユーザーには、以下の通りこの属性値を与えておきます。
- Test3 Yasuhara
- Creator
- Test4 Yasuhara
- ExplorerCanPublish
なお、指定可能なサイトロール値はドキュメントに記載があり「Creator、Explorer、ExplorerCanPublish、ReadOnly、ServerAdministrator、SiteAdministratorExplorer、SiteAdministratorCreator、Unlicensed、または Viewer」を指定できます。
さらに、アプリケーションの [Rules] から下図のルールを設定しました。
これにより、ユーザーのプロビジョニング時に指定のサイトロールが割り当てられるようにします。具体的には Onelogin 上の「Tableau」ロールのユーザーには、カスタムユーザーフィールドの「SiteRole」属性の値で、Tableau Cloud 上のサイトロールを割り当てるという内容です。
この状態で、「Users > Provisioning」からユーザーをプロビジョニングします。
すると下図の通り複数ユーザーを指定のロールでプロビジョニングできました。
既存の Tableau Cloud グループにユーザーを追加する
Tableau Cloud グループを OneLogin にインポートし、ユーザー プロビジョニング時にグループを指定することも可能です。
はじめに、下図の通り Tableau Cloud 側でグループを作成しておきます。
Onelogin 側アプリケーションの [Parameters] ページで [Group] を選択します。
ポップアップが表示されるので [Include in User Provisioning] にチェックを入れ [Save] をクリックします。
アプリケーションの [Provisioning] ページに移動し「Entitlements」欄の [Refresh] をクリックします。これにより、Tableau Cloud 上のグループ情報が同期されます。
再度、Onelogin 側アプリケーションの [Parameters] ページで [Group] を選択します。
ユーザーのプロビジョニング時に指定可能なグループ値をここで追加できるので、同期されたグループを選択し [Add] で追加し [Save] をクリックします。
この状態で Users から任意のユーザーを選択し Applications タブからこの Tableau アプリを選択します。
するとユーザーについて追加した Group 属性を選択できるようになっています。
ここでは下図の通り「HR」グループを追加し Provisioning から変更を許可してみます。
するとこのユーザーについて、Tableau Cloud 側でもグループ情報の変更が反映されました。
グループは複数選択できるので、Onelogin からユーザーを複数のグループに割り当てることも可能です。
Tableau Cloud のグループを OneLogin から作成する
Onelogin 側から Tableau Cloud 上の「グループ」を作成することも可能です。ここでは Onelogin 上のロールに基づくグループを作成します。
ここでは例として Onelogin で Engineer ロールを作成します。
ユーザーを追加します。
アプリケーションの [Rules] から下図の通りルールを作成しました。ポイントとしては「Actuions」として「Set Groups in ~~」アクションによりグループを Onelogin 側の何らかの属性で作成できます。
その後、ユーザーをアプリに追加する際に、下図の通り Onelogin 側のロール(Engineer)を設定できるようになっていたので、こちらを指定し Provisioning します。
すると、ユーザーのプロビジョニングとあわせてグループも Tableau Cloud 側が作成されました。
さいごに
Tableau Cloud と Onelogin のSAML 連携、SCIM 統合の手順をまとめてみました。
こちらの内容が何かの参考になれば幸いです。