2017-07-27 30 views
0

我正在編寫一個後端應用程序,通過調用Microsoft Graph來更新Azure AD中的用戶。該應用程序授予權限Directory.ReadWrite.AllUser.ReadWrite.all無法修補Azure AD用戶的BusinessPhones,沒有足夠的權限來完成操作

當我發送修補程序請求以更新特定用戶的businessPhones時,如果businessPhones參數是空集合,即{"businessPhones":[]},則返回成功響應代碼204

如果參數不爲空,例如{"businessPhones":["+86 (321) 456789"]},則返回響應代碼403,並顯示消息「權限不足以完成操作」。

我試圖爲另一個用戶打補丁,沒有空白和非空businessPhones參數的問題。

我發現這SO questionDirectory.AccessAsUser.All是一個委託權限,這是不適用於我的應用程序。

任何幫助,將不勝感激。

+0

請檢查businessPhones的值是否與您要更新的特定用戶的當前businessPhones相同? –

+0

在我發送補丁請求之前,用戶的businessPhones爲空。我發送了一個非空業務電話,並返回403。 –

+0

我發現如果我修補全局或有限管理員的用戶的businessPhones,403和「沒有足夠的權限來完成操作」將被返回。但我仍然可以成功修補其他屬性,如userPrincipalName。如果我修補一般用戶的商業電話,那就沒有問題了。 –

回答

0

感謝您報告此Johnny。我們會去調查一下。一般來說,使用委派的權限,授權是基於應用程序已被授予的權限的交集的權限(基於用戶角色)登錄用戶具有的權限。這在這裏描述:https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#delegated-permissions-application-permissions-and-effective-permissions

登錄用戶的角色是什麼?如果他們是全局管理員,他們應該能夠更改任何其他用戶的信息。如果他們是一個有限的管理員(如用戶帳戶管理員),他們只能更改普通用戶的用戶配置文件信息(否則這將是一個特權提升,普通用戶只能更改他們自己的photomobilePhone號碼)

基於評論的更新:如果應用程序使用的是應用程序權限,那麼應用程序可以更新大多數屬性,但是您看到的行爲很奇怪,我們需要調查 - 我會回到該線程可能是一個bug

UPDATE 8/26這確實是一個bug現在已經部署了修復程序

希望這會有所幫助,

+0

謝謝你的回答。但是,我的應用程序是一個後臺服務,用於定期將我的用戶存儲庫同步到Azure AD。沒有登錄的用戶因此沒有委派權限。 情況是我的申請 1.可以更新一般用戶的'businessPhones' 2。可以更新一般用戶的'userPrincipalName'以及全局和有限管理員 3.但不能更新全局/有限管理員的'businessPhones' –

+0

已更新原始答案。感謝澄清。 –

相關問題