ADO.NET Provider for Azure Synapse

Build 25.0.9434

接続の確立

Azure Synapse への接続

Azure Synapse データベースに接続するには、認証に加えて(下記参照)、次のプロパティを設定します。

  • Server:Azure Synapse を実行しているサーバー。これを見つけるには:
    1. Azure ポータルにログインします。
    2. Azure Synapse Analytics に移動します。
    3. Select your database -> Overview -> Server name に移動します。
  • DatabaseAzure Synapse Analytics ページのAzure ポータルに表示されるデータベース名。

Azure Synapse への認証

Azure Synapse は、Entra ID(Azure AD)、Azure サービスプリンシパル、Managed Service Identity(MSI)、パスワード(デフォルト)、Azure Password を使用する認証をサポートします。

次のセクションの説明に従ってAzure Synapse への認証を行います。

Entra ID(Azure AD)

Note:Microsoft はAzure ADEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。

Microsoft Entra ID は、マルチテナント型のクラウドベースのID およびアクセス管理プラットフォームです。 OAuth ベースの認証フローに対応しており、ドライバーによるAzure Synapse エンドポイントへのセキュアなアクセスを実現します。

Web アプリケーションを介したEntra ID への認証には、必ずはじめにカスタムOAuth アプリケーションを作成して登録する必要があります。 これにより、アプリケーションは独自のリダイレクトURI を定義し、クレデンシャルのスコープを管理し、組織固有のセキュリティポリシーに準拠することができるようになります。

カスタムOAuth アプリケーションの作成および登録方法の詳細については、Entra ID(Azure AD)アプリケーションの作成 を参照してください。

AuthSchemeAzureAD に設定した後の認証手順は、環境によって異なります。 デスクトップアプリケーション、Web ベースのワークフロー、またはヘッドレスシステムから接続する方法の詳細については、以下のセクションを参照してください。

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

デスクトップアプリケーションでは、Entra ID(Azure AD)アプリケーションの作成 で説明するようにMicrosoft Entra ID(旧Azure AD)に登録されたカスタムOAuth アプリケーションを使用して認証を行うことができます。

登録時に、以下の値を記録してください。

  • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
  • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。
  • CallbackURL:アプリケーション登録時に定義したリダイレクトURI。

接続の準備ができたら、以下の接続プロパティを設定します。

  • AuthSchemeAzureAD
  • InitiateOAuth
    • GETANDREFRESH – 初回ログイン時に使用します。ログインページを起動し、トークンを保存します。
    • REFRESH – すでに有効なアクセストークンおよびリフレッシュトークンを取得している場合は、この設定を使用します。保存されたトークンを再利用するため、ユーザーに再度プロンプトを表示することはありません。
  • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
  • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。
  • CallbackURL:アプリケーション登録時に定義したリダイレクトURI。

認証後、トークンはOAuthSettingsLocation に保存されます。 これらの値はセッションをまたいで保持され、アクセストークンの有効期限が切れた際に自動的に更新されるため、次回以降の接続時に再度ログインする必要はありません。

Web アプリケーション

Web アプリケーションから認証を行うには、Entra ID(Azure AD)アプリケーションの作成 で説明するようにMicrosoft Entra ID(旧称:Azure Active Directory)にカスタムOAuth アプリケーションを登録する必要があります。

登録時に、以下の値を記録してください。

  • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
  • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。
  • CallbackURL:アプリケーション登録時に定義したリダイレクトURI。

接続の準備ができたら、以下の接続プロパティを設定します。

  • AuthSchemeAzureAD
  • InitiateOAuthOFF – 自動ログインのプロンプトを無効にします。
  • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
  • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。
  • CallbackURL:アプリケーション登録時に定義したリダイレクトURI。

Web アプリケーションでは通常、OAuth フローをサーバー側で手動で管理するため、InitiateOAuthOFF に設定する必要があります。 これにより、ストアドプロシージャを使用して、トークンの取得および交換のタイミングと方法を明示的に制御できるようになります。

これらのプロパティを設定した後、以下の手順に従ってOAuth トークンを取得および交換してください。

  1. GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。
    • CallbackURL:登録したリダイレクトURI に設定します。
  2. 返されたURL をブラウザで開きます。Microsoft Entra ID アカウントでサインインし、アクセスを許可します。
  3. サインイン後、クエリ文字列にcode パラメータが含まれた状態でCallbackURL にリダイレクトされます。
  4. そのcode を抽出し、GetOAuthAccessToken ストアドプロシージャに渡します。
    • AuthMode: WEB
    • Verifier:CallbackURL からの認可コード。
  5. プロシージャは、以下を返します。
    • OAuthAccessToken:認証に使用されます。
    • OAuthRefreshToken:アクセストークンを更新するために使用されます。
    • ExpiresIn:アクセストークンの有効期間(秒単位)。

トークンの自動更新を有効にするには、以下の接続プロパティを設定します。

InitiateOAuthREFRESH に設定されている場合、ドライバーは提供されたリフレッシュトークンを使用して、自動的に新しいアクセストークンを要求します。

接続に成功すると、ドライバーは更新されたアクセストークンとリフレッシュトークンを、OAuthSettingsLocation によって指定されたファイルに保存します。

リフレッシュトークンが期限切れになるか、取り消されるか、無効になる場合のみ、OAuth の認可フロー全体を再実行する必要があります。

Microsoft Entra ID におけるOAuth フローの詳細については、 Microsoft Entra Authentication Overview を参照してください。

ヘッドレスマシン

