次の方法で共有


キーなしで Azure OpenAI を使用する

ほとんどの Azure サービスに対するアプリケーション要求は、キーまたはパスワードレス接続で認証する必要があります。 開発者は、安全でない場所にアクセス・キーを公開しないよう注意する必要があります。 このキーへのアクセス権を取得したユーザーは誰でもサービスの認証を受けることができます。 キーレス認証の場合、キー (または接続文字列) を保存する必要がないため、アカウント キーよりも管理とセキュリティの面で利点があります。

キーレス接続を有効にするには、次の手順を実行します。

  • 認証を構成します。
  • 必要に応じて、環境変数を設定します。
  • Azure Identity ライブラリの資格情報の種類を使用して、Azure OpenAI クライアント オブジェクトを作成します。

認証

Azure クライアント ライブラリを使用するには、Microsoft Entra ID での認証が必要です。

認証は、アプリが実行されている環境によって異なります。

Azure OpenAI キーレス構成要素

次のリンクを使用して、Azure OpenAI キーレス Building Block AI テンプレートを確認します。 このテンプレートは、OpenAI API SDK にアクセスするためのキーレス (Microsoft Entra) 認証のユーザー アカウント RBAC ロールアクセス許可を持つ Azure OpenAI アカウントをプロビジョニングします。

Note

この記事では、記事内の例とガイダンスの土台として、1 つ以上の AI アプリ テンプレートを使用しています。 AI アプリ テンプレートは、適切にメンテナンスされ、デプロイが容易なリファレンス実装を提供します。これは、高品質な AI アプリの作成を開始するために役立ちます。

ローカル開発用の認証

ローカル開発時に認証用のツールを選択します。

Azure によってホストされる環境の認証

Azure にデプロイされたアプリケーションで DefaultAzureCredential を管理する方法について説明します。

承認用のロールを構成する

  1. Azure OpenAI を使用するためのロールを見つけます。 そのロールを設定する方法に応じて、名前または ID が必要です。

    ロール名 Role ID
    Azure CLI または Azure PowerShell の場合、ロール名を使用できます。 Bicep の場合、ロール ID が必要です。
  2. 次の表を使用してロールと ID を選択します。

    ユース ケース ロール名 Role ID
    アシスタント Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    チャット入力候補 Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. 使用する ID の種類を選択します。

    • 個人 ID: これは、Azure へのサインインに関連付けられている個人 ID です。
    • マネージド ID: これは、Azure で使用するために管理および作成される ID です。 [マネージド ID] で、ユーザー割り当てマネージド ID を作成します。 マネージド ID を作成する場合、app ID とも呼ばれる Client ID が必要です。
  4. 個人 ID を見つけるには、以下のいずれかのコマンドを使用します。 次のステップでは ID <identity-id> を使用します。

    ローカル開発では、独自の ID を取得するには、以下のコマンドを使用します。 このコマンドを使用する前に、az login を使用してサインインする必要があります。

    az ad signed-in-user show \
        --query id -o tsv
    
  5. リソース グループの ID にロール ベースのアクセス制御 (RBAC) ロールを割り当てます。

    RBAC を使用してリソースに ID アクセス許可を付与するには、Azure CLI コマンド az role assignment create を使用してロールを割り当てます。

    az role assignment create \
        --role "Cognitive Services OpenAI User" \
        --assignee "<identity-id>" \
        --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
    

    該当する場合、<identity-id><subscription-id><resource-group-name> を実際の値に置き換えます。

環境変数を構成する

Azure OpenAI に接続するには、コードがリソース エンドポイントを認識している必要があり、他の環境変数が必要です。

  1. Azure OpenAI エンドポイントの環境変数を作成します。

    • AZURE_OPENAI_ENDPOINT: この URL は、Azure OpenAI リソースのアクセス ポイントです。
  2. アプリが実行されている場所に基づいて環境変数を作成します。

    Location ID 説明
    ローカル 個人用 個人 ID を持つローカル ランタイムの場合、サインインして、ツールを使用して資格情報を作成します。
    Azure クラウド ユーザー割り当てマネージド ID 認証対象のユーザー割り当てマネージド ID のクライアント ID を含む AZURE_CLIENT_ID 環境変数を作成します。

Azure ID クライアント ライブラリのインストール

Azure Identity クライアント ライブラリをインストールするには、次のリンクを使用します。

.NET Azure ID クライアント ライブラリをインストールします。

dotnet add package Azure.Identity

DefaultAzureCredential の使用

Azure Identity ライブラリの DefaultAzureCredential を使用すると、お客様はローカル開発環境と Azure Cloud で同じコードを実行できます。

.NET 用の DefaultAzureCredential について詳しくは、「.NET 用 Azure ID クライアント ライブラリ」をご覧ください。

using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");

OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());

リソース