Настройка разрешения представления для группы в перехватчиках служб
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
По умолчанию только администраторы проектов имеют разрешения на просмотр или изменение . Чтобы предоставить эти разрешения другим пользователям напрямую, можно использовать средство командной строки или REST API безопасности.
ServiceHooks
Идентификатор пространства имен безопасности определяется в разделе "Пространства имен безопасности списка" как cb594ebe-87dd-4fc9-ac2c-6a10a4c92046
Необходимые компоненты
Установите Azure CLI для выполнения
az devops
команды. Установка Azure CLIСоздайте личный маркер доступа (PAT) для профиля Azure DevOps. Убедитесь, что вы являетесь членом группы "Администратор коллекции проектов" (PCA).
- Удостоверение (чтение)
- Graph (чтение)
- Безопасность (управление)
Войдите в Azure DevOps с помощью
az devops login
. Если у вас нетaz devops
расширения, установите его.> az devops login The command requires the extension azure-devops. Do you want to install it now? The command will continue to run after the extension is installed. (Y/n): Y
Вы можете определить организацию как организацию по умолчанию. В противном случае определите
--org "https://dev.azure.com/{organization}"
для каждой команды.az devops configure --defaults organization="https://dev.azure.com/{organization}"
Проверьте, можно ли просмотреть список разрешений для вашей организации.
az devops security permission namespace list --org "https://dev.azure.com/{organization}"
Чтение удостоверения группы и маркера разрешений
Найдите дескриптор удостоверения группы.
> az devops security group list --project ac515e82-560c-4af8-845b-9f7f968d8e7b --output table Name Descriptor ----------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------- [TEAM FOUNDATION]\EntraServiceHooksRead aadgp.Uy0xLTktMTU1MTM3NDI0NS0xMjA0NDAwOTY5LTI0MDI5ODY0MTMtMjE3OTQwODYxNi0zLTM5NTQxNzM3ODYtMTUyMTA4MTkyNS0yNTQwNTA4MjYzLTMzNDgxNjQxNjg
Если вы хотите фильтровать по имени группы, можно использовать
findstr
илиgrep
командовать в командной строке.Получение маркера разрешений.
> az devops security permission list --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --output table Token Effective Allow Effective Deny ------------------------------------------------------ ----------------- ---------------- PublisherSecurity 0 0 PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b 0 0
Обновление разрешения на чтение для перехватчиков служб
Список возможных разрешений, для которые можно определить
--allow-bit
.- Просмотр подписок
- Изменение подписки
- Удаление подписок
- Публикация событий
> az devops security permission namespace show --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 [ { "actions": [ { "bit": 1, "displayName": "View Subscriptions", "name": "ViewSubscriptions", "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046" }, { "bit": 2, "displayName": "Edit Subscription", "name": "EditSubscriptions", "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046" }, { "bit": 4, "displayName": "Delete Subscriptions", "name": "DeleteSubscriptions", "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046" }, { "bit": 8, "displayName": "Publish Events", "name": "PublishEvents", "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046" } ], "dataspaceCategory": "Default", "displayName": "ServiceHooks", "elementLength": -1, "extensionType": null, "isRemotable": true, "name": "ServiceHooks", "namespaceId": "cb594ebe-87dd-4fc9-ac2c-6a10a4c92046", "readPermission": 1, "separatorValue": "/", "structureValue": 1, "systemBitMask": 0, "useTokenTranslator": true, "writePermission": 7 }
Задайте для группы доступ к представлению . Просмотр подписок ServiceHooks равен 1 для
--allow-bit
.> az devops security permission update --namespace-id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --token PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b --allow-bit 1 [ { "acesDictionary": { "Microsoft.TeamFoundation.Identity;S-1-9-1551374245-1204400969-2402986413-2179408616-3-3954173786-1521081925-2540508263-3348164168": { "allow": 1, "deny": 0, "descriptor": "Microsoft.TeamFoundation.Identity;S-1-9-1551374245-1204400969-2402986413-2179408616-3-3954173786-1521081925-2540508263-3348164168", "extendedInfo": { "effectiveAllow": 1 }, "resolvedPermissions": [ { "bit": 1, "displayName": "View Subscriptions", "effectivePermission": "Allow", "name": "ViewSubscriptions" } ] } }, "includeExtendedInfo": true, "inheritPermissions": true, "token": "PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b" } ]
Получите маркер разрешений для просмотра изменений.
> az devops security permission list --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --output table Token Effective Allow Effective Deny ------------------------------------------------------ ----------------- ---------------- PublisherSecurity 0 0 PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b 1 0
В следующем примере показано, что пользователь может просматривать подписки на службы.
Сброс разрешений всех перехватчиков службы группы
Если вам нужно сбросить все разрешения перехватчиков службы группы или пользователя, можно вызвать
reset-all
.> az devops security permission reset-all --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --token PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b Are you sure you want to reset all explicit permissions for this user/group and token? (y/n): Y true > az devops security permission list --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject <Group or user descriptor> --output table Token Effective Allow Effective Deny ------------------------------------------------------ ----------------- ---------------- PublisherSecurity 0 0 PublisherSecurity/ac515e82-560c-4af8-845b-9f7f968d8e7b 0 0
В следующем примере показано, что пользователь не может просматривать подписки на перехватчики служб после сброса разрешения.