Service Connector を使用して Foundry モデルの Azure OpenAI に接続する

この記事では、Service Connector を使用して Foundry Models でコンピューティング サービスを Azure OpenAI に接続するために使用できる、サポートされている認証方法とクライアントについて説明します。 サポートされているメソッドごとに、サンプル コードを提供し、サービス接続の作成時に取得した既定の環境変数の名前と値を一覧表示します。

サポートされているコンピューティング サービス

Service Connector を使用して、次のコンピューティング サービスを OpenAI Azure接続できます。

  • Azure App Service
  • Azure Functions
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

サポートされている認証の種類とクライアントの種類

次の表は、Service Connector を使用してコンピューティング サービスを OpenAI Azure接続するためにサポートされる認証方法とクライアントの組み合わせを示しています。 [はい] は組み合わせがサポートされていることを示し、No はサポートされていないことを示します。

クライアントの種類 システム割り当てマネージド ID ユーザー割り当てマネージド ID シークレット/接続文字列 サービス プリンシパル
.NET はい はい はい はい
Java はい はい はい はい
Node.js はい はい はい はい
Python はい はい はい はい
None はい はい はい はい

この表は、表内のクライアントの種類と認証方法のすべての組み合わせがサポートされていることを示しています。 すべてのクライアントの種類では、任意の認証方法を使用して、Service Connector を使用して Azure OpenAI に接続できます。

既定の環境変数名またはアプリケーション プロパティとサンプル コード

Azure OpenAIにコンピューティング サービスを接続するには、次の接続詳細を使用します。 詳細については、「 構成の名前付け規則」を参照してください。

システム割り当てマネージド ID

既定の環境変数名 説明 値の例
AZURE_OPENAI_BASE Azure OpenAI エンドポイント https://<Azure-OpenAI-name>.openai.azure.com/

サンプル コード

システム割り当てマネージド ID を使用して Azure OpenAI に接続するには、次の手順とコードを参照してください。

  1. 依存関係をインストールします。

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Identity
    
  2. Azure ID ライブラリを使用して認証し、Service Connector によって追加された環境変数から Azure OpenAI エンドポイントを取得します。 次のコードでは、認証の種類のセクションのコメントを解除します。

    using Azure.AI.OpenAI;
    using Azure.Identity;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_BASE");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_OPENAI_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    AzureOpenAIClient openAIClient = new(
      new Uri(endpoint),
      credential
    );
    

ユーザー割り当てマネージド ID

既定の環境変数名 説明 値の例
AZURE_OPENAI_BASE Azure OpenAI エンドポイント https://<Azure-OpenAI-name>.openai.azure.com/
AZURE_OPENAI_CLIENTID クライアント ID <client-ID>

サンプル コード

ユーザー割り当てマネージド ID を使用して Azure OpenAI に接続するには、次の手順とコードを参照してください。

  1. 依存関係をインストールします。

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Identity
    
  2. Azure ID ライブラリを使用して認証し、Service Connector によって追加された環境変数から Azure OpenAI エンドポイントを取得します。 次のコードでは、認証の種類のセクションのコメントを解除します。

    using Azure.AI.OpenAI;
    using Azure.Identity;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_BASE");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_OPENAI_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    AzureOpenAIClient openAIClient = new(
      new Uri(endpoint),
      credential
    );
    

接続文字列

既定の環境変数名 説明 値の例
AZURE_OPENAI_BASE Azure OpenAI エンドポイント https://<Azure-OpenAI-name>.openai.azure.com/
AZURE_OPENAI_KEY Azure OpenAI API キー <api-key>

サンプル コード

接続文字列を使用して Azure OpenAI に接続するには、次の手順とコードを参照してください。

  1. 次の依存関係をインストールします。

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Core --version 1.40.0
    
  2. Service Connector によって追加された環境変数から、Azure OpenAI エンドポイントと API キーを取得します。

    using Azure.AI.OpenAI;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_BASE");
    string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY");
    
    AzureOpenAIClient openAIClient = new(
      new Uri(endpoint),
      new AzureKeyCredential(key));
    

サービス プリンシパル

既定の環境変数名 説明 値の例
AZURE_OPENAI_BASE Azure OpenAI エンドポイント https://<Azure-OpenAI-name>.openai.azure.com/
AZURE_OPENAI_CLIENTID クライアント ID <client-ID>
AZURE_OPENAI_CLIENTSECRET クライアント シークレット <client-secret>
AZURE_OPENAI_TENANTID テナント ID <tenant-ID>

サンプル コード

サービス プリンシパルを使用して Azure OpenAI に接続するには、次の手順とコードを参照してください。

  1. 依存関係をインストールします。

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Identity
    
  2. Azure ID ライブラリを使用して認証し、Service Connector によって追加された環境変数から Azure OpenAI エンドポイントを取得します。 次のコードでは、認証の種類のセクションのコメントを解除します。

    using Azure.AI.OpenAI;
    using Azure.Identity;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_BASE");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_OPENAI_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_OPENAI_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    AzureOpenAIClient openAIClient = new(
      new Uri(endpoint),
      credential
    );