Я использую Microsoft graph
API для обновления пароля пользователя. У меня ниже json запрос:
{
"accountEnabled": true,
"userPrincipalName": "testuser34@mytenantname.onmicrosoft.com",
"passwordProfile": {
"forceChangePasswordNextSignIn": false,
"password": "<new_password>"
}
}
Я называю это url
https://graph.microsoft.com/v1.0/users/testuser34@mytenantname.onmicrosoft.com
, используя PATCH
метод. Я также передаю маркер носителя в качестве заголовка авторизации, но получаю ошибку ниже:
{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "12781f2a-0cdd-449d-94d7-aae1440a7559",
"date": "2020-04-03T02:52:57"
}
}
}
Ошибка говорит Insufficient privileges
. В соответствии с этой страницей Я следую, там написано:
When updating the passwordProfile property, the following permission is required: Directory.AccessAsUser.All.
Я проверил это в созданном приложении, и это разрешение есть при регистрации приложения
Но я все еще получаю эту ошибку. Может кто-нибудь, пожалуйста, помогите решить эту ошибку. Спасибо
Редактировать: также добавлено разрешение в Microsoft, но все еще появляется та же ошибка
РЕДАКТИРОВАТЬ 2:
Ниже приведен код, из которого я получаю токен:
data = {
"grant_type": "client_credentials",
"client_secret": <client_secret>,
"client_id": <client_id>,
"resource": "https://graph.microsoft.com"
}
r = requests.post("https://login.microsoftonline.com/<tennant_id>/oauth2/token", data)
if r.status_code == 200:
ret_body = r.json()
token = ret_body['access_token']
else:
log.error("Unable to get token from oauth {}, {}".format(r.status_code, r.json()))
Edit3:
Я также добавил имя приложения в администраторе пользователя:
Но проблема остается прежней.