Amazon Redshift IAM ID センター OAuth の設定

オンプレミス (Tableau Desktop、Tableau Server、および Tableau Prep) では Tableau 2023.3.2 以降、Tableau Cloud では 2024 年 3 月下旬以降、OAuth 2.0/OIDC を使用して、外部 ID プロバイダーから Amazon Redshift に ID をフェデレーションできます。この機能が利用可能になるまで、Tableau Bridge は Tableau Cloud での回避策として使用できます。Bridge の詳細については、「Bridge を使用してデータを最新に保つ」を参照してください。

注: ドライバーの制限により、この機能は OSX では使用できません。

以下の手順は、新しい AWS IAM IDC サービス用です。オリジナルの IAM 統合については、「Amazon Redshift IAM OAuth の設定」を参照してください。

ID プロバイダーによって、統合を設定するために必要な手順は異なります。これはおおまかな概要です。Tableau は、AWS または IDP の構成方法について詳細な手順を提供できませんが、一般的なアプローチは次のとおりです。

IDP を構成する

  1. IDP に Tableau Desktop と Tableau Server または Tableau Cloud の OAuth クライアントを作成します。デスクトップ クライアントでは、PKCE を有効にし、http://localhost リダイレクトを使用する必要があります。

  2. ロールを承認するために必要なカスタム クレームを追加します。

  3. Tableau OAuth 構成ファイルを作成します。GitHub(新しいウィンドウでリンクが開く) のドキュメントと(新しいウィンドウでリンクが開く)を参照してください。他の IDP の例も歓迎します。

    1. Tableau OAuth 構成 ID には必ず「custom_」というプレフィックスを付けてください。

    2. IDP が動的 localhost ポートをサポートしている場合、OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL を無効にします。そうでない場合は、構成ファイルおよび IDP の許可リストにいくつかの localhost コールバック URL を追加してください。

  4. Tableau OAuth 構成ファイルをデスクトップ マシンと Tableau Server または Tableau Cloud サイトにインストールします。

ステップ 2: AWS で IDP とロールを構成する

構成する方法については、AWS のドキュメントを参照してください。

ステップ 3: Redshift に接続する

  1. Redshift に接続します。

  2. [認証]には [OAuth] を選択します。

  3. [フェデレーション タイプ] には [ID センター] を選択します。

  4. (オプション) 必要に応じて、[ID センターの名前空間] を指定します。

正しく構成されていると、ユーザーは IDP にリダイレクトされ、Tableau のトークンが認証および認可されます。Tableau はアクセス トークンと更新トークンを受け取ります。認証のためにアクセス トークンをドライバーに送信します。

Okta

Okta を使用する場合は、「組織認可サーバー」ではなく、「カスタム認可サーバー」を使用することをお勧めします。カスタム認可サーバーはより柔軟です。カスタム認可サーバーは既定で作成され、「既定」と呼ばれます。認可 URL は次のようになります。

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

ドライバーを更新する

IAM IDC サービスを使用する Redshift OAuth の場合、バージョン 2.0.1.0 以降の Redshift ODBC ドライバーを使用する必要があります。このドライバーは、https://github.com/aws/amazon-redshift-odbc-driver/tags(新しいウィンドウでリンクが開く) からダウンロードできます。OSX 用の v2 ドライバーはないことに注意してください。

Redshift IAM IDC OAuth のトラブルシューティング

最初の接続時にドライバーから無効/期限切れのトークンに関するエラー メッセージが表示された場合 (エラー メッセージには [28000] や [08001] などの SQLState エラー コードが含まれます)、Tableau は OAuth フローを正常に完了していますが、ドライバーに関して失敗しています。これは、AWS 側または IDP 側のいずれかに設定ミスがあることを意味します。ドライバーからパーミッションまたは認可のエラーが返される場合もありますが、これも Tableau の制御の対象外です。

これらのエラーを診断する最良の方法は、問題の状況から 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 ドライバー マネージャーの使用例です。Mac では、iODBC ドライバー マネージャー UI を使用できます。Linux では、Tableau Server の customer-bin フォルダーに含まれている isql コマンド ライン ツールを使用できます。

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!