我们在公司中使用了多个 LDAP,其中包括用于 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
}
}
你能告诉我我做错了什么吗?我怎样才能获得执行此类操作的授权?