首页 > 解决方案 > Azure DevOps - 通过 Api 更新用户配置文件

问题描述

我正在尝试对一堆用户配置文件(显示名称、邮件等)执行批量更新,而不需要用户凭据,而是通过 Azure DevOps REST API 在 Azure Active Directory 和 DevOps 中拥有最高权限。由于 DevOps 与 AAD 不同步。

看起来用户的 Update 方法只能将用户映射到新的身份

这是我到目前为止所尝试的:

private Task<HttpResponseMessage> PatchVstsUser(vssps.dev.azure.com.VstsUser user)
{

    var patchUser = new
    {
        displayName = user.Name,
        mailAddress = user.Mail,
        originId = user.AadId
    };

    return _devOpsGraphApi.PatchAsync($"users/{user.GraphDescriptor}?api-version=5.1-preview.1", patchUser);
 }

带有 200 响应代码但实际显示名称的 API 响应未更新。

如何使用 Azure DevOps Rest API 更新例如用户的显示名称?

标签: c#azureazure-devops

解决方案


从网络选项卡中,我能够在 Azure devops 中获取更新用户的 api。

在此处输入图像描述

这是请求:

Request URL: https://####.###.azure.com/_apis/User/User
Request Method: PATCH
Status Code: 200 
Remote Address: ##.###.#.###:###
Referrer Policy: no-referrer-when-downgrade

同样,您可以为您的组织获取它。

请注意,它不是更新用户的推荐方式。假设您的 azure devops 帐户已标记到 Azure Active Directory,因此您应该能够使用以下 url 使用图形 API 来更新用户配置文件。

PATCH /users/{id | userPrincipalName}

https://docs.microsoft.com/en-us/graph/api/user-update?view=graph-rest-1.0&tabs=cs

希望能帮助到你。


推荐阅读