5

J'essaie d'utiliser l'application Sample Graph API pour modifier le mot de passe d'un utilisateur, mais je reçois:Change Azure B2C AD Mot de passe de l'utilisateur avec l'API Graph

erreur appel de l'API graphique Réponse:

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

API graphique demande:

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 Fichier

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

Je l'ai testé la mise à jour displayName de l'utilisateur et qui fonctionne très bien.

{ 
    "displayName": "Joe Consumer" 
} 

Permissions Application AD

J'ai configuré my app permissions as described here.

AD App Permissions

+1

Pouvez-vous s'il vous plaît poster une corrélation ID + horodatage de cette erreur? –

+0

où est l'identifiant de corrélation? https://stackoverflow.com/questions/45593823/wheres-the-correlation-id-in-the-graph-api-response – spottedmahn

+0

Je l'ai ajouté. Merci de votre aide! @DanielDobalian – spottedmahn

Répondre

2

Check out this article. On dirait qu'il a les mêmes symptômes.

Solution 1:

Si vous recevez cette erreur lorsque vous appelez l'API qui inclut des autorisations en lecture seule, vous devez définir des autorisations dans le portail de gestion Azure.

  • Accédez à Azure Management Portal et cliquez sur Active Directory.
  • Sélectionnez votre répertoire AD personnalisé.
  • Cliquez sur Applications et sélectionnez votre application.
  • Cliquez sur CONFIGURER et faites défiler jusqu'à la section 'Autorisations vers d'autres applications'.
  • Fournissez les autorisations d'application et les autorisations déléguées requises pour Windows Azure Active Directory.
  • Enfin enregistrer les modifications.

Solution 2:

Si vous recevez cette erreur lorsque vous appelez l'API qui inclut les opérations delete ou reset password, c'est parce que ces opérations nécessitent le rôle d'administration de Company Administrator. A partir de maintenant, vous pouvez uniquement ajouter ce rôle via le Azure AD Powershell module.

  1. Trouvez le directeur de service à l'aide Get-MsolServicePrincipal -AppPrincipalId

    Get-MsolServicePrincipal | ft DisplayName, AppPrincipalId -AutoSize 
    
  2. Utilisez Add-MsolRoleMember pour l'ajouter à Company Administrator rôle

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

Pour vous connecter à votre B2C locataire via PowerShell vous aurez besoin d'un compte administrateur local. This blog post should help avec cela, voir la section "La solution".

create global admin

connect via powershell

get-msolservice principal screenshot

add role screenshot

+0

merci @Parakh! Je pense que la solution 1 est pour l'ancien portail. Veuillez confirmer. Je ne vois pas ces options dans portal.azure.com – spottedmahn

+0

nvm, j'ai confirmé, c'est pour l'ancien portail. J'ai déjà accordé 'read and write directory data' comme décrit ici: https://docs.microsoft.com/fr-fr/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet# configure-create-read-and-update-permissions-for-your-application – spottedmahn

+0

solution 2 était le correctif. – spottedmahn

0

Essayez paramètres ci-dessous, fonctionne pour moi.

enter image description here

A utilisé ci-dessous JSON

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

Aussi assurez-vous d'affecter l'application du compte d'utilisateur, le rôle d'administrateur qui lui permettra de supprimer des utilisateurs link here

+0

Êtes-vous sûr de pouvoir changer un mot de passe avec ces paramètres? avez-vous essayé de mettre à jour l'utilisateur avec le json ci-dessus? – spottedmahn

+0

vérifier le json dans la réponse –