Amazon Redshift IAM ID センター OAuth の設定
Tableau 2023.3 以降より、OAuth 2.0/OIDC を使用して、外部の ID プロバイダーから Amazon Redshift に ID をフェデレートすることができます。
以下の手順は、新しい AWS IAM IDC サービス用です。オリジナルの IAM 統合については、「Amazon Redshift IAM OAuth の設定」を参照してください。
ID プロバイダーによって、統合を設定するために必要な手順は異なります。これはおおまかな概要です。Tableau は、AWS または IDP の構成方法について詳細な手順を提供できませんが、一般的なアプローチは次のとおりです。
Redshift で認証を実装する詳細な例については、「AWS IAM アイデンティティ センターを使用して Tableau と Okta を Amazon Redshift に統合する(新しいウィンドウでリンクが開く)」(英語) および「AWS IAM アイデンティティ センターを使用して、Tableau と Microsoft Entra ID を Amazon Redshift に統合する(新しいウィンドウでリンクが開く)」(英語) を参照してください。
注: 現時点では、Tableau への OAuth 接続では、1 回のみ使用可能な更新トークン (ローリング更新トークンまたは更新トークンのローテーションと呼ばれることもあります) はサポートされていません。これらのトークンは今後のリリースでサポートされる予定です。
ステップ 1: IDP を構成する
IDP に Tableau Desktop と Tableau Server または Tableau Cloud の OAuth クライアントを作成します。Desktop クライアントでは、
PKCE
を有効にし、http://localhost
リダイレクトを使用する必要があります。ロールを承認するために必要なカスタム クレームを追加します。
Tableau OAuth 構成ファイルを作成します。GitHub(新しいウィンドウでリンクが開く) のドキュメントと例(新しいウィンドウでリンクが開く)を参照してください。他の IDP の例も歓迎します。
Tableau OAuth 構成 ID には必ず「
custom_
」というプレフィックスを付けてください。IDP が動的 localhost ポートをサポートしている場合、
OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL
を無効にします。そうでない場合は、構成ファイルおよび IDP の許可リストにいくつかの localhost コールバック URL を追加してください。
デスクトップ ホスト (Tableau Desktop、Tableau Prep Builder、Tableau Bridge) 上および OAuth を使用する各 Tableau Server と Tableau Cloud サイト上の各アプリケーションに関連付けられた
OAuthConfigs
フォルダーに新しい Tableau OAuth 構成ファイルをインストールします。
ステップ 2: AWS で IDP とロールを構成する
構成する方法については、AWS のドキュメントを参照してください。
ステップ 3: Redshift に接続する
Redshift に接続します。
[認証]には [OAuth] を選択します。
[フェデレーション タイプ] には [ID センター] を選択します。
(オプション) 必要に応じて、[ID センターの名前空間] を指定します。
正しく構成されていると、ユーザーは IDP にリダイレクトされ、Tableau のトークンが認証および認可されます。Tableau はアクセス トークンと更新トークンを受け取ります。認証のためにアクセス トークンをドライバーに送信します。
トークン
既定では、Redshift OAuth to IAM IDC はアクセス トークンをドライバーに渡します。Tableau Bridge を使用しているお客様を含むオンプレミスのお客様の場合は、代わりに TDC ファイルを使用して ID トークンを渡すこともできます。
<connection-customization class='redshift' enabled='true' version='10.0'> <vendor name='redshift' /> <driver name='redshift' /> <customizations> <customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/> </customizations> </connection-customization>
.tdc ファイルの設定とインストールの詳細については、「接続をカスタマイズして調整する」(新しいウィンドウでリンクが開く)および「Tableau Server で .tdc ファイルを使用する」(新しいウィンドウでリンクが開く)を参照してください。
Okta
Okta を使用する場合は、「組織認可サーバー」ではなく、「カスタム認可サーバー」を使用することをお勧めします。カスタム認可サーバーはより柔軟です。カスタム認可サーバーは既定で作成され、「既定」と呼ばれます。認可 URL は次のようになります。
https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize
ドライバーを更新する
IAM IDC サービスを使用する Redshift OAuth の場合、ODBC ドライバーのバージョン 2.x 以上を使用する必要があります。Redshift ODBC ドライバーの最新バージョンは、https://github.com/aws/amazon-redshift-odbc-driver/tags(新しいウィンドウでリンクが開く) でダウンロードできます。OSX 用の v2 ドライバーはまだ提供されていないことに注意してください。
Redshift IAM IDC OAuth のトラブルシューティング
エラーを診断する最善の方法は、問題が発生している状況から Tableau を削除することです。代わりに、ドライバー マネージャーまたは同様のツールを使用してテストすることができます。これはあくまでトラブルシューティングを目的とした作業です。この機能の通常の使用時には DSN や「その他の ODBC」コネクタを使用しないでください。有効なテストを行えるようにするためには、クラスター情報、データベース、トークン、および名前空間を除くパラメーターが以下に示すものと同じである必要があります。
最初の接続時にドライバーから無効/期限切れのトークンに関するエラー メッセージが表示された場合 (エラー メッセージには [28000] や [08001] などの SQLState エラー コードが含まれます)、Tableau は OAuth フローを正常に完了していますが、ドライバーに関して失敗しています。これは、AWS 側または IDP 側のいずれかに設定ミスがあることを意味します。ドライバーからパーミッションまたは認可のエラーが返される場合もありますが、これも Tableau の制御の対象外です。
テストを開始する前に、まず、ドライバーに送信するアクセス トークン (IAM IDC の既定値) または更新トークン (カスタマイズされている場合) を取得する必要があります。
Okta を使用した例を次に示します。ほぼすべての IDP は、同様の方法で Okta を使用します。このフローを使用するには、リソース所有者のパスワード付与タイプを有効にする必要があることに注意してください。IDP URL、クライアント シークレット、クライアント ID、ユーザー名、パスワードを置き換えます。
curl -X POST "https://OKTA_URL/v1/token" \
-H 'accept: application/json' \
-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=USER&password=PASSWORD&scope=openid"
トークンを取得したら、DSN を使用してテストできます。Windows では、ODBC ドライバー マネージャーを使用できます。Linux では、Tableau Server の customer-bin フォルダーに含まれている isql コマンド ライン ツールを使用できます。
サーバー環境では動作しない可能性があるため、他のプラグインを使用してテストしないことをお勧めします。固定の AWS プロファイルを使用するか、ブラウザーに直接アクセスする必要があります。
以下は、Windows での ODBC ドライバー マネージャーの使用例です。