Amazon Redshift IAM ID センター OAuth の設定
重要: Tableau Cloud に現在導入されている Redshift ODBC ドライバーは OAuth をサポートしていません。修正が含まれる Amazon のドライバーは、4 月上旬にリリースされる予定です。このドライバーは数週間後に Tableau Cloud に導入される予定です。
それまでの間、Tableau Cloud で Redshift の IAM IDC OAuth を使用したい場合は、次の制限付きで、最新の 2.x バージョンのドライバーと Tableau Bridge を使用できます。
ドライバーの Linux ビルドでは、クエリ、スキーマ、テーブル名で ASCII 文字のみがサポートされます。
2.x ドライバーの Linux ビルドと Windows ビルドは両方とも、HTTP プロキシでクラッシュします。
Linux ビルドと Windows ビルドの両方には、地理空間データのクエリに問題があります。
オンプレミス (Tableau Desktop、Tableau Server、および Tableau Prep) では Tableau 2023.3.2 以降、Tableau Cloud では 2024 年 4 月以降、OAuth 2.0/OIDC を使用して、外部 ID プロバイダーから Amazon Redshift に ID をフェデレーションできます。
注: ドライバーの制限により、この機能は OSX では使用できません。
以下の手順は、新しい AWS IAM IDC サービス用です。オリジナルの IAM 統合については、「Amazon Redshift IAM OAuth の設定」を参照してください。
ID プロバイダーによって、統合を設定するために必要な手順は異なります。これはおおまかな概要です。Tableau は、AWS または IDP の構成方法について詳細な手順を提供できませんが、一般的なアプローチは次のとおりです。
IDP を構成する
IDP に Tableau Desktop と Tableau Server または Tableau Cloud の OAuth クライアントを作成します。デスクトップ クライアントでは、
PKCE
を有効にし、http://localhost
リダイレクトを使用する必要があります。ロールを承認するために必要なカスタム クレームを追加します。
Tableau OAuth 構成ファイルを作成します。GitHub(新しいウィンドウでリンクが開く) のドキュメントと例(新しいウィンドウでリンクが開く)を参照してください。他の IDP の例も歓迎します。
Tableau OAuth 構成 ID には必ず「
custom_
」というプレフィックスを付けてください。IDP が動的 localhost ポートをサポートしている場合、
OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL
を無効にします。そうでない場合は、構成ファイルおよび IDP の許可リストにいくつかの localhost コールバック URL を追加してください。
Tableau OAuth 構成ファイルをデスクトップ マシンと Tableau Server または Tableau Cloud サイトにインストールします。
ステップ 2: AWS で IDP とロールを構成する
構成する方法については、AWS のドキュメントを参照してください。
ステップ 3: Redshift に接続する
Redshift に接続します。
[認証]には [OAuth] を選択します。
[フェデレーション タイプ] には [ID センター] を選択します。
(オプション) 必要に応じて、[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 コマンド ライン ツールを使用できます。