Closed6

Azure AI Foundry への認証方法について考える(TypeScript利用)

tenkeitenkei

概要

TypeScriptで開発しているバックエンドのアプリケーションから、Azure AI Foundry に接続したい。具体的には Azure AI Foundry のエージェント機能を使いたい。
そのためにはいくつかのパッケージをインストールして、Azure の認証状態を作る必要がある。その方法について考える。
※筆者はAzure初心者です

tenkeitenkei

必要なパッケージ

まず、こちらが Azure AI Foundry のプレイグラウンドで表示されるサンプルコード。一部を抜粋。

import { AIProjectsClient } from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";

const client = AIProjectsClient.fromConnectionString(
  "ここに接続文字列",
  new DefaultAzureCredential()
);

@azure/ai-projects@azure/identity の2つのパッケージが必要そう。

tenkeitenkei

キー認証は使えないっぽい

自分たちのアプリケーションでは、今までキーによる認証を行っていた。以下のような感じ。

import {
    AzureKeyCredential,
    SearchClient,
} from '@azure/search-documents';
import env from 'env';

export const searchClient = new SearchClient(
    "ここにエンドポイントURL",
    "ここにインデックス名",
    new AzureKeyCredential(env.AZURE_API_KEY),
);

しかし、今回利用する @azure/ai-projects パッケージでは、この AzureKeyCredential を使った認証に対応していない。

tenkeitenkei

どの認証方法を使うべきか

それでは、9通りの認証方法のうち、どれを使うべきか。

以下、ChatGPTに要約してもらったもの。

No. 認証名 説明 主な用途
1 EnvironmentCredential 環境変数からクライアントID / シークレットを取得して認証。 CI/CD・本番環境・Service Principal
2 WorkloadIdentityCredential AKS上で Azure Workload Identity を使って認証。 AKSでのPod単位の認証
3 ManagedIdentityCredential Azure VM / App Service などのマネージドIDで認証。 本番環境・Azureホスティング環境
4 SharedTokenCacheCredential Microsoftアカウントのトークンキャッシュから認証情報を取得。 MS365/Officeと連携するローカルアプリ
5 VisualStudioCredential Visual Studio にログイン済みのアカウント情報を使用。 Windows + Visual Studio開発環境
6 AzurePowerShellCredential PowerShell の Connect-AzAccount の認証情報を使用。 PowerShellスクリプトの自動化
7 AzureCliCredential az login によるCLIログイン情報を使用。 ローカル開発・CLIベースの開発
8 AzureDeveloperCliCredential azd auth login の認証情報を使用(Azure Developer CLI)。 Dev CLIを使ったIaCやアプリ展開
9 InteractiveBrowserCredential ブラウザでの対話ログインで認証。 ローカル検証・一時的な手動認証
tenkeitenkei

どの認証方法が良いのか

以下の3つの認証方法がいいかなと思った。

EnvironmentCredential(ローカル環境、CI/CD環境)、AzureCliCredential(ローカル環境)、ManagedIdentityCredential(本番環境)

本番環境を Azure 以外でホスティングしているなら、本番環境の認証はまた別のものになるかも。

このスクラップは3ヶ月前にクローズされました