For the English version, see entra-app-setup.md.
このガイドでは、AzureSREAgentDemoLab Container Apps API用のEntra IDアプリケーション登録を作成し、azd環境に設定する手順を説明します。
- Azure CLIがインストールされていること
- 適切なAzureサブスクリプションにログインしていること
- Microsoft Graph拡張機能を使用する権限があること(またはCLI方法を使用)
# 環境名を設定
$envName = "dev"
$appName = "<your-entra-app-name>"
# リソースグループを作成(まだ存在しない場合)
az group create --name "rg-entra-apps" --location "westus3"
# Entra IDアプリケーション登録を作成
az deployment group create `
--resource-group "rg-entra-apps" `
--name "entra-app" `
--template-file "infra/modules/entra-app.bicep" `
--parameters appDisplayName=$appName `
--query "properties.outputs"デプロイが完了したら、以下の値を記録します:
# デプロイ結果から値を取得
$deploymentOutput = az deployment group show `
--resource-group "rg-entra-apps" `
--name "entra-app" `
--query "properties.outputs" `
-o json | ConvertFrom-Json
$clientId = $deploymentOutput.applicationId.value
$audience = $deploymentOutput.identifierUri.value
# テナントIDを取得
$tenantId = az account show --query tenantId -o tsv
Write-Host "ENTRA_TENANT_ID: $tenantId"
Write-Host "ENTRA_CLIENT_ID: $clientId"
Write-Host "ENTRA_AUDIENCE: $audience"# 環境名を設定
$envName = "dev"
$appName = "<your-entra-app-name>"
# アプリケーション登録を作成
$app = az ad app create `
--display-name $appName `
--sign-in-audience "AzureADMyOrg" `
--query "{appId:appId,objectId:id}" `
-o json | ConvertFrom-Json
$clientId = $app.appId
$objectId = $app.objectId
Write-Host "Application (Client) ID: $clientId"
Write-Host "Object ID: $objectId"# App ID URIを設定
$audience = "api://$clientId"
az ad app update `
--id $objectId `
--identifier-uris $audience
Write-Host "Audience (App ID URI): $audience"# OAuth2スコープを定義
$scopeId = [guid]::NewGuid().ToString()
$scopes = @{
oauth2PermissionScopes = @(
@{
id = $scopeId
adminConsentDisplayName = "Access API as user"
adminConsentDescription = "Allows the app to access the API on behalf of the signed-in user"
userConsentDisplayName = "Access API as you"
userConsentDescription = "Allows the app to access the API on your behalf"
value = "access_as_user"
type = "User"
isEnabled = $true
}
)
}
# スコープを追加
$scopesJson = $scopes | ConvertTo-Json -Depth 10
az ad app update --id $objectId --set api="$scopesJson"# サービスプリンシパル (Enterprise Application) を作成
az ad sp create --id $clientId
Write-Host "Service Principal created successfully"# テナントIDを取得
$tenantId = az account show --query tenantId -o tsv
Write-Host "ENTRA_TENANT_ID: $tenantId"
Write-Host "ENTRA_CLIENT_ID: $clientId"
Write-Host "ENTRA_AUDIENCE: $audience"# プロジェクトのルートディレクトリに移動
cd <repo-root>
# dev環境を作成
azd env new dev -l westus3# 上記で取得した値を設定
azd env set ENTRA_TENANT_ID $tenantId
azd env set ENTRA_CLIENT_ID $clientId
azd env set ENTRA_AUDIENCE $audience# 設定された環境変数を確認
azd env get-values期待される出力:
AZURE_ENV_NAME="dev"
AZURE_LOCATION="westus3"
ENTRA_AUDIENCE="api://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
ENTRA_CLIENT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
ENTRA_TENANT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
環境設定が完了したら、以下のコマンドで検証とデプロイを実行できます:
# Bicepテンプレートのプレビュー検証
azd provision --preview# インフラストラクチャとアプリケーションをデプロイ
azd upまたは個別に:
# インフラストラクチャのみプロビジョニング
azd provision
# アプリケーションのみデプロイ
azd deployMicrosoft Graph拡張を使用したBicepデプロイには、Azure AD管理者権限が必要です。 権限がない場合は、方法2 (Azure CLI) を使用してください。
サービスプリンシパルが作成されていない可能性があります:
az ad sp create --id <clientId>.azure/dev/.envファイルを直接確認してください:
Get-Content .azure\dev\.env