Azure CLI での Microsoft Graph 移行の影響

Azure Active Directory (Azure AD) Graph の廃止に伴い、Azure CLI 2.37.0 で、基になる Active Directory Graph API は Microsoft Graph API に置き換えられます。

破壊的変更

基になる API と出力 JSON の破壊的変更の違いについては、「Azure AD Graph と Microsoft Graph のプロパティの違い」を参照してください。

たとえば、最も顕著な変更は、Graph オブジェクトの出力 JSON の idobjectId プロパティに置き換えられたことです。

コマンド引数と動作の破壊的変更を次のセクションに示します。

az ad app create/update

  • --reply-urls--web-redirect-uris--public-client-redirect-uris に分割します
  • --homepage--web-home-page-url に置き換えます。
  • --available-to-other-tenants--sign-in-audience に置き換えます。
  • --native-app--is-fallback-public-client に置き換えます。
  • --oauth2-allow-implicit-flow--enable-access-token-issuance に置き換えます。
  • --enable-id-token-issuance をセット web/implicitGrantSettings/enableIdTokenIssuance に追加 します
  • --password および --credential-description を削除します。 az ad app credential reset を使用すると、Graph サービスによってパスワードが作成されます (https://github.com/Azure/azure-cli/issues/20675)
  • --key-display-name をセット keyCredentialdisplayName に追加します

az ad app permission grant

  • --expires を削除します
  • --scope の既定値は user_impersonation ではなくなり、必須になりました

az ad app credential reset

az ad sp delete

  • このコマンドを実行しても、対応するアプリケーションは削除されなくなりました。 アプリケーションを明示的に削除するには、az ad app delete を使用します (https://github.com/Azure/azure-cli/issues/8467)
  • このコマンドを実行しても、サービスプリンシパルの対応するロール割り当ては削除されなくなりました。 ロールの割り当てを明示的に削除するには、az role assignment delete を使用します (https://github.com/Azure/azure-cli/issues/20805)

az ad sp credential

az ad sp credential reset

  • --name--id に置き換えます。
  • --password を削除します。 証明書の引数を指定しなくても、Graph サービスによってパスワードが作成されます (https://github.com/Azure/azure-cli/issues/20675)

az ad user create

  • --force-change-password-next-login--force-change-password-next-sign-in に置き換えます。

az ad user update

  • --force-change-password-next-login--force-change-password-next-sign-in に置き換えます。

az ad group get-member-groups

  • --additional-properties を削除します

az ad group member add

  • --additional-properties を削除します

既知の問題

  • 汎用更新引数に関しては、Graph オブジェクトのルート レベルでの --set のみがサポートされている操作です。 基になるインフラストラクチャの変更が原因で、現在、サブレベルで --add--remove または --set を使用しても機能しません。 サポートされていないシナリオでは、az rest を使用して、Microsoft Graph API を直接呼び出すことができます。 https://github.com/Azure/azure-cli/issues/22580 に例があります。
  • az ad および az role のような Microsoft Graph 関連コマンドは、Microsoft Graph のサポートがない Azure Stack 環境では失敗します。 Azure Stack 環境では、Azure CLI 2.36.0 以前のバージョンを使用してください。

以前のバージョンをインストールする

Microsoft Graph のアクセス許可がないなど、移行の準備がまだ整っていない場合は、Azure CLI バージョン <= 2.36.0 を引き続き使用できます。 既に 2.37.0 をインストールしている場合は、インストール ドキュメントの「特定のバージョンをインストールする」のセクションに従って以前のバージョンにロールバックできます (以前のバージョンのインストールをサポートしていない Homebrew を除きます)。

トラブルシューティング

Graph コマンドが AADSTS50005 または AADSTS53000 で失敗する

テナントには、デバイス コード フローを使用して Microsoft Graph にアクセスすることをブロックする条件付きアクセス ポリシーが含まれる場合があります。 このような場合は、代わりに認可コード フローまたはサービス プリンシパルを使用してサインインします。 サインイン方法の詳細については、「Azure CLI を使用してサインインする」を参照してください。

Microsoft テナント (72f988bf-86f1-41af-91ab-2d7cd011db47) には、このような条件付きアクセス ポリシーが構成されています。

詳細情報

Microsoft Graph の移行に関する詳細については、https://github.com/Azure/azure-cli/issues/22580 を参照してください。

フィードバックを送る

ご質問がある場合は、https://github.com/Azure/azure-cli/issues/22580 に返信するか、az feedback コマンドを使用して新しい issue を作成してください。