[英]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應用程序權限
看看這篇文章 。 好像它有相同的症狀。
解決方案1:
如果在調用僅包含讀取權限的API時收到此錯誤,則必須在Azure管理門戶中設置權限。
解決方案2:
如果在調用包含delete
或reset password
操作的API時收到此錯誤,那是因為這些操作需要Company Administrator
的管理員角色。 截至目前,您只能通過Azure AD Powershell模塊添加此角色。
使用Get-MsolServicePrincipal -AppPrincipalId查找服務主體
Get-MsolServicePrincipal | ft DisplayName, AppPrincipalId -AutoSize
使用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租戶,您需要一個本地管理員帳戶。 這篇博文應該有所幫助 ,請參閱“解決方案”部分。
嘗試以下設置,適合我。
使用以下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.