Azure CLI で Azure AD アプリケーションを作成して既定のスコープを削除する
Azure CLI でアプリ登録すると既定で user_impersonation っていうスコープが作成されるけど使わないので消したい。
# Azure にログイン az login # アプリの新規登録 $app = az ad app create --display-name "DeleteScopeApp" # アプリケーションIDを取得 $appId = ($app | ConvertFrom-Json).appId # スコープを取得 $oauth2Permissions = ($app | ConvertFrom-Json).oauth2Permissions # 既定のスコープを無効に設定する(有効だと削除できないため) $oauth2Permissions[0].isEnabled = $false # 変更したオブジェクトを JSON 形式に変換する $oauth2Permissions = ConvertTo-Json -InputObject @($oauth2Permissions) # JSON をファイルに出力する $oauth2Permissions | Out-File -FilePath .\oauth2Permissions.json # 無効化を実行する az ad app update --id $appId --set oauth2Permissions=`@oauth2Permissions.json # 削除を実行する az ad app update --id $appId --set oauth2Permissions="[]" # 不要なファイルを削除する Remove-Item -Path .\oauth2Permissions.json
何故かは良くわからないのだけど設定用の JSON はファイルに書き出さないとうまくいかなかった。公式には以下の記載があるが Windows だとうまくいかない?
###Remove api permissions: disable default exposed scope first default_scope=$(az ad app show --id $clientid | jq '.oauth2Permissions[0].isEnabled = false' | jq -r '.oauth2Permissions') az ad app update --id $clientid --set oauth2Permissions="$default_scope" az ad app update --id $clientid --set oauth2Permissions="[]"
こちらのサイトを参考にしました。
これに関しては Azure AD モジュールを使った方がよいのかも。