5

私は、ユーザーのパスワードを変更するSample Graph APIアプリを使用しようとしているが、私は取得しています:変更のAzure ADのB2Cユーザーパスワード

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

エラーがグラフAPIレスポンスを呼び出します

グラフ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 

JSO N Iは、更新テストしてみた

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

ファイル、ユーザーのdisplayName、それが正常に動作します。

{ 
    "displayName": "Joe Consumer" 
} 

ADアプリケーションの権限

私は

AD App Permissions

+1

を削除することができます管理者の役割を使用すると、相関を投稿してくださいすることができ、あなたがアプリケーションにユーザーアカウントを割り当てることを確認してくださいこのエラーのID +タイムスタンプ? –

+0

相関IDはどこですか? https://stackoverflow.com/questions/45593823/wheres-the-correlation-id-in-the-graph-api-response – spottedmahn

+0

私はそれを追加しました。ご協力いただきありがとうございます! @DanielDobalian – spottedmahn

答えて

2

チェックアウトthis articlemy app permissions as described here.を設定しました。同じ症状のようです。

解決方法1:

あなただけの読み取り権限を、あなたはAzureの管理ポータルにアクセス権を設定する必要が含まれてAPIを呼び出すときには、このエラーを受信して​​いる場合。

  • Azure Management Portalにアクセスし、Active Directoryをクリックします。
  • カスタムADディレクトリを選択します。
  • アプリケーションをクリックし、アプリケーションを選択します。
  • [構成]をクリックし、[他のアプリケーションへのアクセス許可]セクションまでスクロールします。
  • Windows Azure Active Directoryに必要なアプリケーションのアクセス許可と委任されたアクセス許可を提供します。
  • 最後に変更を保存します。

解決方法2:

あなたはこれらの操作はCompany Administratorの管理者の役割が必要なため、つまり、deleteまたはreset password操作が含まAPIを呼び出すときに、このエラーを受信して​​いる場合。現時点では、この役割はAzure AD Powershell moduleでのみ追加できます。

  1. は、Get-MsolServicePrincipalを使用してサービスプリンシパルは

    Get-MsolServicePrincipal | ft DisplayName, AppPrincipalId -AutoSize 
    
  2. 使用アドインMsolRoleMemberをあなたのB2Cに接続するにはCompany Administrator役割

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

に追加し-AppPrincipalId検索テナントにはPowerShellを使用してローカル管理者アカウントが必要です。 This blog post should helpを参照してください。「解決策」を参照してください。

create global admin

connect via powershell

get-msolservice principal screenshot

add role screenshot

+0

感謝@パハク!私はソリューション1は古いポータルのためのものだと思っています。ご確認ください。私はportal.azure.comのこれらのオプションを見ていません – spottedmahn

+0

nvm、これは古いポータル向けのものです。私はすでにここに記載されているように「ディレクトリデータの読み書き」を許可しています:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet#アプリケーション用のconfigure-create-read-and-update-permissions-permissions – spottedmahn

+0

ソリューション2が修正されました。 – spottedmahn

0

私の作品、設定の下に試してみてください。 JSON

{ 
    "accountEnabled": true, 
    "signInNames": [ 
    { 
     "type": "emailAddress", 
     "value": "[email protected]" 
    } 
    ], 
    "creationType": "LocalAccount", 
    "displayName": "Joe Consumer", 
    "mailNickname": "joec", 
    "passwordProfile": { 
    "password": "[email protected]$$word!", 
    "forceChangePasswordNextLogin": false 
    }, 
    "passwordPolicies": "DisablePasswordExpiration", 
    "givenName": "Joe", 
} 

以下で使用

enter image description here

また、それがユーザーにlink here

+0

これらの設定でパスワードを変更することはできますか?あなたは上記のjsonを使ってユーザーを更新しようとしましたか? – spottedmahn

+0

答えのjsonを確認する –