如何在Azure Devops API中获取userId字段

问题描述

我必须使用此API:PATCH https://vsaex.dev.azure.com/{organisation}/_apis/userentitlements/{userId}来为组织中的所有用户提供对某些项目的读取权限。我能够成功调用此API,但是我不知道如何为用户获取正确的GUID。 (为获得正确的Guid用户,我使用了fiddler监视请求)。

使用此API时(GET https://vssps.dev.azure.com/{organisation}/_apis/graph/users?api-version=6.0-preview.1)我会获得组织中的所有用户,但是在列表中,没有userId,我只有originId,它是AAD的guid,而且我无法使用该信息更新用户

我也尝试使用描述符字段,但没有成功。有人有想法获取此特定的userId吗?

通过此API获得的用户列表示例:

{
    "count": 133,"value": [{
        "subjectKind": "user","MetaType": "member","directoryAlias": "COD0001","domain": "10a83eaa-05c5-4b22-a201-63cddba4fe8c","principalName": "[email protected]","mailAddress": "[email protected]","origin": "aad","originId": "7c3408d6-62f4-43ff-bdbe-5be97000ba30","displayName": "Personne bidon","_links": {
            "self": {
                "href": "https://vssps.dev.azure.com/BIDON/_apis/Graph/Users/aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx"
            },"memberships": {
                "href": "https://vssps.dev.azure.com/BIDON/_apis/Graph/Memberships/aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx"
            },"membershipState": {
                "href": "https://vssps.dev.azure.com/BIDON/_apis/Graph/MembershipStates/aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx"
            },"storageKey": {
                "href": "https://vssps.dev.azure.com/BIDON/_apis/Graph/StorageKeys/aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx"
            },"avatar": {
                "href": "https://dev.azure.com/BIDON/_apis/GraPHProfile/MemberAvatars/aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx"
            }
        },"url": "https://vssps.dev.azure.com/BIDON/_apis/Graph/Users/aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx","descriptor": "aad.ZDYzNzUwNzctNWJjYy03ZTkzLWIzZGUtMDEzNTdhM2JiMDIx"
    },...
    ]

}

解决方法

要获取ID,您应该使用User Entitlements - Search User Entitlements

GET https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=6.0-preview.3

然后您将得到类似的回复

"members": [
        {
            "id": "<YOUR ID HERE>","user": {
                "subjectKind": "user","metaType": "member","domain": "Windows Live ID",