.NET Aspire の Azure OpenAI Service インテグレーションで使用する資格情報を変える

2024/11/27に公開

.NET Aspire の Azure OpenAI Service インテグレーションで使用する資格情報は、デフォルトでは DefaultAzureCredential を使用します。
一般的には、これで困ることはありません。ローカルでも動いてクラウドでも動きます。

しかし、特定の環境でのみ使用する資格情報を変えたい場合もあるかもしれません。私の場合は Visual Studio 2022 の資格情報は使ってほしくないという事情があります。
Visual Studio 2022 でデバッグ実行をすると、Visual Studio 2022 の資格情報が使われてしまいます。これを避けるには AddAzureOpenAIClient メソッドの configureSettings 引数で構成を変更します。

コードとしては以下のようになります。

builder.AddAzureOpenAIClient("openai",
    // 使用するクレデンシャルを設定する
    configureSettings: settings => settings.Credential = new DefaultAzureCredential(options: new()
    {
        // Visual Studio 2022 の資格情報を使わない
        ExcludeVisualStudioCredential = true,
    }));

これでいい感じになりました。その他にも、以下のようにして開発環境だと Azure CLI で認証して本番は DefaultAzureCredential にするようにすることもできます。

builder.AddAzureOpenAIClient("openai",
    // 使用するクレデンシャルを設定する
    configureSettings: settings => 
        settings.Credential = builder.Environment.IsDevelopment() ?
            // 開発環境では Azure CLI で認証する
            new AzureCliCredential() :
            // 本番環境では Managed Identity で認証する
            new DefaultAzureCredential());

ここら辺はお好みで。

Microsoft (有志)

Discussion