ODBC Driver for Avro

Build 23.0.8839

OneDrive への接続

OneDrive への接続

OneDrive への認証には、Azure AD ユーザー、MSI 認証、Azure サービスプリンシパルを使用できます。

AzureAD ユーザー

AuthScheme は、すべてのユーザーアカウントフローでAzureAD に設定する必要があります。

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

CData は、OAuth デスクトップ認証を簡略化する埋め込みOAuth アプリケーションを提供します。代わりに、カスタムOAuth アプリケーションを作成することも可能です。カスタムアプリケーションの作成およびその理由については、カスタムOAuth アプリの作成 を参照してください。

OAuth アクセストークンの取得およびリフレッシュ

以下を設定して、接続してください。

  • OAuthClientId(カスタムアプリのみ):アプリの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret(カスタムアプリのみ):アプリの登録時に割り当てられたクライアントシークレットに設定。
  • CallbackURL(カスタムアプリのみ):アプリの登録時に定義されたリダイレクトURI に設定。例: http://localhost:33333
接続すると、本製品 はデフォルトブラウザでMicrosoft ID プラットフォームのOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。 本製品 はアクセストークンの期限が切れると自動的にリフレッシュします。

ヘッドレスマシン

ドライバーを設定するため、ヘッドレスマシンでユーザーアカウントにOAuth を使用します。インターネットブラウザに対応した別の端末で認証する必要があります。

  1. 以下のオプションから選択します。
    • オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
    • オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。
  2. 次に、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。

オプション1:Verifier code を取得および交換

Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。

インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。

  1. 以下のオプションから選択します。
    • 埋め込みOAuth アプリケーションを使用する場合は、GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。
    • カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定します。
      • InitiateOAuthOFF に設定。
      • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
      • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
      次に、適切なCallbackURL を指定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。
  2. ログインして、本製品 にアクセス許可を与えます。すると、リダイレクトURI にリダイレクトされます。

リダイレクトURI にはcode というパラメータが付加されます。このパラメータの値を控えておきます。後ほどこれをOAuthVerifier 接続プロパティに設定します。

次に、OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換する必要があります。

ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。

  • InitiateOAuthREFRESH に設定。
  • OAuthVerifier:控えておいたverifier code(リダイレクトURI のcode パラメータの値)に設定。
  • OAuthClientId:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
  • OAuthSettingsLocation:これを設定すると、暗号化されたOAuth 認証値が指定された場所に永続化されます。

接続をテストしてOAuth 設定ファイルを生成し、以下のプロパティを再設定して接続します。

  • InitiateOAuthREFRESH に設定。
  • OAuthClientId:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
  • OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。

オプション2:OAuth 設定を転送

ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続をインストールし、作成する必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。

「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。

接続をテストしてOAuth 設定ファイルを生成し、OAuth 設定ファイルをヘッドレスマシンにコピーします。

ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。

  • InitiateOAuthREFRESH に設定。
  • OAuthClientId:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
  • OAuthSettingsLocation:ブラウザでマシンからコピーしたOAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。

Azure サービスプリンシパル

Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されます。直接のユーザー認証は行われません。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。

AzureAD アプリとAzure サービスプリンシパルの作成

Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにAzure AD アプリケーションを作成して登録する必要があります。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

portal.azure.com の[アプリの登録]で[API のアクセス許可]に移動し、Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。

アプリケーションへのロールの割り当て

サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。

  1. 検索バーでサブスクリプションサービスを検索・選択して、サブスクリプションページを開きます。
  2. アプリケーションを割り当てるサブスクリプションを選択します。
  3. アクセス制御 (IAM)を開き、追加 -> ロール割り当ての追加 を選択してロール割り当ての追加ページを開きます。
  4. 作成したAzure AD アプリに割り当てるロールとして、所有者を選択します。
認証の完了 クライアントシークレットと証明書のどちらを使用するかを選択し、以下の該当する手順に従ってください。

クライアントシークレット

次の接続プロパティを設定します。

  • AuthScheme:クライアントシークレットを使用する場合はAzureServicePrincipal
  • InitiateOAuthGETANDREFRESHInitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

証明書

次の接続プロパティを設定します。

  • AuthScheme:証明書を使用する場合はAzureServicePrincipalCert
  • InitiateOAuthGETANDREFRESHInitiateOAuth を使えば、繰り返しOAuth 交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertTypeOAuthJWTCert で指定された証明書ストアの種類。

これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。

Azure MSI

Azure Data Lake Storage のアクセス許可を持つAzure VM で接続する場合は、以下AuthSchemeAzureMSI に設定します。

Azure サービスプリンシパル

クライアントシークレットではなくサービスプリンシパルで認証したい場合は、クライアント証明書で認証できます。認証するには以下のように設定します。

  • AuthSchemeAzureServicePrincipal に設定。
  • AzureTenant:接続するテナントに設定。
  • OAuthGrantTypeCLIENT に設定。
  • OAuthClientId:アプリ設定のクライアントId に設定。
  • OAuthJWTCert:JWT 証明書ストアに設定。
  • OAuthJWTCertTypeOAuthJWTCert で指定された証明書ストアの種類に設定。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839