Просмотр прав доступа и контроль доступа

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

В этой статье показано, как просматривать разрешения и проверять эффективный доступ для пользователей и групп на уровнях организации, проекта и репозитория (или другого объекта). В нем описываются состояния разрешений (разрешить, запретить, наследовать), как наследование и членство в группах влияют на действующие разрешения и действия по устранению распространенных проблем с доступом.

Вы узнаете:

  • Где просматривать назначения разрешений на веб-портале
  • Проверка эффективных разрешений для пользователей и групп
  • Распространенные причины, по которым разрешения не работают как ожидалось (наследование, доступ заинтересованных сторон, сопоставление групп Microsoft Entra ID)

Быстрые действия.

  1. Откройте параметры организации или параметры проекта>безопасности (или права доступа).
  2. Выберите объект (проект, репозиторий или группу) и просмотрите назначенные разрешения.
  3. Используйте пользовательский интерфейс "Пользователи", "Группы" или "Разрешения" для проверки эффективного доступа.
  4. При необходимости проверьте членство в группах и отклоните правила, которые отменяют разрешения.

Примечание.

Функции управления разрешениями и пользовательский интерфейс немного различаются между Azure DevOps Services (облаком) и локальным сервером Azure DevOps Server. В следующем руководстве приводятся различия пользовательского интерфейса, в которых применимо.

Основы модели разрешений

Разрешения в Azure DevOps используют три состояния назначения:

  • Разрешить — явным образом предоставляет разрешение
  • Запретить — явно запрещает разрешение и переопределяет разрешение
  • Наследование — явное назначение на этом уровне не выполняется; разрешение наследуется от родительских областей или членства в группах

Эффективные разрешения вычисляются путем оценки назначений в разных средах:

  • Сам объект (проект, репозиторий, путь к области и т. д.)
  • Родительские области (коллекция, организация, проект)
  • Членство в группах (встроенные группы, пользовательские группы, группы идентификаторов Microsoft Entra)
  • Явное отклонение назначений (приоритет)

Какие эффективные разрешения означают

Действующие разрешения — это чистый доступ пользователя или группы к объекту после того, как Azure DevOps оценивает каждое соответствующее назначение разрешений. Система объединяет явные назначения разрешений и запретов в объекте, родительских областях и всех членствах в группах; явные назначения запретов имеют приоритет. На практике "действующие разрешения" показывают окончательный результат (что кто-то может на самом деле сделать), а не каждое отдельное назначение, которое способствовало этому результату.

Для детального изучения разрешений и наследования см. раздел «О разрешениях, состояния разрешений».

Где просматривать разрешения

Разрешения можно просматривать в нескольких местах на веб-портале в зависимости от объекта:

  • Уровень организации или коллекции: > организации Безопасность (или параметры>Разрешения).
  • Уровень проекта: Настройки проекта>Разрешения (или Настройки проекта>Безопасность в более старых интерфейсах).
  • Репозиторий, конвейер, доска или другой ресурс: откройте ресурс, а затем Настройки или Безопасность (например, Репозиторий> выберитеБезопасность>).

На странице "Разрешения безопасности/" отображаются назначенные группы ипользователи, а также матрица разрешений, которую можно фильтровать по пользователю или группе.

Просмотр разрешений для пользователя или группы

  1. Войдите в https://dev.azure.com/{Your_Organization}.

  2. Перейдите к объекту, который требуется проверить (организация, проект, репозиторий и т. д.).

  3. Выберите настройки проекта или настройки организации>Права доступа.

  4. Выберите "Пользователи " или "Группы", а затем выберите удостоверение, которое необходимо проверить.

  5. Просмотрите сетку разрешений, чтобы просмотреть назначенные разрешения. В сетке показан эффективный результат для каждого разрешения на основе членства в группах и наследования.

    Примечание.

    В сетке разрешений отображаются вычислимые действующие разрешения для выбранного пользователя или группы. Чтобы понять, почему разрешение имеет определенное значение, просмотрите членство пользователя в группах и проверьте наличие явных назначений "Разрешить" или "Запретить" в родительских областях.

    Снимок экрана: страница разрешений на уровне проекта.

  1. Войдите на сервер или портал коллекции.
  2. Перейдите в раздел"Безопасность параметров >проекта>" (или "Безопасность в организации или коллекции").
  3. Выберите группу или пользователя и изучите матрицу разрешений. Используйте элементы управления фильтра и действующие разрешения в диалоговом окне.

Проверка разрешений (командная строка или REST)

Если вы предпочитаете автоматизацию, используйте REST API для чтения списков управления доступом или модулей Azure DevOps CLI/PowerShell для проверки разрешений скрипта. Найдите пространство имен безопасности для ресурса и оцените биты ACL для вычисления эффективного доступа.

Распространенные сценарии и устранение неполадок

  • Запрет переопределяет Разрешение: явный Запрет на любом уровне всегда выигрывает. Проверьте наличие отказов доступа на более высоких или более низких уровнях, а также в членствах в группах.
  • Членство в нескольких группах: эффективные разрешения объединяют назначения групп; Запрет в любой группе применяется.
  • Наследование от родительских областей: Если разрешение наследуется на текущем уровне, проверьте родительские области на наличие назначений.
  • Сопоставление групп идентификаторов Microsoft Entra: если вы добавляете пользователей через группы Microsoft Entra, убедитесь, что правильная группа синхронизирована с Azure DevOps и что членство в группе является ожидаемым.
  • Ограничения доступа заинтересованных сторон: пользователи с ограниченным доступом заинтересованных лиц имеют ограниченный уровень доступности функций независимо от назначений разрешений. Проверьте уровень доступа, если пользователь не может выполнить действие.
  • Динамический или временный доступ: некоторые политики (например, условный доступ) или внешнее предоставление могут повлиять на вход или доступ. Проверьте политики условного доступа Microsoft Entra, если вход не удался.

Контрольный список быстрого устранения неполадок

  1. Убедитесь, что используемая для входа учетная запись пользователя соответствует личности, отображаемой в Azure DevOps.
  2. Проверьте прямое и косвенное членство пользователя в группах.
  3. Найдите все явные назначения отказа в области объекта и родительских областей.
  4. Проверьте уровень доступа пользователя (заинтересованные лица и базовые) и ограничения лицензирования.
  5. Если вы используете группы Microsoft Entra, подтвердите синхронизацию групп и членство.
  6. При необходимости используйте REST или CLI для перечисления списков ACL для ресурса и программной оценки.

Аудит и история

Используйте журналы аудита (Настройки организации > Журналы аудита) для отслеживания изменений в группах безопасности, назначениях разрешений и изменениях членства, если в вашей организации включена функция аудита. События аудита могут помочь в отслеживании изменений в разрешениях или членстве.

Следующий шаг