我有一个SID(Microsoft.TeamFoundation.Identity; S-1-9-1531374245-1204410969-2402986413-2179508616-0-0-0-0-1)并且我具有使用Azure DevOps Security的ACL REST API。我想做的是查找与此相关的用户(用户名或电子邮件),但我似乎找不到正确的API调用。有人尝试这样做吗? PS上面的SID是伪造的,但我将其作为我要查找的内容的示例。
我尝试使用图形API查找用户并向其他方向发展。但是我一直无法找到一种方法来为该方向的用户创建SID。如果可以的话,我将可以在访问控制列表的描述符中强行搜索SID。并不是我真正想做的,但如果这是我接受的唯一方法。
如果有帮助,我可以描述一下我要做什么:
答案 0 :(得分:1)
Kevin's answer here包含有关身份调用的更多详细信息。
您可以调用一个身份api进行翻译。您发送整个描述符或描述符列表,它将返回条目。包含的是主体的显示名称。
必须有一种更好的方法来获取原始数据,但这是一个示例powershell ...
$namespaces = Invoke-RestMethod -Method get -Headers $securityHeader -Uri 'https://dev.azure.com/<Your Account>/_apis/securitynamespaces/?api-version=5.1'
$projectsGuid = <The GUID for Project from the $namespaces>
$projectACLs = Invoke-RestMethod -Method Get -Headers $securityHeader -Uri "https://dev.azure.com/<Your Account>/_apis/accesscontrollists/$projectsGuid/?api-version=5.1&recurse=true"
$projectACLs.value | % {
$project = $_
$props = Get-Member -InputObject $project.acesDictionary -MemberType NoteProperty
$props | % {
Invoke-RestMethod -Method Get -Headers $securityHeader -Uri "https://vssps.dev.azure.com/<Your Account>/_apis/identities?descriptors=$($_.Name)"
}
}