CI / CD パイプライン、バックグラウンドサービス、サーバーベース連携などのヘッドレス環境では、対話型のブラウザが使用できません。 AzureAD を使用して認証するには、別のデバイス上のブラウザでOAuth フローを完了し、その認証結果をヘッドレスシステムに転送する必要があります。

セットアップには、次の2つのオプションがあります。

  • オプション1:Verifier code を取得および交換
    • 別のデバイスを使用してサインインし、Verifier code を取得します。ヘッドレスシステムがこのコードを使用してトークンを要求します。
  • オプション2:OAuth 設定ファイルを転送
    • 別のデバイスで認証を行い、その後、保存されたトークンファイルをヘッドレス環境にコピーします。

オプション1:Verifier code の使用

  1. ブラウザを備えたデバイスで:
    • カスタムOAuth アプリケーションを使用する場合は、次のプロパティを設定します。
      • InitiateOAuthOFF
      • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。
    • GetOAuthAuthorizationUrl ストアドプロシージャを呼び出し、サインインURL を生成します。
    • 返されたURL をブラウザで開きます。サインインして、ドライバーにアクセス許可を与えます。verifier code を含むコールバックURL にリダイレクトされます。
    • サインイン後、リダイレクトURL のcode パラメータの値を保存します。この値は後でOAuthVerifier 接続プロパティを設定する際に使用します。
  2. ヘッドレスマシンで:
    • 次のプロパティを設定します。
      • AuthSchemeAzureAD
      • InitiateOAuthREFRESH
      • OAuthVerifier:保存したverifier code。
      • OAuthSettingsLocation:OAuth トークンの値を保存するファイルのパス。
      • カスタムアプリケーションの場合:
        • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
        • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。
    • トークンを保存した後、以下の設定により再利用できます。
      • InitiateOAuthREFRESH
      • OAuthSettingsLocation:アクセストークンの自動リフレッシュを有効にするために、この場所がドライバーに読み書きのアクセス許可を与えることを確認してください。
      • カスタムアプリケーションの場合:
        • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
        • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。

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

  1. ブラウザを備えたデバイスで:
    • デスクトップアプリケーションセクションの説明に従って接続します。
    • 接続後、トークンはOAuthSettingsLocation のファイルパスに保存されます。デフォルトのファイル名はOAuthSettings.txt です。

  2. ヘッドレスマシンで:
    • OAuth 設定ファイルをマシンにコピーします。
    • 次のプロパティを設定します。
      • AuthSchemeAzureAD
      • InitiateOAuthREFRESH
      • OAuthSettingsLocation:アクセストークンの自動リフレッシュを有効にするために、この場所がドライバーに読み書きのアクセス許可を与えることを確認してください。
      • カスタムアプリケーションのみの場合:
        • OAuthClientId:カスタムOAuth アプリケーションの登録時に生成されたクライアントId。
        • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に生成されたクライアントシークレット。

セットアップ後、ドライバーは保存されたトークンを使用してアクセストークンを自動的に更新するため、ブラウザや手動でのログインは必要ありません。

Azure サービスプリンシパル

Note:Microsoft はAzure ADEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。

サービスプリンシパルは、Microsoft Entra ID(Azure AD)アプリケーション内のセキュリティオブジェクトであり、そのアプリケーションが特定のテナント内で何を行えるかを定義します。 サービスプリンシパルはEntra 管理センターで作成でき、Azure ポータルからもアクセス可能です。 作成プロセスの過程で、サービスプリンシパルがクライアントシークレットまたは証明書のどちらを経由してEntra リソースにアクセスするかも指定します。

接続先のサービスによっては、テナント管理者がサービスプリンシパル認証を有効にするか、サービスプリンシパルを適切なロールまたはセキュリティグループに割り当てる必要があります。

サービスプリンシパルの権限は、特定のユーザーに紐づくのではなく、割り当てられたロールに基づきます。 これらのロールは、アプリケーションがアクセスできるリソースと、実行できる操作を決定します。

サービスプリンシパルを使用して認証する場合、Entra ID(Azure AD)でのサービスプリンシパルアプリの作成 で説明するようにEntra テナントにアプリケーションを登録する必要があります。

このサブセクションでは、接続前に設定する必要があるプロパティについて説明します。 これらは、クライアントシークレットで認証するか、証明書で認証するかによって異なります。

クライアントシークレットによる認証

  • AuthSchemeAzureServicePrincipal
  • AzureTenant:接続するAzure AD テナント。
  • OAuthClientId:アプリケーション設定のクライアントID。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。
  • InitiateOAuthGETANDREFRESH。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。

証明書による認証

Managed Service Identity (MSI)

Azure VM 上でAzure Synapse を実行しており、マネージドID(MSI)認証情報を自動的に取得して接続したい場合は、AuthSchemeAzureMSI に設定します。

User-Managed Identities

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

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

パスワード

Azure Synapse に直接認証するには、以下のプロパティを設定します。

  • AuthSchemeパスワード
  • User:認証するAzure Synapse ユーザー。
  • Password:認証するAzure Synapse ユーザーのパスワード。

Azure Password

Azure 認証情報を使用してAzure Active Directory に直接認証するには、以下の接続プロパティを指定します:

  • AuthSchemeAzurePassword
  • User:認証するAzure ユーザーのアカウント。
  • Password:認証するAzure ユーザーのパスワード。
  • AzureTenant:Azure 上のAzure Synapse への認証に使用するカスタムAzure AD アプリケーションのディレクトリ(テナント)ID。これを見つけるには、カスタムアプリケーションの概要ページに移動します。

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 25.0.9434