Что такое проверка подлинности?
Предупреждение
Это содержимое предназначено для более старой конечной точки 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 создает экземпляр приложения через учетную запись службы.
В этом процессе настройки:
- Пользователь из клиента B пытается войти в приложение, конечная точка авторизации запрашивает маркер для приложения.
- Учетные данные пользователя получаются и проверяются для проверки подлинности.
- Пользователю предлагается предоставить согласие, чтобы приложение получило доступ к клиенту B
- Azure AD использует объект приложения в клиенте A в качестве схемы для создания субъекта-службы в клиенте B.
- Пользователь получает запрошенный маркер.
Этот процесс можно повторять столько раз, сколько требуется для других клиентов (C, D и т. д.). Арендатор A сохраняет план для программного обеспечения (объект приложения). Пользователи и администраторы всех остальных арендаторов, где приложению было дано согласие, сохраняют контроль над тем, что разрешено делать приложению через соответствующий объект обслуживающего субъекта в каждом арендаторе. Дополнительные сведения см. в разделе Объекты приложения и главного компонента службы в платформе удостоверений Майкрософт.
Утверждения в маркерах безопасности Azure AD
Маркеры безопасности (токены доступа и идентификационные токены), выданные Azure AD, содержат утверждения или сведения о субъекте, который прошел проверку подлинности. Приложения могут использовать утверждения для различных задач, в том числе:
- Проверка токена
- Определение арендатора каталога субъекта
- Отображение сведений о пользователе
- определение авторизации субъекта.
Утверждения, присутствующие в любом заданном токене безопасности, зависят от типа токена, типа учетных данных, используемых для аутентификации пользователя, и конфигурации приложения.
Краткое описание каждого типа утверждений, создаваемых Azure AD, приведено в таблице ниже. Для получения дополнительной информации см. маркеры доступа и идентификаторы , выданные Azure AD.
Требование | Описание |
---|---|
Идентификатор приложения | Определяет приложение, использующее маркер. |
Публика | Определяет ресурс получателя, для который предназначен маркер. |
Справочник по классу контекста проверки подлинности приложения | Указывает, как клиент прошел проверку подлинности (общедоступный клиент и конфиденциальный клиент). |
Мгновенное подтверждение подлинности | Записывает дату и время, когда произошла проверка подлинности. |
Метод проверки подлинности | Указывает, как объект токена прошел проверку подлинности (пароль, сертификат и т. д.). |
Имя собственное | Предоставляет заданное имя пользователя в Azure AD. |
Группы | Содержит идентификаторы объектов групп Azure AD, в которые входит пользователь. |
Поставщик удостоверений | Фиксирует поставщика удостоверений, который проверил подлинность субъекта токена. |
Дата выдачи | Фиксирует время выдачи токена, часто используемое для актуальности токена. |
Эмитент | Идентифицирует Службу выдачи токенов (STS), которая выдала токен, а также арендатора Azure AD. |
Фамилия | Предоставляет фамилию пользователя, как она указана в Azure AD. |
Имя | Предоставляет удобное для восприятия значение, которое идентифицирует субъект маркера. |
Идентификатор объекта | Содержит неизменяемый уникальный идентификатор субъекта в Azure AD. |
Роли | Содержит удобочитаемые названия ролей приложений Azure AD, которые были предоставлены пользователю. |
Область действия | Указывает разрешения, предоставленные клиентскому приложению. |
Тема | Указывает субъект, о котором токен утверждает сведения. |
Идентификатор арендатора | Содержит неизменяемый уникальный идентификатор клиента каталога, выдавшего маркер. |
Время жизни токена | Определяет интервал времени, в течение которого маркер действителен. |
Основное имя пользователя | Содержит основное имя пользователя субъекта. |
Версия | Содержит номер версии маркера. |
Дальнейшие действия
- Изучите информацию о типах и сценариях приложений , поддерживаемых в платформе идентификации Microsoft