簡體   English   中英

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

[英]How to get the userId field in Azure Devops API

我必須使用此 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": "bidon.person@example.com",
        "mailAddress": "bidon.person@example.com",
        "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",

另一種選擇是使用 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 myemail@mycompany.com

6 - 你想要的字段是 id:

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

如果您有權限,您也可以使用 de 命令 az devops user show

az devops user show --user myemail@mycompany.com

文件:

安裝 az cli 擴展

az devops 用戶

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM