OAuth 認証を使用した Virtual DataPort への接続

Denodo JDBC ドライバーでは、ユーザーの認証と認可に OAuth 2.0 プロトコルをサポートしています。OAuth はオープン標準のプロトコルであり、これを使用することで、クライアントアプリケーションがユーザーアカウントのパスワードを送信することなく、Denodo にアクセスできるようになります。

OAuth を使用して Virtual DataPort に接続する前に、 Virtual DataPort で OAuth を有効にする 必要があります。有効にしなかった場合、OAuth を使用したコネクションは失敗します。

Denodo では、OAuth を使用する Denodo への接続に 2 つの経路を用意しています。選んだ経路に応じて、パラメーターなどを追加する必要があります。パラメーターは、コネクション URL のパラメーター、 または ドライバープロパティのいずれかとして指定できます。

経路 #1: アクセストークンを提供する OAuth 2.0 認証

クライアントアプリケーションは、OAuth アクセストークンを取得し、それを Denodo JDBC ドライバーに渡します。その後、ドライバーはこのトークンを使用して、Virtual DataPort に接続します。

この経路は、Virtual DataPort に接続するためのアクセストークンを取得する機能を持つクライアントアプリケーションで使用することを想定したものです。このクライアントアプリケーションは、このアクセストークンを自身のため、またはアプリケーションのエンドユーザーのために取得できます。

この方法の場合、以下のパラメーターをコネクション URL に、またはドライバープロパティとして追加してください。

アクセストークンを使う OAuth 2.0 認証のパラメーター

プロパティ

useOAuth2

true

accessToken

OAuth 2.0 アクセストークン

ユーザーまたはパスワードを設定しないでください。

経路 #2: リソース所有者パスワード資格情報による OAuth 2.0

クライアントアプリケーションに OAuth トークンを取得する機能がない場合、組織の ID プロバイダーが Resource Owner Password Credentials という OAuth フローをサポートしていれば、ドライバーがアプリケーションに代わってトークンを取得することができます。

この場合、ID プロバイダーに関する情報を使ってコネクションを構成できます。その情報は、ID プロバイダーにトークンをリクエストするための URL、ID プロバイダーに登録したアプリケーションのクライアント ID とクライアントシークレットなどです。

クライアントアプリケーションがコネクションを開くとき、ドライバーが ID プロバイダーに対して OAuth トークンをリクエストし、そのトークンを使ってコネクションを確立します。

この方法の場合、以下の URL パラメーターをコネクション URL に追加します。

リソース所有者パスワード資格情報による OAuth 2.0 認証のパラメーター

プロパティ

useOAuth2

true

user

クライアントがアクセストークンを取得するために設定したユーザー名

password

認証されるユーザーに対応するパスワード

tokenEndpoint

OAuth サーバーが公開している、アクセストークンをリクエストするための URL

clientId

アプリケーションのクライアント ID。通常はクライアントアプリケーションを ID プロバイダーに登録するときに取得します。

clientSecret

アプリケーションのクライアントシークレット

scope

異なるスコープをリクエストする場合のスコープの文字列値

extraParams

ドライバーが OAuth トークンを取得するために送信する HTTP リクエストの本文に追加する追加パラメーター。

param1=value1&param2=value2&... の形式で指定します。

コネクション URL のパラメーターではなく、ドライバープロパティとして指定する必要があります。

useIdToken

true の場合、ドライバーは「id_token」を認証に使用し、 false の場合は「access_token」を使用します。

「OpenID Connect」の環境では true に設定します。

デフォルト値: false

oauthSSLVerify

true の場合、ドライバーは ID プロバイダーの SSL 証明書を検証します。 false の場合は検証しません。

デフォルト値: true