在Azure AD上更新用户属性

时间:2019-08-01 13:10:32

标签: azure-devops azure-active-directory azure-ad-b2c azure-ad-graph-api azure-devops-rest-api

我正在使用Azure AD进行用户身份验证,并使用用户流进行注册和登录, 我们还有一些通过用户流程本身设置的自定义属性。 我正在尝试使用其访问令牌为用户更新这些自定义属性 现在,通读Azure广告文档,我遇到了Azure广告图API 但是该用户的访问令牌令牌无效(请求如下所示), 我假设我们在这里需要一些管理员令牌,但是根据需求,我们需要 使用用户访问令牌本身。

(PATCH) https://graph.windows.net/{myorganization}/users/{user_object_id}?api-version=1.6
Authorization: bearer --user access_token which we get after using the login user flow---

Request body:
{
   "someCustomAttribute": "some updated value"
}

Response:
{
"odata.error": {
    "code": "Authentication_ExpiredToken",
    "message": {
        "lang": "en",
        "value": "Your access token has expired. Please renew it before submitting the request."
    }
}

}

我确保令牌有效且未过期(使用护照进行了测试)。

2 个答案:

答案 0 :(得分:0)

针对B2C应用程序注册进行B2C用户身份验证。 B2C应用程序注册无法使用Graph API作为资源。

如果您希望用户能够修改其个人资料信息,请改用“个人资料编辑”用户流。

如果您作为管理员想管理用户属性,请在B2C租户内注册AAD应用程序注册并将其配置为访问AAD Graph API。使用客户端凭证流来获取令牌服务器端,以对B2C目录进行操作。

答案 1 :(得分:0)

您必须acquire an access token for the Azure AD Graph API using the Azure AD endpoint -不是Azure AD B2C终结点。

您可以使用任何Azure AD流-例如隐式授予,例如授权代码授予,客户凭证授予-为此。