Connect to Azure OpenAI Service using Service Connector

This page provides information about supported authentication methods and clients, along with sample code for connecting Azure OpenAI Service to other cloud services using Service Connector. This page also lists default environment variable names and values obtained when creating service connections.

Supported compute services

Service Connector can be used to connect the following compute services to Azure OpenAI Service:

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

Supported authentication types and client types

The table below shows which combinations of authentication methods and clients are supported for connecting your compute service to Azure OpenAI Service using Service Connector. A “Yes” indicates that the combination is supported, while a “No” indicates that it is not supported.

Client type System-assigned managed identity User-assigned managed identity Secret/connection string Service principal
.NET Yes Yes Yes Yes
Java Yes Yes Yes Yes
Node.js Yes Yes Yes Yes
Python Yes Yes Yes Yes
None Yes Yes Yes Yes

This table indicates that all combinations of client types and authentication methods in the table are supported. All client types can use any of the authentication methods to connect to Azure OpenAI Service using Service Connector.

Default environment variable names or application properties and sample code

Use the connection details below to connect compute services to Azure OpenAI Service. For more information about naming conventions, refer to Service Connector internals article.

System-assigned managed identity

Default environment variable name Description Sample value
AZURE_OPENAI_BASE Azure OpenAI Service endpoint https://<Azure-OpenAI-name>.openai.azure.com/

Sample code

Refer to the steps and code below to connect to Azure OpenAI Service using a system-assigned managed identity.

  1. Install dependencies.

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Identity
    
  2. Authenticate using Azure Identity library and get the Azure OpenAI endpoint from the environment variables added by Service Connector. When using the code below, uncomment the part of the code snippet for the authentication type you want to use.

    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
    );
    

User-assigned managed identity

Default environment variable name Description Sample value
AZURE_OPENAI_BASE Azure OpenAI Service Endpoint https://<Azure-OpenAI-name>.openai.azure.com/
AZURE_OPENAI_CLIENTID Your client ID <client-ID>

Sample code

Refer to the steps and code below to connect to Azure OpenAI Service using a user-assigned managed identity.

  1. Install dependencies.

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Identity
    
  2. Authenticate using Azure Identity library and get the Azure OpenAI endpoint from the environment variables added by Service Connector. When using the code below, uncomment the part of the code snippet for the authentication type you want to use.

    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
    );
    

Connection string

Default environment variable name Description Sample value
AZURE_OPENAI_BASE Azure OpenAI Service Endpoint https://<Azure-OpenAI-name>.openai.azure.com/
AZURE_OPENAI_KEY Azure OpenAI Service API key <api-key>

Sample Code

Refer to the steps and code below to connect to Azure OpenAI Service using a connection string.

  1. Install the following dependencies.

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Core --version 1.40.0
    
  2. Get the Azure OpenAI endpoint and API key from the environment variables added by Service Connector.

    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));
    

Service principal

Default environment variable name Description Sample value
AZURE_OPENAI_BASE Azure OpenAI Service Endpoint https://<Azure-OpenAI-name>.openai.azure.com/
AZURE_OPENAI_CLIENTID Your client ID <client-ID>
AZURE_OPENAI_CLIENTSECRET Your client secret <client-secret>
AZURE_OPENAI_TENANTID Your tenant ID <tenant-ID>

Sample code

Refer to the steps and code below to connect to Azure OpenAI Service using a service principaL.

  1. Install dependencies.

    dotnet add package Azure.AI.OpenAI --prerelease
    dotnet add package Azure.Identity
    
  2. Authenticate using Azure Identity library and get the Azure OpenAI endpoint from the environment variables added by Service Connector. When using the code below, uncomment the part of the code snippet for the authentication type you want to use.

    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
    );