OpenID Connect

OpenID Connect を使用してシングル サインオン (SSO) を提供するよう Tableau Server を構成できます。OpenID Connect は、ユーザーが Google などのアイデンティティ プロバイダー (IdP) にサインインできるようにする標準認証プロトコルです。ユーザーは IdP に正常にサインインした後、自動的に Tableau Server へサインインされます。

OpenID Connect の設定には、いくつかの手順があります。このセクションのトピックでは、OpenID Connect での Tableau Server の使用に関する一般的な情報を提供し、IdP および Tableau Server を設定するためのシーケンスについて説明します。

注: 特に明記されていない限り、OIDC 認証に関する情報は、Tableau Server セットアップ中に TSM で構成された OIDC 認証、またはアイデンティティ プール(新しいウィンドウでリンクが開く)を使用して構成された OIDC 認証のどちらにも適用されます。

認証の概要

このセクションでは、Tableau Server での OpenID Connect 認証プロセスについて説明します。

ステップ 1: ユーザーがクライアント コンピューターから Tableau Server にログインを試みます。

ステップ 2: Tableau Server が認証の要求を IdP ゲートウェイにリダイレクトします。

ステップ 3: ユーザーに認証資格情報を求めるメッセージが表示され、IdP への認証が正常に完了します。IdP が Tableau Server へのリダイレクト URL に応答します。リダイレクト URL には、ユーザーの認可コードが含まれます。

ステップ 4: クライアントが Tableau Server にリダイレクトされ、認可コードが示されます。

ステップ 5: Tableau Server がクライアントの認可コードを独自のクライアント認証資格情報と一緒に IdP に示します。Tableau Server は IdP のクライアントでもあります。この手順は、スプーフィングまたは中間者攻撃を防ぐことを目的としています。

ステップ 6: IdP は Tableau Server へアクセス トークンと ID トークンを返します。

  • JSON Web Token (JWT) 検証: 既定では、Tableau Server では IdP JWT の検証が実行されます。検出時には、IdP 構成検出ドキュメントで jwks_uri によって指定されている公開キーが取得されます。ID トークンの有効期限が検証された後、JSON Web 署名 (JWS)、発行者 (IdP)、およびクライアント ID が検証されます。JWT プロセスの詳細については、OpenID のドキュメント「10. 署名と暗号化 (英語)」(新しいウィンドウでリンクが開く)および IETF から提案された標準である JSON Web Token(新しいウィンドウでリンクが開く) を参照してください。お使いの LDP でサポートされていない場合を除き、JWT 検証を有効のままにすることをお勧めします。

  • ID トークンは、ユーザー用の属性キー ペアのセットです。キー ペアはクレームと呼ばれます。ユーザー用の IdP クレームの例:

    "sub"                     : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5"
    "email"                   : "alice@tableau.com",
    "email_verified"          : true,
    "name"                    : "Alice Adams",
    "given_name"              : "Alice",
    "family_name"             : "Adams",
    "phone_number"            : "+359 (99) 100200305",
    "profile"                 : "https://tableau.com/users/alice"			

ステップ 7: Tableau Server は IdP クレームからユーザーを識別し、ステップ 1 からの認証要求を完了します。Tableau Server は、"sub" (サブジェクト識別子) を一致させることでリポジトリに保存されているユーザーのアカウント レコードを検索し、正しいユーザー アカウントを識別します。sub クレーム値と一緒に保存されているユーザー アカウントがない場合、Tableau Server は、IdP の "email" クレームと一致するリポジトリ内のユーザー名を検索します。ユーザー名の一致に成功すると、Tableau Server は対応する sub クレームを、リポジトリのユーザー レコードに保存します。このプロセスで別のクレームを使用するように Tableau Server を構成することができます。OpenID Connect の使用要件を参照してください。

ステップ 8: Tableau Server がユーザーを認証します。

OpenID Connect で Tableau Server が機能するしくみ

OpenID Connect はサービス プロバイダー (ここでは Tableau Server) と IdP の間で交換された情報の多くのオプションをサポートする柔軟なプロトコルです。次のリストは、OpenID Connect の Tableau Server 実装に関する詳細を提供します。これらの詳細は、Tableau Server が送信および期待する情報の種類や、IdP の構成方法を理解するのに役立ちます。

  • Tableau Server、「OpenID Connect の最終仕様」(新しいウィンドウでリンクが開く)で説明したように、OpenID Authorization Code Flow のみをサポートします。

  • Tableau Server は、検出またはプロバイダー URL の使用に依存して OpenID プロバイダー メタデータを取得します。または、Tableau Server で静的検出ドキュメントをホストできます。詳細については、OpenID Connect 用に Tableau Server を構成するを参照してください。

  • Tableau Server は、OpenID Connect 仕様で指定されている client_secret_basic および client_secret_post クライアント認証メソッドのみをサポートします。

  • Tableau Serverid_token 属性の JOSE ヘッダーに kid 値を期待します。この値は、JWK セット ドキュメントのいずれかのキーと一致します。JWK セット ドキュメントの URI は、OpenID 検出ドキュメントの jwks_uri 値によって指定されます。JWK セット ドキュメントにキーが 1 つしかない場合でも、kid 値を示す必要があります。

  • Tableau ServerJWK x5c パラメーターに対する、および X.509 証明書の使用に対する OpenID サポートを含みます。

  • 既定では、Tableau Server はプロキシ設定を無視し、すべての OpenID リクエストを直接 IdP に送信します。

    Tableau Server が転送プロキシを使用してインターネットに接続するように構成されている場合は、「OpenID Connect 用に Tableau Server を構成する」に記載されている説明に従って、追加の変更を行う必要があります。

ありがとうございます!