CData Python Connector for JSON

Build 22.0.8479

OAuth の使用

このセクションでは、本製品 を使って、OAuth をサポートする任意のデータソースを認証する方法を説明します。

OAuth では認証するユーザーにブラウザでJSON との通信を要求します。次のセクションで説明するとおり、本製品 はさまざまな方法でこれをサポートします。

次の手順に従う前に、サービスにOAuth アプリを登録してOAuthClientId およびOAuthClientSecret を取得する必要があります。

デスクトップアプリケーション

次の接続プロパティを設定して、接続してください。

  • OAuthVersion:OAuth バージョン1.0 か2.0 のいずれかに設定します。
  • OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
  • OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURLです。OAuth 1.0 では、権限が与えられるとリクエストトークンが認可されます。
  • OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURLです。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
  • OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
  • OAuthClientId:アプリケーション設定のクライアントID に設定。これはコンシューマーキーとも呼ばれます。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。これはコンシューマーシークレットとも呼ばれます。
  • CallbackURL:http://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。
  • InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使って、OAuth 交換や、手動での接続文字列のアクセストークン設定の繰り返しを避けられます。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 がOAuth プロセスを完了します。
  1. コールバックURL からアクセストークンを取得し、リクエストを認証します。
  2. アクセストークンの期限が切れたときにはリフレッシュしてください。
  3. OAuth 値 in OAuthSettingsLocation を保存し、接続の間に維持されるようにします。

Web アプリケーション

Web アプリケーションから接続する場合、または本製品 にブラウザウィンドウを開く権限がない場合は、提供されたストアドプロシージャを使用してOAuth トークン値を取得および管理します。

Note:ストアドプロシージャスキーマを拡張して、OAuth URL またはその他の接続文字列プロパティのデフォルトを設定できます。オペレーション を参照してください。

OAuth フローの設定

Web フローで認証するOAuth URL を指定します。

  • OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
  • OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURLです。OAuth 1.0 では、権限が与えられるとリクエストトークンが認可されます。
  • OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURLです。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
  • OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。

アクセストークンの取得

OAuth URL に加えて、次の追加の接続プロパティを設定し、OAuthAccessToken を取得します。

  • OAuthClientId:アプリケーション設定のクライアントID に設定。これはコンシューマーキーとも呼ばれます。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。これはコンシューマーシークレットとも呼ばれます。
  • OAuthVersion:OAuth バージョン1.0 か2.0 のいずれかに設定します。

続いてストアドプロシージャを呼び出し、OAuth 交換を完了します。

  1. GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。AuthMode インプットをWEB に、CallbackURL インプットをアプリケーション設定で指定したリダイレクトURI に設定します。ストアドプロシージャがOAuth エンドポイントのURL を返します。
  2. ログインして、アプリケーションを認可します。コールバックURL にリダイレクトされます。
  3. GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode インプットをWEB に設定します。

    OAuth 1.0では、Verifier インプットを"oauth_verifier" パラメータに設定します。verifier code をコールバックURL から取得します。さらに、AuthToken とAuthSecret をGetOAuthAccessToken で返された値に設定します。

    OAuth 2.0では、Verifier インプットを、コールバックURL のクエリ文字列の"code" パラメータに設定します。

データに接続してトークンをリフレッシュ

GetOAuthAccessToken によって返されたOAuthAccessToken の有効期限は限られています。トークンを自動的にリフレッシュするには、最初のデータ接続で次のように設定します。あるいは、RefreshOAuthAccessToken ストアドプロシージャを使って、手動でトークンをリフレッシュします。

OAuth エンドポイント

  • OAuthRequestTokenURL
  • OAuthAuthorizationURL
  • OAuthAccessTokenURL
  • OAuthRefreshTokenURL

OAuth トークンおよびキー

  • OAuthClientId
  • OAuthClientSecret
  • OAuthRefreshToken
  • OAuthAccessToken

OAuth の開始

  • OAuthVersion:1.0 か2.0 に設定。
  • InitiateOAuth:REFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
  • OAuthSettingsLocation:本製品 がOAuth 値を保存する場所のパスを設定し、接続の間に維持されるようにします。

その後のデータ接続では、次を設定します。

  • InitiateOAuth
  • OAuthSettingsLocation
  • OAuthRequestTokenURL
  • OAuthAuthorizationURL
  • OAuthAccessTokenURL
  • OAuthRefreshTokenURL

JWT

The 本製品 supports using JWT as an authorization grant in situations where a user cannot perform an interactive sign-on. After setting the following connection properties, you are ready to connect:

  • OAuthVersion: Set this to 2.0
  • OAuthAccessTokenURL: Set this to the URL where the JWT is exchanged for an access token.
  • OAuthJWTCert: Set this to the certificate you want to use. In most cases this will be a path to a PEM or PFX file.
  • OAuthJWTCertType: Set this to the correct certificate type. In most cases this will either PEMKEY_FILE or PFXFILE.
  • OAuthJWTCertPassword: If the certificate is encrypted, set this to the encryption password.
  • OAuthJWTIssuer: Set this to the issuer. This corresponds to the iss field in the JWT.
  • InitiateOAuth: Set this to GETANDREFRESH.

Note that the JWT signature algorithm cannot be set directly. Only the RS256 algorithm is supported.

The 本製品 will then construct a JWT including following fields, and submit it to OAuthAccessTokenURL for an access token.

  • scope This will come from Scope if it is provided.
  • aud This will come from OAuthJWTAudience if it is provided.
  • iss This will come from OAuthJWTIssuer.
  • iat This is the time when the JWT is generated.
  • exp This is the value of iat plus the value of OAuthJWTValidityTime.
  • sub This will come from OAuthJWTSubject if it is provided.

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479