Azure Blob Storage への接続
接続の前に
AzureBlob ユーザーの認証情報を取得するには、以下の手順に従ってください。
- ルートアカウントの認証情報を使用してAzure ポータル にサインインします。
- ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
- 設定でアクセスキーをクリックします。
- ページ上にストレージアカウント名とキーが表示されます。
Azure Blob Storage への接続
AzureStorageAccount をAzure Blob Storage アカウント名に設定します。
Azure Blob Storage への認証
Azure Blob Storage への認証には、アクセスキー、Shared Access Signature(SAS)、Azure AD ユーザー、Azure MSI、またはAzure サービスプリンシパルを使用できます。
アクセスキー
Azure アクセスキーで認証するには、以下のように設定します。
- AuthScheme:AccessKey に設定。
- AzureAccessKey:Azure Blob Storage アカウントに紐づいているストレージキーに設定。
共有アクセス署名(SAS)
共有アクセス署名(SAS)で認証するには以下を設定します。- AuthScheme:AzureStorageSAS に設定。
- AzureSharedAccessSignature:Azure Blob Storage アカウントに紐づいているSAS に設定。
- ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
- ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
- 設定でShared Access Signature をクリックします。
- アクセス許可を設定します。
- トークンの有効期限を指定します。
- SAS の生成をクリックし、生成された共有アクセス署名をコピーします。
- AzureSharedAccessSignature を前のステップの共有アクセス署名に設定します。
AzureAD ユーザー
AuthScheme は、すべてのユーザーアカウントフローでAzureAD に設定する必要があります。
デスクトップアプリケーション
CData は、OAuth デスクトップ認証を簡略化する埋め込みOAuth アプリケーションを提供します。代わりに、カスタムOAuth アプリケーションを作成することも可能です。カスタムアプリケーションの作成およびその理由については、カスタムOAuth アプリの作成 を参照してください。OAuth アクセストークンの取得およびリフレッシュ
以下を設定して、接続してください。
- OAuthClientId(カスタムアプリのみ):アプリの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret(カスタムアプリのみ):アプリの登録時に割り当てられたクライアントシークレットに設定。
- CallbackURL(カスタムアプリのみ):アプリの登録時に定義されたリダイレクトURI に設定。例: http://localhost:33333
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 で指定された証明書ストアの種類。
これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。
Azure MSI
Azure Data Lake Storage のアクセス許可を持つAzure VM で接続する場合は、AuthScheme をAzureMSI に設定します。
Azure サービスプリンシパル
クライアントシークレットではなくサービスプリンシパルで認証したい場合は、クライアント証明書で認証できます。認証するには以下のように設定します。
- AuthScheme:AzureServicePrincipal に設定。
- AzureTenant:接続するテナントに設定。
- OAuthGrantType:CLIENT に設定。
- OAuthClientId:アプリ設定のクライアントId に設定。
- OAuthJWTCert:JWT 証明書ストアに設定。
- OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類に設定。