USER MANUALS

OAuth 認証の有効化

このページでは、Virtual DataPort で OAuth 認証を有効にする方法を説明します。

以下の手順に従って実施してください。

  1. Administration Tool を開き、管理者アカウントとしてログインします。

  2. [Administration] メニュー > [Server configuration] をクリックします。次に、[Server authentication]、[OAuth] の順にクリックします。

  3. Virtual DataPort が OAuth トークンを処理して、そのスコープを取得するために使用するメカニズムを次から選びます。

    1. JSON Web Token (JWT)

    2. トークンイントロスペクション

    組織の ID プロバイダーが「JSON Web Token」(JWT) を生成するかどうかを確認してください。ほとんどの ID プロバイダーでは、これが生成されます。JWT がサポートされている場合は、それを使用します。「トークンイントロスペクション」よりも設定が簡単です。

JWT

「JSON Web Token (JWT)」メカニズムを使用するために [Use JWT] を選択し、アプリケーションによって送信されたアクセストークンを読み取れるようにします。

OAuth JWK configuration wizard

OAuth JWK 構成ウィザード

ウィザードで以下の詳細を指定します。

  • Select the signing algorithm: トークンに署名するために発行者によって使用されるアルゴリズム。公開キーは、以下の URL にある JSON Web Key Set (JWKS) を使用して復元されます。

  • Issuer: JWT トークンを発行するエンティティの一意の ID。

  • Audience (オプション): 対象となる Denodo サーバーの ID。クライアントアプリケーションが送信する OAuth アクセストークンに含まれている必要があります。

    アクセストークンにフィールド aud (つまり「audience」) が含まれていない場合、このフィールドは空のままにしておきます。そうしなければ認証は失敗します。

    OAuth アクセストークンの aud フィールドの値が有効と見なされる audience 値を複数構成できます。

  • JWKS URL: 認証トークンの署名に使用できる公開キーの JSON Web Key Set への URL。これは、OAuth 認証サーバーによって提供されます。

  • Subject field name (デフォルト値は 'sub') (オプション): トークンの「subject」を含む、トークン内のパラメータの名前。つまり、アクセストークンを提示するユーザーのユーザー名です。ほぼすべての ID プロバイダーでは、このフィールドのデフォルト値が適切です。

  • Scope field name (デフォルト値は 'scope') (オプション): トークンのスコープを含むパラメータの名前。デフォルトではこのフィールドの値は「scope」ですが、認証サーバーによって変わる可能性があります。

    このフィールドでは、複数のパラメータを入力できます。たとえば、「scope」と「scp」を入力した場合、Virtual DataPort が OAuth トークンを処理するときに両方のパラメータの値を読み取ろうとします。「scp」がトークンに存在しない場合は、パラメータ「scope」のロールでリクエストが実行されます。「scope」が存在しない場合は、「scp」のロールでリクエストが実行されます。どちらも存在する場合は、両方のパラメータのロールに付与された権限でリクエストが実行されます。

  • レプリケーション攻撃を防ぐために検証することのできる JWT ID がアクセストークンに含まれている場合は、[Check the JWT Id field] を選択します。

これらの変更を適用するために再起動する必要はありません。

イントロスペクション

「トークンイントロスペクション」メカニズムを使用するには、まず JSON データソースを作成する必要があります。このメカニズムを使用すると、クライアントアプリケーションが OAuth で Virtual DataPort に接続するとき、Virtual DataPort はこのデータソースを使用して ID プロバイダーにリクエストを送信して、クライアントが送信した OAuth アクセストークンが有効であることを確認します。

このメカニズムを有効にするには、まずリクエストを イントロスペクションエンドポイント に送信するデータソースを作成する必要があります。このメカニズムを定義する基準に従うと、 イントロスペクションエンドポイント に送信されるリクエストは、以下の要件を満たす必要があります。

  • HTTP POST リクエストを使用します。

  • パラメータは エンコードされた URL でなければなりません。URL は、http://acme-auth-server.denodo.com:8081/c2id/token/introspect?token=@access_token のようになります。

  • アクセストークンの値を含むパラメータは token です。

  • token_type_hint パラメータは、送信されたトークンがアクセストークンであることを示すために使用できます (この場合の標準値は 'access_token' です)。

組織の ID プロバイダーのドキュメントで、要件が異なっていないかどうかを確認します。

JSON configuration wizard

JSON 構成ウィザード

このデータソースを作成したら、OAuth 2.0 認証を有効にします。

OAuth introspection configuration wizard

OAuth イントロスペクション構成ウィザード

  • Database: JSON データソースのデータベースを選択します。

  • JSON data source: 作成したデータソースを選択します。

  • Access token interpolated variable: トークンで補完された変数の値を含むフィールド。

    たとえば、次の URL で JSON データソースを作成したとします: http://acme-auth-server.denodo.com:8081/c2id/token/introspect?token=@access_token

    この場合、このフィールドの値は「access_token」でなければなりません。実行時に Denodo サーバーはリクエストからアクセストークンを読み取り、それを補間変数「access_token」に割り当てます。

  • Subject field name (デフォルト値は 'sub') (オプション): トークンの「件名」を含む、トークン内のパラメータの名前。デフォルトではこのフィールドの値は「sub」ですが、認証サーバーによって異なる場合があります。

  • Scope field name (デフォルト値は 'scope') (オプション): トークンの「スコープ」を含む、トークンのパラメータの名前。デフォルトでは、このフィールドの値は「scope」ですが、認可サーバーによって異なります。

これらの変更を適用するために再起動する必要はありません。

このあと、アプリケーションが Virtual DataPort に OAuth 認証で接続すると、Virtual DataPort は、作成したデータソースを使用して、リクエストを イントロスペクションエンドポイント に送信するようになります。レスポンスには、このトークンが有効であるかどうかが示されます。

Add feedback