SharePoint Online への接続
SharePoint Online への接続(REST)
REST API では、以下の認証スキームがサポートされています。
- AzureAD
- MSI
- AzureServicePrincipal
AzureAD
Azure Active Directory(AzureAD)は、OAuth を使用して認証する接続タイプです。OAuth では認証するユーザーにインターネットブラウザでAvro との通信を要求します。下記で説明するとおり、本ドライバーはさまざまな方法でこれをサポートします。AuthScheme をAzureAD に設定します。以下で説明するAzure AD フローは、すでに設定済みであることを前提として書かれています。Azure テナントの新しいAzureAD アプリケーションを承認する際、組織による管理者の同意が必要になる場合があります。すべてのAzureAD フローにおいて、AzureAD アプリケーションの初期インストールと使用の際は、管理者がそのAzure テナントのアプリケーションを承認する必要があります。
デスクトップアプリケーション
CData は、OAuth デスクトップ認証を簡略化する埋め込みOAuth アプリケーションを提供します。代わりに、カスタムAzureAD アプリケーションを作成することも可能です。カスタムアプリケーションの作成およびその理由については、カスタムAzureAD アプリの作成 を参照してください。
認証に関する2つの方法の違いは、カスタムAzureAD アプリケーションを使用する場合に、2つの接続プロパティを追加で設定する必要があることだけです。
次の接続プロパティを設定して、接続してください。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
- OAuthClientId:(カスタムアプリケーションのみ)アプリケーション設定のクライアントId に設定。
- OAuthClientSecret:(カスタムアプリケーションのみ)アプリケーション設定のクライアントシークレットに設定。
- CallbackURL:アプリケーション設定のリダイレクトURL に設定。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 はこれでOAuth プロセスを完了します。
- コールバックURL からアクセストークンを取得し、リクエストを認証します。
- 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
- OAuth 値をOAuthSettingsLocation に保存します。これらの保存された値は接続間で永続化されます。
ヘッドレスマシン
ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。
- 以下の2つのオプションから選択します。
- オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
- オプション2:別のマシンに本製品 をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。
- その後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。
インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。
- 以下のオプションから選択します。
- 埋め込みOAuth アプリケーションを使用する場合は、Avro OAuth endpoint をクリックし、ブラウザでエンドポイントを開きます。
- カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定し、認証URL を作成します。
- InitiateOAuth:OFF に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- ログインして、本製品 にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
- verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。
- InitiateOAuth:REFRESH に設定。
- OAuthVerifier:verifier code に設定。
- OAuthClientId:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントId に設定。
- OAuthClientSecret:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
- OAuthSettingsLocation:ドライバーがOAuth トークン値を保存するファイルの場所に設定。これは接続間で維持されます。
OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットする必要があります。
- InitiateOAuth:REFRESH に設定。
- OAuthClientId:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を付与することを確認してください。
オプション2:OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。
接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。
ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
- InitiateOAuth:REFRESH に設定。
- OAuthClientId:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
Azure サービスプリンシパル
Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されます。直接のユーザー認証は行われません。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。
AzureAD アプリとAzure サービスプリンシパルの作成
Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにAzure AD アプリケーションを作成して登録する必要があります。詳しくは、Azure AD アプリケーションの作成 を参照してください。
portal.azure.com の[アプリの登録]で[API のアクセス許可]に移動し、Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。
アプリケーションへのロールの割り当て
サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。
- 検索バーでサブスクリプションサービスを検索・選択して、サブスクリプションページを開きます。
- アプリケーションを割り当てるサブスクリプションを選択します。
- アクセス制御 (IAM)を開き、追加 -> ロール割り当ての追加 を選択してロール割り当ての追加ページを開きます。
- 作成したAzure AD アプリに割り当てるロールとして、所有者を選択します。
クライアントシークレット
次の接続プロパティを設定します。
- AuthScheme:クライアントシークレットを使用する場合はAzureServicePrincipal。
- InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
- AzureTenant:接続するテナント。
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthClientSecret:アプリケーション設定のクライアントシークレット。
証明書
次の接続プロパティを設定します。
- AuthScheme:証明書を使用する場合はAzureServicePrincipalCert。
- InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth 交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
- AzureTenant:接続するテナント。
- OAuthJWTCert:JWT 証明書のストア。
- OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。
これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。
MSI
Azure VM 上でAvro を実行している場合は、Managed Service Identity(MSI)の資格情報を利用して接続が可能です。
- AuthScheme:AzureMSI に設定。
MSI 資格情報が認証用に自動的に取得されます。
Azure サービスプリンシパル
Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにアプリケーションを登録する必要があります。
アプリケーションへのロールの割り当て
サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。
- 検索バーでサブスクリプションサービスを検索・選択して、[サブスクリプション]ページを開きます。
- アプリケーションを割り当てる特定のサブスクリプションを選択します。
- [アクセス制御 (IAM)]を開き、[追加]->[ロール割り当ての追加]を選択して[ロール割り当ての追加]ページを開きます。
- 作成したAzure AD アプリに割り当てるロールとして、[所有者]を選択します。
Azure サービスプリンシパルを使用した認証
設定されたアプリ認証(クライアントシークレットまたは証明書)に応じて、以下のいずれかの接続プロパティグループを設定すると、接続できるようになります。
クライアントシークレットまたは証明書認証を選択する前に、以下を設定します。
- AuthScheme:アプリ設定のAzureServicePrincipal に設定。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
- AzureTenant:接続するテナントに設定。
- OAuthClientId:アプリ設定のクライアントId に設定。
- OAuthGrantType:CLIENT に設定。
オプション1:クライアントシークレットを使用した認証
クライアントシークレットで認証するには、以下のように設定します。
- OAuthClientId:アプリ設定のクライアントId に設定。
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
オプション2:JWT 証明書を使用した認証
JWT 証明書で認証するには、以下のように設定します。
- OAuthJWTCert:JWT 証明書ストアに設定。
- OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類に設定。
SharePoint Online への接続(SOAP)
SOAP API では、以下の認証がサポートされています。
- ユーザー資格情報
- ADFS
- Okta
- OneLogin
ユーザー資格情報
ADFS
AuthScheme をADFS に設定します。次の接続プロパティを設定する必要があります。
- User:ADFS ユーザーに設定。
- Password:ユーザーのADFS パスワードに設定。
- SSOLoginURL:ADFS サーバーのベースURL に設定。
AuthScheme=ADFS;User=ADFSUserName;Password=ADFSPassword;URL='http://sharepointserver/mysite';
Okta
AuthScheme をOkta に設定します。Okta に接続するには、次の接続プロパティを使用します。
- User:Okta ユーザーに設定。
- Password:ユーザーのOkta パスワードに設定。
- SSOLoginURL:Okta アプリケーションの埋め込みリンクに設定。
次は接続文字列の例です。
AuthScheme=Okta;User=oktaUserName;Password=oktaPassword;URL='http://sharepointserver/mysite';
OneLogin
AuthScheme をOneLogin に設定します。OneLogin への接続には、次の接続プロパティを使用します。
- User:OneLogin ユーザーに設定。
- Password:ユーザーのOneLogin パスワードに設定。
次は接続文字列の例です。
AuthScheme=OneLogin;User=OneLoginUserName;Password=OneLoginPassword;URL='http://sharepointserver/mysite';