Azure DevOps - 通过 API 更新用户配置文件

4
我正在尝试使用Azure DevOps REST API和Azure Active Directory的最高权限,对一堆用户配置文件(displayName、mail等)进行批量更新,而无需使用用户凭据。由于DevOps与AAD不同步,因此看起来用户的更新方法只能将用户映射到新标识。目前为止,我尝试过以下方法:
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);
 }

API响应返回200状态码,但实际显示名称未更新。
如何使用Azure DevOps Rest API更新用户的显示名称?

据我所见,这个API似乎无法实现你所寻求的功能。 - arlan schouwstra
更新:我再次检查并发现了一些内容,请在此页面上搜索 vso.identity_manage,希望能对您有所帮助。 - arlan schouwstra
谢谢,但我已经研究过了。就我所知,我只能为当前用户执行API调用。我想执行批量操作(我在问题中没有指出),而不需要访问用户凭据,而是使用AAD和DevOps中的最高权限。 - Stefan Kürzeder
1个回答

0

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

enter image description here

这是请求:

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 通过 Graph API 更新用户配置文件。

PATCH /users/{id | userPrincipalName}

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

希望能有所帮助。


谢谢。但是第一部分与上述问题相同,我想在没有用户凭据的情况下执行批量操作,这一点我在我的问题中忘记指出了。问题的第二部分是,我想要解决的,就是DevOps与Active Directory不同步的问题。 - Stefan Kürzeder
我认为没有任何公共API可用于更新Azure DevOps配置文件,因为预计它将从Azure AD中流动。 - Mohit Verma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接