我試圖將Microsoft Graph API與App Authentication配合使用將Office365許可證分配給新創建的用戶。我的應用程序具有應用程序權限「Directory.Read.All」和「User.ReadWrite.All」。我可以成功創建(POST/users)和刪除(DELETE/users/$ id)用戶,並且我可以獲得訂閱列表(GET/subscribedSkus)。但是,如果我嘗試分配的許可證,獲得帶有403響應:圖API API assignLicense:沒有足夠的權限來完成操作
https://graph.microsoft.com/v1.0/users/ $ UPN/assignLicense
{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "...",
"date": "..."
}
}
但是根據Graph API documentation應用程序許可「User.ReadWrite.All」應該是sufficent 。我請求體看起來如下:
{
"addLicenses": [
{
"disabledPlans": [],
"skuId": "..."
}
],
"removeLicenses": []
}
任何想法,爲什麼「User.ReadWrite.All」任何權限不sufficent,儘管圖形API文檔,否則說?
看來您必須爲應用程序對象分配管理員角色(例如全局管理員或用戶帳戶管理員)。我還沒有測試過。 – phatoni
它可以與Directory.ReadWrite.All一起使用嗎?因爲這是在這裏提到的唯一權限https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference,它允許您管理許可證......所以也許在assignLicense文檔中有一個錯誤,或在API本身... – andresm53
好點,我會嘗試Directory.ReadWrite.All。我只想提供所需的最小權限集合,因此使用User.ReadWrite.All,但由於我即將分配全局管理員角色,因此無關緊要。 – phatoni