Excel Add-In for Azure Data Lake Storage

Build 23.0.8839

接続の確立

接続プロファイルの設定

[CData]リボンから[データの取得]をクリックし、[取得元:Azure Data Lake Storage]> 設定済みの接続 を選択してCData クエリウィンドウを起動します。新しい接続を設定するには、[新しいAzure Data Lake Storage 接続]をクリックします。ここでは、接続の設定、接続のテスト、および接続プロファイルの保存を行うことができます。

Azure DataLakeStorage Gen 1 への接続

To connect to a Gen 1 DataLakeStorage account, you should first set the following properties:

  • SchemaADLSGen1 に設定。
  • Account:アカウント名に設定。
  • AzureTenant:テナントId に設定。取得方法について詳しくは、プロパティを参照してください。
  • Directory:(オプション)複製されたファイルを格納するために使用されるパスに設定。指定しない場合は、ルートディレクトリが使用されます。

Azure DataLakeStorage Gen 1 への認証

Gen 1 は、次の認証メソッドをサポートしています。Azure Active Directory OAuth (AzureAD) and Managed Service Identity (AzureMSI).

Azure AD

Azure AD は、OAuth を使用して認証する接続タイプです。OAuth では認証するユーザーにインターネットブラウザでAzure Data Lake Storage との通信を要求します。下記で説明するとおり、本製品 はさまざまな方法でこれをサポートします。 AuthSchemeAzureAD に設定します。以下のAzure AD フローは、すでに設定済みであることを前提として書かれています。

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

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

認証に関する2つの方法の違いは、カスタムOAuth アプリケーションを使用する場合に、2つの接続プロパティを追加で設定する必要があることだけです。

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

  • OAuthClientId:(カスタムアプリケーションのみ)アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリケーションのみ)アプリケーション設定のクライアントシークレットに設定。
  • CallbackURL:アプリケーション設定のリダイレクトURL に設定。

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

管理者の同意

管理者の同意とは、Azure Active Directory テナントの管理者が、管理者の同意を必要とするアプリケーションに権限を付与することを指します。 CData Excel Add-In for Azure Data Lake Storage 内の埋め込みアプリには、管理者の同意を必要とするアクセス許可はありません。したがって、この情報はカスタムアプリケーションにのみ適用されます。

管理者の同意の付与

Azure ポータルで新しいOAuth アプリを作成する場合には、アプリに必要なアクセス許可を指定する必要があります。一部のアクセス許可には、「管理者の同意が必要」と記載されている場合があります。 例えば、すべてのグループのアクセス許可には管理者の同意が必要です。アプリに管理者の同意が必要な場合、いくつかの方法があります。

管理者の同意を付与する最も簡単な方法は、管理者がportal.azure.com にログインして、[アプリの登録]で作成したアプリに移動するだけです。[API のアクセス許可]に、 [管理者の同意の付与]ボタンがあります。ここで、アプリが作成されたテナントでアクセス許可を持つことに同意できます。

組織に複数のテナントがある場合、またはアプリが組織外の他のテナントにアクセス許可を与える必要がある場合、adminconsenturlproc を使用してAdmin Authorization URL を生成できます。 GetOAuthAuthorizationURL とは異なり、このエンドポイントから返される重要な情報はありません。アクセスを許可すると、許可が付与されたことを示すboolean を返します。

管理者が同意すると、通常どおり認証を行うことができます。

クライアントクレデンシャル

クライアント資格情報は、直接ユーザー認証が行われないOAuth のフローを指します。代わりに、資格情報はアプリ自体のためだけに作成されます。 アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。そのため、認証フローが標準とは少し違ったものになります。

クライアントOAuth フロー

クライアントOAuth フローに関連するすべての権限には、管理者の同意が必要です。これは、CData Excel Add-In for Azure Data Lake Storage が埋め込まれたアプリをクライアントOAuth フローでは使用できないことを意味します。クライアント資格情報を使用するには、独自のOAuth アプリの作成が必要になります。 詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

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

認証タイプに応じて、以下のいずれかの接続プロパティグループを設定すると、接続できるようになります。

  1. クライアントシークレット
    • InitiateOAuthGETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
    • AzureTenant:接続するテナントに設定。
    • OAuthGrantType:CLIENT に設定。
    • OAuthClientId:アプリ設定のクライアントId に設定。
    • OAuthClientSecret:アプリ設定のクライアントシークレットに設定。
  2. 証明書
    • InitiateOAuthGETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
    • AzureTenant:接続するテナントに設定。
    • OAuthGrantType:CLIENT に設定。
    • OAuthClientId:アプリ設定のクライアントId に設定。
    • OAuthJWTCert:JWT 証明書ストアに設定。
    • OAuthJWTCertTypeOAuthJWTCert で指定された証明書ストアの種類に設定。

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

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 上でAzure Data Lake Storage を実行しており、MSI を利用して接続したい場合は、AuthSchemeAzureMSI に設定します。

User-Managed Identities

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

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

Azure DataLakeStorage Gen 2 への接続

To connect to a Gen 2 DataLakeStorage account, you should first set the following properties:

  • SchemaADLSGen2 に設定。
  • Account:ストレージアカウント名に設定。
  • FileSystem:このアカウントに使用されるファイルシステム名に設定。例えば、Azure Blob コンテナの名前。
  • Directory:(オプション)複製されたファイルを格納するために使用されるパスに設定。指定しない場合は、ルートディレクトリが使用されます。

