JDBC Driver for Microsoft OneDrive

Build 23.0.8839

接続の確立

JDBC データソースの作成

Java アプリケーションから接続するJDBC データソースを作成できます。CData JDBC Driver for Microsoft OneDrive に基づくJDBC データソースの作成は、3つの基本ステップで構成されます。

  • ドライバーのJAR ファイルをクラスパスに追加します。JAR ファイルはインストールディレクトリの[lib]サブフォルダ内にあります。.lic ファイルはJAR ファイルと同じフォルダ内に配置される必要があることに注意してください。
  • ドライバークラスを入力します。次に例を示します。
    cdata.jdbc.onedrive.OneDriveDriver
  • JDBC URL を入力します。次に例を示します。
    jdbc:onedrive:InitiateOAuth=GETANDREFRESH;OAuthClientId=MyApplicationId;OAuthClientSecret=MySecretKey;CallbackURL=http://localhost:33333;
    
    or
    
    jdbc:cdata:onedrive:InitiateOAuth=GETANDREFRESH;OAuthClientId=MyApplicationId;OAuthClientSecret=MySecretKey;CallbackURL=http://localhost:33333;

    上記の2つ目の形式は、同じURL 形式を使用しているドライバー間でアプリケーションに競合がある場合は、CData ドライバーを使用していることを確認するために常に使用できます。URL は "jdbc:onedrive:" または"jdbc:cdata:onedrive:" のいずれかから始まり、任意の接続プロパティの名前と値のペアをセミコロン区切りで入力します。

Authenticating to Microsoft OneDrive

Microsoft OneDrive uses the OAuth authentication standard. To authenticate using OAuth, you will need to create an app to obtain the OAuthClientId, OAuthClientSecret, and CallbackURL connection properties.

Azure AD

Azure AD は、Microsoft のマルチテナント、クラウドベースのディレクトリおよびID 管理サービスです。これはユーザーベースの認証で、AuthSchemeAzureAD に設定する必要があります。

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

CData は、デスクトップでの認証を簡単にする埋め込みOAuth アプリケーションを提供します。

接続の前に、以下の変数を設定します。

  • InitiateOAuthGETANDREFRESHOAuthAccessToken を自動的に取得およびリフレッシュするために使用します。 CData は、デスクトップでの認証を簡単にする埋め込みOAuth アプリケーションを提供します。例えば、ユーザーがインターネットに接続されていないローカルサーバーを使用しているような場合に利用できます。

    また、Microsoft OneDrive コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

  • カスタムAzure AD アプリケーションのみ:
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
    • CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI。

接続すると、本製品 はデフォルトブラウザでMicrosoft OneDrive のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 はこれでOAuth プロセスを完了します。

  1. コールバックURL からアクセストークンを取得し、リクエストを認証します。
  2. 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  3. OAuth 値をOAuthSettingsLocation に保存します。これらの値は接続間で永続化されます。

アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。

Web アプリケーション

Web 経由で認証する場合は、カスタムOAuth アプリケーションの作成 で説明するようにMicrosoft OneDrive にカスタムOAuth アプリケーションを作成および登録する必要があります。それから本製品 を使用してOAuth トークンの値を取得および管理します。

このセクションでは、OAuth アクセストークンの取得方法、ドライバーにOAuth アクセストークンを自動的に更新させる方法、OAuth アクセストークンを手動で更新する方法について説明します。

OAuth アクセストークンの取得:

  1. OAuthAccessToken を取得するには、次の接続プロパティを設定します。
    • クライアントシークレットを使用する認証の場合:
      • OAuthClientId:アプリケーション設定のクライアントId。
      • OAuthClientSecret:アプリケーション設定のクライアントシークレット。
    • 証明書を使用する認証の場合:
      • OAuthClientId:アプリケーション設定のクライアントId。
      • OAuthJWTCert:JWT 証明書のストア。
      • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。
  2. ストアドプロシージャを呼び出し、OAuth 交換を完了します。
    • GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。AuthMode インプットをWEB に、CallbackURL をアプリケーション設定で指定したリダイレクトURI に設定します。 ストアドプロシージャは、OAuth エンドポイントへのURL を返します。
    • ステップ1でストアドプロシージャが返したURL に移動します。ログインしてWeb アプリケーションを認可します。コールバックURL にリダイレクトされます。
    • GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode インプットをWEB に設定します。Verifier インプットを、リダイレクトURI のクエリ文字列のcode パラメータに設定します。

