Мы используем несколько LDAP в нашей компании, включая Azure AD для Office365, Google и OpenLDAP - внутренний.Azure AD: изменение пароля пользователя из пользовательского приложения
Мы работаем над каким-то независимым фронт-интерфейсом, где пользователи смогут изменять некоторые свои данные, включая пароль, любые изменения, сделанные пользователем, должны быть автоматически обновлены и реплицированы по всем 3 LDAP.
Я использую пользовательский скрипт Python для достижения этого, однако, испытывая проблему с Azure AD, он не позволяет мне изменять пароль.
Я могу просмотреть всех пользователей и их данные, однако не в состоянии изменить пароль. Когда я запрос аутентификации он ответит мне обратно с правами, которые были предоставлены в мое приложение:
scope = Directory.Read Directory.ReadWrite.All Directory.Write offline_access recipient.manage User.ReadWrite User.ReadWrite.All user_impersonation UserProfile.Read
Однако ответ от сервера:
{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."}}}
Так как я вижу «Directory.ReadWrite.All» Недостаточно, у меня также есть «UserProfile.Read», но не «UserProfile.Write» Я не нашел никаких настроек в конфигурации приложения, которые позволили бы мне получить доступ к этому
Это мои все разрешения на приложение:
немного кода Python:
graphusersurl = GRAPH_API_URL % (TENANT_ID, 'users/<User_ObjectID>', API_VER)
graphheaders={'Authorization': "%s %s" % (TOKEN_TYPE_VALUE, access_token),
'Content-Type': 'application/json',
}
passworddata = {
"passwordProfile":
{ "password":'<NEW_USER_PASSWORD>',
"forceChangePasswordNextLogin":False
}
}
Не могли бы вы сказать мне, пожалуйста, что я делаю неправильно? и как я могу получить разрешение на выполнение таких действий?