Поделиться через


Что такое проверка подлинности?

Предупреждение

Это содержимое предназначено для более старой конечной точки Azure AD версии 1.0. Используйте платформу удостоверений Майкрософт для новых проектов.

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

авторизация — это действие предоставления разрешения субъекта безопасности, прошедшего проверку подлинности. Он указывает, к каким данным можно получить доступ и что с ними можно сделать. Авторизация иногда сокращается до AuthZ.

Azure Active Directory для разработчиков (версии 1.0) (Azure AD) упрощает проверку подлинности для разработчиков приложений, предоставляя удостоверения как услугу, с поддержкой стандартных отраслевых протоколов, таких как OAuth 2.0 и OpenID Connect, а также библиотеки с открытым исходным кодом для различных платформ, которые помогут быстро приступить к написанию кода.

Существует два основных варианта использования в модели программирования Azure AD:

  • Во время потока предоставления авторизации OAuth 2.0 , когда владелец ресурса предоставляет авторизацию клиентскому приложению, позволяя клиенту получать доступ к ресурсам владельца ресурса.
  • Во время доступа к ресурсам клиентом — как реализовано сервером ресурсов, используя значения утверждений, присутствующих в маркере доступа, чтобы принимать решения по управлению доступом на основе них.

Основы проверки подлинности в Azure AD

Рассмотрим самый простой сценарий, в котором требуется удостоверение: пользователю в веб-браузере необходимо пройти проверку подлинности в веб-приложении. На следующей схеме показан этот сценарий:

Обзор входа в веб-приложение

Ниже приведены сведения о различных компонентах, показанных на схеме:

  • Azure AD — это поставщик удостоверений. Поставщик удостоверений отвечает за проверку удостоверения пользователей и приложений, существующих в каталоге организации, и выдает маркеры безопасности при успешной проверке подлинности этих пользователей и приложений.
  • Приложение, которое требуется выполнить аутсорсинг проверки подлинности в Azure AD, должно быть зарегистрировано в Azure Active Directory (Azure AD). Azure AD регистрирует и однозначно идентифицирует приложение в каталоге.
  • Разработчики могут использовать библиотеки проверки подлинности Azure AD с открытым кодом, чтобы упростить проверку подлинности, обрабатывая сведения о протоколе. Дополнительные сведения см. в разделе библиотеки проверки подлинности платформы Microsoft Identity версии 2.0 и библиотеки проверки подлинности версии 1.0 .
  • После проверки подлинности пользователя приложение должно проверить маркер безопасности пользователя, чтобы убедиться, что проверка подлинности прошла успешно. Краткие руководства, учебники и примеры кода можно найти на различных языках и платформах, в которых показано, что должно сделать приложение.
    • Чтобы быстро создать приложение и добавить такие функции, как получение токенов, обновление токенов, вход в систему, отображение сведений о пользователе и многое другое, см. в разделе Краткие руководства документации.
    • Чтобы получить подробные процедуры на основе сценариев для основных задач разработчика проверки подлинности, таких как получение маркеров доступа и их использование в вызовах API Microsoft Graph и других API, реализация входа в Корпорацию Майкрософт с традиционным приложением на основе веб-браузера с помощью OpenID Connect и многое другое, см. в разделе учебников документации.
    • Чтобы скачать примеры кода, перейдите к GitHub.
  • Поток запросов и ответов для процесса проверки подлинности определяется используемым протоколом проверки подлинности, таким как OAuth 2.0, OpenID Connect, WS-Federation или SAML 2.0. Дополнительные сведения о протоколах см. в разделе Основные понятия > протокола проверки подлинности документации.

В приведенном выше сценарии можно классифицировать приложения в соответствии с этими двумя ролями:

  • Приложения, которым требуется безопасный доступ к ресурсам
  • Приложения, которые играют роль самого ресурса

Как каждый поток выдает маркеры и коды

В зависимости от того, как создан клиент, он может использовать один (или несколько) потоков проверки подлинности, поддерживаемых Azure AD. Эти потоки могут создавать различные маркеры (идентификационные маркеры, маркеры обновления, маркеры доступа), а также коды авторизации, и для их функционирования требуются разные маркеры. Эта диаграмма содержит общие сведения:

Поток Требуется ид_токен маркер доступа Маркер обновления Код авторизации
Поток кода авторизации x x x x
Неявный поток x x
Гибридный поток OIDC x x
Обмен маркера обновления Токен обновления x x x
Поток выполнения от имени маркер доступа x x x
Учетные данные клиента x (только для приложений)

Маркеры, выданные через неявный режим, имеют ограничение по длине из-за передачи обратно в браузер через URL-адрес (где response_mode равен query или fragment). Некоторые браузеры имеют ограничение на размер URL-адреса, который можно поместить в адресную строку браузера, и выдают ошибку, если он слишком длинный. Таким образом, эти токены не имеют groups или wids претензий.

Теперь, когда у вас есть общие сведения об основах, продолжайте изучать модель приложения удостоверений и API, как работает подготовка в Azure AD, а также ознакомьтесь со ссылками на подробные сведения о распространенных сценариях, поддерживаемых Azure AD.

Модель приложения

