Azure AD:从自定义应用程序更改用户密码

时间:2015-08-05 13:30:24

标签: python azure azure-active-directory change-password azure-ad-graph-api

我们在公司使用多个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中找到任何可以让我访问的设置

这些是我的所有应用权限:

Azure AD App Permission

一些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
        }
}

你能告诉我,我做错了吗?我如何获得授权执行此类行动?

0 个答案:

没有答案