OAuth 認証の有効化¶
このページでは、Virtual DataPort で OAuth 認証を有効にする方法を説明します。
以下の手順に従って実施してください。
Administration Tool を開き、管理者アカウントとしてログインします。
[Administration] メニュー > [Server configuration] をクリックします。次に、[Server authentication]、[OAuth] の順にクリックします。
Virtual DataPort が OAuth トークンを処理して、そのスコープを取得するために使用するメカニズムを次から選びます。
JSON Web Token (JWT)
トークンイントロスペクション
組織の ID プロバイダーが「JSON Web Token」(JWT) を生成するかどうかを確認してください。ほとんどの ID プロバイダーでは、これが生成されます。JWT がサポートされている場合は、それを使用します。「トークンイントロスペクション」よりも設定が簡単です。
JWT¶
「JSON Web Token (JWT)」メカニズムを使用するために [Use JWT] を選択し、アプリケーションによって送信されたアクセストークンを読み取れるようにします。

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 構成ウィザード¶
このデータソースを作成したら、OAuth 2.0 認証を有効にします。

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 は、作成したデータソースを使用して、リクエストを イントロスペクションエンドポイント に送信するようになります。レスポンスには、このトークンが有効であるかどうかが示されます。