Azure AD представляет приложения, следующие за определенной моделью, предназначенной для выполнения двух основных функций:

  • Определить приложение в соответствии с протоколами проверки подлинности, которые она поддерживает. Это включает перечисление всех идентификаторов, URL-адресов, секретов и связанных сведений, необходимых во время проверки подлинности. Здесь Azure AD:

    • Содержит все данные, необходимые для поддержки проверки подлинности во время выполнения.
    • Содержит все данные для принятия решения о том, какие ресурсы может потребоваться приложению, и следует ли выполнять указанный запрос и в каких обстоятельствах.
    • Предоставляет инфраструктуру для реализации подготовки приложений в клиенте разработчика приложений и для любого другого клиента Azure AD.
  • Обрабатывать согласие пользователя во время запроса токена и упрощать динамическое развертывание приложений между клиентами . Здесь, Azure AD:

    • Позволяет пользователям и администраторам динамически предоставлять или запрещать согласие для приложения получать доступ к ресурсам от их имени.
    • Позволяет администраторам в конечном итоге определить, что разрешено делать приложениям и какие пользователи могут использовать конкретные приложения, а также как осуществляется доступ к ресурсам каталога.

В Azure AD объект приложения описывает приложение как абстрактную сущность. Разработчики работают с приложениями. Во время развертывания Azure AD использует заданный объект приложения в качестве схемы для создания субъекта-службы, представляющего конкретный экземпляр приложения в каталоге или клиенте. Это субъект-служба, который определяет, что приложение может фактически делать в определенном целевом каталоге, который может использовать его, какие ресурсы у него есть доступ и т. д. Azure AD создает субъект-службу из объекта приложения с помощью согласия.

На следующей схеме показан упрощенный поток подготовки Azure AD, управляемый согласием. В нем существуют два арендатора (A и B), где арендатор A владеет приложением, а арендатор B создает экземпляр приложения через учетную запись службы.

Упрощенный поток назначения, обусловленный согласием

В этом процессе настройки:

  1. Пользователь из клиента B пытается войти в приложение, конечная точка авторизации запрашивает маркер для приложения.
  2. Учетные данные пользователя получаются и проверяются для проверки подлинности.
  3. Пользователю предлагается предоставить согласие, чтобы приложение получило доступ к клиенту B
  4. Azure AD использует объект приложения в клиенте A в качестве схемы для создания субъекта-службы в клиенте B.
  5. Пользователь получает запрошенный маркер.

Этот процесс можно повторять столько раз, сколько требуется для других клиентов (C, D и т. д.). Арендатор A сохраняет план для программного обеспечения (объект приложения). Пользователи и администраторы всех остальных арендаторов, где приложению было дано согласие, сохраняют контроль над тем, что разрешено делать приложению через соответствующий объект обслуживающего субъекта в каждом арендаторе. Дополнительные сведения см. в разделе Объекты приложения и главного компонента службы в платформе удостоверений Майкрософт.

Утверждения в маркерах безопасности Azure AD

Маркеры безопасности (токены доступа и идентификационные токены), выданные Azure AD, содержат утверждения или сведения о субъекте, который прошел проверку подлинности. Приложения могут использовать утверждения для различных задач, в том числе:

  • Проверка токена
  • Определение арендатора каталога субъекта
  • Отображение сведений о пользователе
  • определение авторизации субъекта.

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

Краткое описание каждого типа утверждений, создаваемых Azure AD, приведено в таблице ниже. Для получения дополнительной информации см. маркеры доступа и идентификаторы , выданные Azure AD.

Требование Описание
Идентификатор приложения Определяет приложение, использующее маркер.
Публика Определяет ресурс получателя, для который предназначен маркер.
Справочник по классу контекста проверки подлинности приложения Указывает, как клиент прошел проверку подлинности (общедоступный клиент и конфиденциальный клиент).
Мгновенное подтверждение подлинности Записывает дату и время, когда произошла проверка подлинности.
Метод проверки подлинности Указывает, как объект токена прошел проверку подлинности (пароль, сертификат и т. д.).
Имя собственное Предоставляет заданное имя пользователя в Azure AD.
Группы Содержит идентификаторы объектов групп Azure AD, в которые входит пользователь.
Поставщик удостоверений Фиксирует поставщика удостоверений, который проверил подлинность субъекта токена.
Дата выдачи Фиксирует время выдачи токена, часто используемое для актуальности токена.
Эмитент Идентифицирует Службу выдачи токенов (STS), которая выдала токен, а также арендатора Azure AD.
Фамилия Предоставляет фамилию пользователя, как она указана в Azure AD.
Имя Предоставляет удобное для восприятия значение, которое идентифицирует субъект маркера.
Идентификатор объекта Содержит неизменяемый уникальный идентификатор субъекта в Azure AD.
Роли Содержит удобочитаемые названия ролей приложений Azure AD, которые были предоставлены пользователю.
Область действия Указывает разрешения, предоставленные клиентскому приложению.
Тема Указывает субъект, о котором токен утверждает сведения.
Идентификатор арендатора Содержит неизменяемый уникальный идентификатор клиента каталога, выдавшего маркер.
Время жизни токена Определяет интервал времени, в течение которого маркер действителен.
Основное имя пользователя Содержит основное имя пользователя субъекта.
Версия Содержит номер версии маркера.

Дальнейшие действия