簡體   English   中英

使用Graph API更改Azure AD B2C用戶密碼

[英]Change Azure AD B2C User Password with Graph API

我正在嘗試使用Sample Graph API應用程序來更改用戶的密碼,但我得到了:

調用Graph API響應時出錯:

{
  "odata.error": {
    "code": "Authorization_RequestDenied",
    "message": {
      "lang": "en",
      "value": "Insufficient privileges to complete the operation."
    }
  }
}

圖形API請求:

PATCH /mytenant.onmicrosoft.com/users/some-guid?api-version=1.6 HTTP/1.1
client-request-id: ffd564d3-d716-480f-a66c-07b02b0e32ab
date-time-utc: 2017.08.10 03:04 PM

JSON文件

{
    "passwordProfile": {
        "password": "Somepassword1$",
        "forceChangePasswordNextLogin": false
    }
}

我已經測試過更新用戶的displayName ,並且工作正常。

{
    "displayName": "Joe Consumer"
}

AD應用程序權限

按照此處的說明配置了我的應用權限。

AD App權限

看看這篇文章 好像它有相同的症狀。

解決方案1:

如果在調用僅包含讀取權限的API時收到此錯誤,則必須在Azure管理門戶中設置權限。

  • 轉到Azure管理門戶,然后單擊“Active Directory”。
  • 選擇自定義AD目錄。
  • 單擊Applications並選擇您的應用程序。
  • 單擊配置並向下滾動到“其他應用程序的權限”部分。
  • 為Windows Azure Active Directory提供所需的應用程序權限和委派權限。
  • 最后保存更改。

解決方案2:

如果在調用包含deletereset password操作的API時收到此錯誤,那是因為這些操作需要Company Administrator的管理員角色。 截至目前,您只能通過Azure AD Powershell模塊添加此角色。

  1. 使用Get-MsolServicePrincipal -AppPrincipalId查找服務主體

     Get-MsolServicePrincipal | ft DisplayName, AppPrincipalId -AutoSize 
  2. 使用Add-MsolRoleMember將其添加到Company Administrator角色

     $clientIdApp = 'your-app-id' $webApp = Get-MsolServicePrincipal –AppPrincipalId $clientIdApp Add-MsolRoleMember -RoleName "Company Administrator" -RoleMemberType ServicePrincipal -RoleMemberObjectId $webApp.ObjectId 

要通過PowerShell連接到您的B2C租戶,您需要一個本地管理員帳戶。 這篇博文應該有所幫助 ,請參閱“解決方案”部分。

創建全局管理員

通過powershell連接

get-msolservice主要截圖

添加角色截圖

嘗試以下設置,適合我。

在此輸入圖像描述

使用以下JSON

 {
  "accountEnabled": true,
  "signInNames": [
    {
      "type": "emailAddress",
      "value": "kart.kala1@test.com"
    }
  ],
  "creationType": "LocalAccount",
  "displayName": "Joe Consumer",
  "mailNickname": "joec",
  "passwordProfile": {
    "password": "P@$$word!",
    "forceChangePasswordNextLogin": false
  },
  "passwordPolicies": "DisablePasswordExpiration",
  "givenName": "Joe",
}

另外,請確保為應用程序分配用戶帳戶,管理員角色,以便在此處刪除用戶鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM