你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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 中的 objectId
属性被 id
替代。
以下部分列出了命令参数和行为的中断性变更。
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
以设置keyCredential
的displayName
az ad app permission grant
- 删除了
--expires
--scope
不再默认为user_impersonation
,且它现在是必需的
az ad app credential reset
- 将
--credential-description
替换为--display-name
(https://github.com/Azure/azure-cli/issues/20561) - 删除
--password
。 如果不指定证书参数,则 Graph 服务将为你创建密码 (https://github.com/Azure/azure-cli/issues/20675)
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
- 此命令组现在针对服务主体而非应用程序运行 (https://github.com/Azure/azure-cli/issues/11458)
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 中查找示例。 - Microsoft Graph 相关命令(如
az ad
和az role
)在不支持 Microsoft Graph 的 Azure Stack 环境中会失败。 请在 Azure Stack 环境中使用 Azure CLI 2.36.0 或更低版本。
安装历史版本
如果尚未准备好进行迁移,例如缺少 Microsoft Graph 权限,可继续使用 <= 2.36.0 的 Azure CLI 版本。 如果已安装 2.37.0,可按照安装文档下的“安装特定版本”部分回滚到以前的版本(不支持安装历史版本的 Homebrew 除外)。
故障排除
Graph 命令失败,提示 AADSTS50005
或 AADSTS53000
你的租户可能有阻止使用设备代码流访问 Microsoft Graph 的条件访问策略。 在这种情况下,请改用授权代码流或服务主体登录。 有关登录方法的详细信息,请参阅使用 Azure CLI 登录。
Microsoft 租户 (72f988bf-86f1-41af-91ab-2d7cd011db47) 已配置此类条件访问策略。
更多信息
可以在 https://github.com/Azure/azure-cli/issues/22580 中找到有关 Microsoft Graph 迁移的详细信息。
提供反馈
如果有任何问题,请向 https://github.com/Azure/azure-cli/issues/22580 反馈或使用 az feedback
命令新建问题。