有没有一种方法可以使用rest api在特定的Azure Devops项目中获得用户权限?

时间:2019-09-25 04:48:09

标签: azure permissions azure-devops azure-devops-rest-api

嗨,我想检查特定Azure Devops项目中用户的权限。有没有办法得到它?据我所知,项目级别的权限不同于组织级别的权限。谢谢。

已经测试了一些其他的api,但是我仍然没有项目级别的权限。

1 个答案:

答案 0 :(得分:1)

当前没有在项目中获得用户许可的现成的rest api。

要实现此需求,您可以使用以下rest api:

https://dev.azure.com/{org}/_apis/Contribution/HierarchyQuery?api-version=5.0-preview.1

请求正文:

{
    "contributionIds": ["ms.vss-admin-web.org-admin-permissions-pivot-data-provider"],
    "dataProviderContext": {
        "properties": {
            "subjectDescriptor": "msa.ZjE1ZTk0NmMtOTI4OS03Mjg5LTljMGUtMDIwMTdlYmM2Nzhj",
            "sourcePage": {
                "url": "https://dev.azure.com/xxx/xxxx/_settings/permissions",
                "routeId": "ms.vss-admin-web.project-admin-hub-route",
                "routeValues": {
                    "action": "Execute",
                    "adminPivot": "permissions",
                    "controller": "ContributedPage",
                    "project": "XXX",
                    "serviceHost": "0933e8b2-f504-4b7e-9e9e-xxxxx (xxx)"
                }
            }
        }
    }
} 

您可以通过在浏览器中按F12然后选择Network来跟踪此rest api,然后查找响应正文包含返回的权限的记录。从此记录中,您可以获得其余的api和请求正文。 enter image description here

我用postman进行了测试,使用此api可以成功获得项目中用户的许可。如下所示: enter image description here