我们在公司使用多个LDAP,包括用于Office365,Google和OpenLDAP的Azure AD - 内部版本。
我们正在开发某种独立的前端Web界面,用户可以在其中更改部分数据,包括密码,用户所做的任何更改都应自动更新并在所有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"还不够,我也有#34; UserProfile.Read",但不是" UserProfile.Write" 我没有在App Configuration中找到任何可以让我访问的设置
这些是我的所有应用权限:
一些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
}
}
你能告诉我,我做错了吗?我如何获得授权执行此类行动?