Azure DataLakeStorage Gen 2 への認証

Gen 2 supports the following authentication methods: using an AccessKey, using a Shared Access Signature, Azure Active Directory OAuth (AzureAD), Managed Service Identity (AzureMSI).

Access Key を使用した認証

To connect using a Shared Access Signature set the AccessKey property and the AuthScheme to AccessKey.

You can obtain an access key for the ADLS Gen2 storage account using the Azure portal:

  1. Go to your ADLS Gen2 Storage Account in the Azure portal.
  2. 設定で[アクセスキー]を選択します。
  3. Copy the value for one of the available access keys to the AccessKey connection property.

共有アクセス署名(SAS)

To connect using a Shared Access Signature set the SharedAccessSignature property to a valid signature of a resource to connect to and the AuthScheme to SAS. The SharedAccessSignature may be generated with a tool such as Azure Storage Explorer.

Azure AD

Azure AD は、OAuth を使用して認証する接続タイプです。OAuth では認証するユーザーにインターネットブラウザでAzure Data Lake Storage との通信を要求します。下記で説明するとおり、本製品 はさまざまな方法でこれをサポートします。 AuthSchemeAzureAD に設定します。以下のAzure AD フローは、すでに設定済みであることを前提として書かれています。

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

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

認証に関する2つの方法の違いは、カスタムOAuth アプリケーションを使用する場合に、2つの接続プロパティを追加で設定する必要があることだけです。

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

  • OAuthClientId:(カスタムアプリケーションのみ)アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリケーションのみ)アプリケーション設定のクライアントシークレットに設定。
  • CallbackURL:アプリケーション設定のリダイレクトURL に設定。

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

管理者の同意

管理者の同意とは、Azure Active Directory テナントの管理者が、管理者の同意を必要とするアプリケーションに権限を付与することを指します。 CData Excel Add-In for Azure Data Lake Storage 内の埋め込みアプリには、管理者の同意を必要とするアクセス許可はありません。したがって、この情報はカスタムアプリケーションにのみ適用されます。

管理者の同意の付与

Azure ポータルで新しいOAuth アプリを作成する場合には、アプリに必要なアクセス許可を指定する必要があります。一部のアクセス許可には、「管理者の同意が必要」と記載されている場合があります。 例えば、すべてのグループのアクセス許可には管理者の同意が必要です。アプリに管理者の同意が必要な場合、いくつかの方法があります。

管理者の同意を付与する最も簡単な方法は、管理者がportal.azure.com にログインして、[アプリの登録]で作成したアプリに移動するだけです。[API のアクセス許可]に、 [管理者の同意の付与]ボタンがあります。ここで、アプリが作成されたテナントでアクセス許可を持つことに同意できます。

組織に複数のテナントがある場合、またはアプリが組織外の他のテナントにアクセス許可を与える必要がある場合、adminconsenturlproc を使用してAdmin Authorization URL を生成できます。 GetOAuthAuthorizationURL とは異なり、このエンドポイントから返される重要な情報はありません。アクセスを許可すると、許可が付与されたことを示すboolean を返します。

管理者が同意すると、通常どおり認証を行うことができます。

クライアントクレデンシャル

クライアント資格情報は、直接ユーザー認証が行われないOAuth のフローを指します。代わりに、資格情報はアプリ自体のためだけに作成されます。 アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。そのため、認証フローが標準とは少し違ったものになります。

クライアントOAuth フロー

クライアントOAuth フローに関連するすべての権限には、管理者の同意が必要です。これは、CData Excel Add-In for Azure Data Lake Storage が埋め込まれたアプリをクライアントOAuth フローでは使用できないことを意味します。クライアント資格情報を使用するには、独自のOAuth アプリの作成が必要になります。 詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

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

認証タイプに応じて、以下のいずれかの接続プロパティグループを設定すると、接続できるようになります。

  1. クライアントシークレット
    • InitiateOAuthGETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
    • AzureTenant:接続するテナントに設定。
    • OAuthGrantType:CLIENT に設定。
    • OAuthClientId:アプリ設定のクライアントId に設定。
    • OAuthClientSecret:アプリ設定のクライアントシークレットに設定。
  2. 証明書
    • InitiateOAuthGETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
    • AzureTenant:接続するテナントに設定。
    • OAuthGrantType:CLIENT に設定。
    • OAuthClientId:アプリ設定のクライアントId に設定。
    • OAuthJWTCert:JWT 証明書ストアに設定。
    • OAuthJWTCertTypeOAuthJWTCert で指定された証明書ストアの種類に設定。

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

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 上でAzure Data Lake Storage を実行しており、MSI を利用して接続したい場合は、AuthSchemeAzureMSI に設定します。

User-Managed Identities

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

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

接続プロパティ

最後に、Connection プロパティを参照してください。接続の確立に使用できるさまざまなオプションの説明があります。

接続の管理

Azure Data Lake Storage への認証に成功すると、インポートするデータをカスタマイズすることができます。詳しくは、接続の管理 を参照してください。

関連項目

  • データのクエリ:[データ選択]ウィザードを使用してスプレッドシートにデータをプルします。また、ここではスケジュールされたデータのリフレッシュも設定できます。
  • Excel アドインの使用:利用可能なCData Excel 関数 を使用するなど、Azure Data Lake Storage データとやり取りする他の方法が見つかります。

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