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

问题描述 投票:0回答:3

我必须使用此 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"
    },
    ...
    ]

}

azure azure-devops azure-pipelines azure-devops-rest-api
3个回答
7
投票

要获取 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",

1
投票

另一种选择是使用 az cli。

1 - 如果未安装 az cli 扩展,首先需要安装它。

az extension list-available --output table | grep devops
az extension add --name azure-devops

2 - 根据需要配置组织

az devops configure --defaults organization=https://dev.azure.com/myorganization

3 - 也许您需要登录并插入 de devops PAT 令牌(粘贴)

az devops login
token:

4 - 如果需要显示超过 200 个用户,请使用带有选项 --top 的 de 命令用户列表

az devops user list --top 15000 

5 - 使用带有 grep 命令的管道来过滤或将其发送到文件以查找您想要查找的用户。

az devops user list --top 15000 > devops-users.txt
az devops user list --top 5000 | grep [email protected]

6 - 你想要的字段是 id:

  "id": "a69fdd3c-yyyyy-6fa6-90ba-xxxxxx",

如果你有权限,你也可以使用命令 az devops user show

az devops user show --user [email protected]

文件:

安装 az cli 扩展

az devops 用户


0
投票

使用此api获取组织中所有用户的信息。 获取 https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=5.1-preview.2

如果你想通过 Id 获取特定用户,请使用此 api 获取 https://vsaex.dev.azure.com/{organization}/_apis/userentitlements/{userId}?api-version=5.1-preview.2

通过使用这些 api,您可以从对象 ID 中获取用户详细信息

© www.soinside.com 2019 - 2024. All rights reserved.