アクセストークンとリフレッシュトークンを取得したのち、データに接続してOAuth アクセストークンを自動的にリフレッシュできます。

OAuth アクセストークンの自動リフレッシュ:

本製品 がOAuth アクセストークンを自動的にリフレッシュするようにするには、次のように設定します。

  1. はじめてデータに接続する際、次の接続プロパティを設定します。
    • InitiateOAuthREFRESH
    • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。
    • OAuthAccessTokenGetOAuthAccessToken によって返されたアクセストークン。
    • OAuthSettingsLocation:本製品 がOAuth 値を保存する場所のパス。これは接続間で維持されます。
  2. その後のデータ接続では、以下を設定します。
    • InitiateOAuth
    • OAuthSettingsLocation

OAuth アクセストークンの手動リフレッシュ:

OAuth アクセストークンを手動でリフレッシュするために必要な唯一の値は、OAuth リフレッシュトークンです。

  1. ExpiresIn 期間(GetOAuthAccessToken が返す)が経過した後にOAuthAccessToken を手動でリフレッシュするには、RefreshOAuthAccessToken ストアドプロシージャを呼び出します。
  2. 次の接続プロパティを設定します。
    • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。

  3. RefreshOAuthAccessToken を呼び出し、OAuthRefreshToken にGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを設定します。
  4. 新しいトークンが取得できたら、OAuthAccessToken プロパティにRefreshOAuthAccessToken によって返された値を設定します。これで新規接続が開かれます。

OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。

ヘッドレスマシン

ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、インターネットブラウザに対応した別の端末で認証する必要があります。 以下のいずれかの方法で行います。

  • 後述のVerifier code を取得および交換に従い、OAuthVerifier 値を取得します。
  • 別のマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。

いずれかのオプションを実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。

Verifier code を取得および交換

Verifier code を取得するには、インターネットブラウザがあるマシンからOAuth 認可URL で認証し、OAuthVerifier 接続プロパティを取得する必要があります。

  1. 以下のオプションから選択します。

    • 埋め込みOAuth アプリケーションを使用する場合は、Microsoft OneDrive OAuth endpoint をクリックし、ブラウザでエンドポイントを開きます。
    • カスタムOAuth アプリケーションを使用する場合は、以下のプロパティを設定して認可URL を作成します。
      • InitiateOAuthOFF
      • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
      • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
      認可URL が確立されたら、適切なCallbackURL を指定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。

  2. ログインして、本製品 にアクセス許可を与えます。verifier code を含むコールバックURL にリダイレクトされます。
  3. verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
次に、OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。

OAuth 認証値を取得するには次のプロパティを設定します。

  • InitiateOAuthREFRESH
  • OAuthVerifier:verifier code。
  • OAuthSettingsLocation:ドライバーがOAuth トークン値を保存するファイルの場所。これは接続間で維持されます。
  • カスタムアプリケーションのみ:
    • OAuthClientId:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントId に設定。
    • OAuthClientSecret:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントシークレットに設定。

OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットします。

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

OAuth 設定を転送

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

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

接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。

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

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

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 で指定された証明書ストアの種類。

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

Managed Service Identity (MSI)

Azure VM 上でMicrosoft OneDrive を実行しており、MSI を利用して接続したい場合は、AuthSchemeAzureMSI に設定します。

User-Managed Identities

マネージドID のトークンを取得するには、OAuthClientId プロパティを使用してマネージドID の"client_id" を指定します。

VM に複数のユーザーが割り当てられたマネージドID がある場合は、OAuthClientId も指定する必要があります。

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