MidТеория1 min

Идентификация и доступ

Microsoft Entra ID, MFA, RBAC, Conditional Access, Managed Identities

Идентификация и управление доступом

Безопасность в Azure начинается с управления идентификацией -- кто может получить доступ к ресурсам и что именно ему разрешено делать. Два фундаментальных процесса: аутентификация (кто вы?) и авторизация (что вам разрешено?).

Microsoft Entra ID (бывший Azure AD)

Microsoft Entra ID -- это облачная служба управления идентификацией и доступом. Это не просто каталог пользователей, а комплексная платформа для аутентификации и авторизации.

Основные объекты Entra ID:

  • Пользователи (Users) -- учетные записи сотрудников и внешних пользователей
  • Группы (Groups) -- объединения пользователей для упрощения управления доступом
  • Сервисные принципалы (Service Principals) -- идентификация приложений и сервисов
  • Управляемые идентификации (Managed Identities) -- автоматическое управление учетными данными для Azure-ресурсов

Ключевые возможности:

  • Single Sign-On (SSO) -- одна учетная запись для доступа ко всем приложениям
  • Многофакторная аутентификация (MFA) -- дополнительный уровень защиты
  • Условный доступ (Conditional Access) -- политики доступа на основе условий
  • B2B и B2C -- работа с внешними пользователями и клиентами

Entra ID vs Active Directory Domain Services

Entra ID -- это не облачная версия традиционного Active Directory. Это разные продукты:

Характеристика Entra ID AD DS (on-premises)
Протоколы OAuth 2.0, OpenID Connect, SAML Kerberos, LDAP
Структура Flat (нет OU и лесов) Деревья, леса, OU
Управление устройствами Intune (MDM) Group Policy
Доступ Интернет (REST API) Локальная сеть

Многофакторная аутентификация (MFA)

MFA требует от пользователя подтвердить личность несколькими способами:

  1. Что-то, что вы знаете -- пароль
  2. Что-то, что вы имеете -- телефон (SMS, push-уведомление) или аппаратный ключ
  3. Что-то, что вы есть -- биометрия (отпечаток пальца, распознавание лица)

MFA существенно снижает риск компрометации учетных записей -- даже если пароль украден, злоумышленник не сможет войти без второго фактора.

RBAC -- Role-Based Access Control

RBAC -- это система управления доступом на основе ролей. Вместо назначения прав каждому пользователю отдельно, вы назначаете роли, которые содержат набор разрешений.

Встроенные роли:

Роль Описание
Owner Полный доступ ко всем ресурсам + управление доступом других пользователей
Contributor Полный доступ ко всем ресурсам, но без управления доступом
Reader Только просмотр ресурсов
User Access Administrator Управление доступом пользователей (без управления ресурсами)

Области применения (Scope):

Роли назначаются на определенном уровне иерархии, и наследуются вниз:

Management Group (наивысший уровень)
  +-- Subscription
       +-- Resource Group
            +-- Resource (наименьший уровень)

Если пользователь получает роль Contributor на уровне Subscription, он автоматически получает ее для всех Resource Groups и ресурсов внутри этой подписки.

# Назначение роли Contributor для пользователя на уровне Resource Group
az role assignment create \
  --assignee [email protected] \
  --role "Contributor" \
  --resource-group rg-orderapp-dev

Принцип наименьших привилегий (Least Privilege): всегда назначайте минимально необходимые права. Если пользователю нужно только просматривать ресурсы, назначьте Reader, а не Contributor.

Conditional Access

Условный доступ -- это расширенные политики, которые определяют условия для доступа к ресурсам. Политики работают по принципу: "если [условие], тогда [действие]".

Примеры сигналов (условий):

  • Местоположение пользователя (IP-адрес, страна)
  • Устройство (корпоративное или личное, управляемое или нет)
  • Приложение (к какому ресурсу пытается получить доступ)
  • Уровень риска (анализируется AI на основе поведения)

Примеры действий:

  • Разрешить доступ
  • Потребовать MFA
  • Потребовать совместимое устройство
  • Заблокировать доступ

Типичная политика: если пользователь подключается из-за пределов офисной сети, требовать MFA.

Managed Identities

Managed Identity -- это автоматически управляемая идентификация для Azure-ресурсов. Она позволяет ресурсам Azure (например, App Service) аутентифицироваться в других сервисах (например, SQL Database) без хранения паролей и ключей в коде.

System-Assigned Managed Identity:

  • Создается автоматически с ресурсом
  • Удаляется вместе с ресурсом
  • Уникальна для каждого ресурса

User-Assigned Managed Identity:

  • Создается как отдельный ресурс
  • Может использоваться несколькими ресурсами
  • Существует независимо от ресурсов
# Включение System-Assigned Managed Identity для App Service
az webapp identity assign \
  --name my-web-app \
  --resource-group rg-demo

Managed Identity -- это рекомендуемый способ аутентификации между Azure-сервисами. Никогда не храните пароли и ключи в коде, если можно использовать Managed Identity.

Проверь себя

Какой протокол использует Microsoft Entra ID для аутентификации?

Пользователь получил роль Reader на уровне Subscription. Какой доступ он имеет к ресурсам внутри Resource Groups этой подписки?

Conditional Access позволяет требовать MFA в зависимости от:

Что такое Managed Identity в Azure?

Какая роль RBAC позволяет управлять ресурсами, но не позволяет управлять доступом других пользователей?