Azure CLI 中Microsoft Graph 移轉的影響
由於 Azure Active Directory (Azure AD) Graph 已淘汰,基礎 Active Directory 圖形 API 會取代為 Azure CLI 2.37.0 中的 Microsoft Graph API 。
重大變更
如需基礎 API 和輸出 JSON 中斷性變更的差異,請參閱 Azure AD Graph 與 Microsoft Graph 之間的屬性差異。
例如,最突出的變更是 id
取代了在 Graph 物件的輸出 JSON 中的 objectId
屬性。
命令自變數和行為中斷性變更會列在下一節中。
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
已知問題
- 關於泛型更新自變數,唯一支援的作業是在
--set
Graph 物件的根層級上。 由於基礎結構變更,目前在子層級上使用--add
或--remove
--set
無法運作。 針對不支援的案例,您可以使用az rest
直接呼叫 Microsoft Graph API。 您可以在 中找到 https://github.com/Azure/azure-cli/issues/22580範例。 - 在不支援 Microsoft Graph 的 Azure Stack 環境中,Microsoft Graph 相關命令(例如
az ad
和az role
)會失敗。 針對 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)已設定這類條件存取政策。
其他相關資訊
您可以在https://github.com/Azure/azure-cli/issues/22580找到 Microsoft Graph 遷移的詳細資訊。
提供意見反應
如果您有任何問題,請回覆 https://github.com/Azure/azure-cli/issues/22580 或使用 az feedback
命令建立新問題。