Проверка подлинности приложений и пользователей с помощью идентификатора Microsoft Entra
Статья
Основная функция идентификатора Microsoft Entra для приложений — это проверка подлинности, процесс объявления удостоверения с личным идентификатором, например имени пользователя или адреса электронной почты. Предоставляется подтверждение удостоверения. Доказательство может быть паролем, артефактом многофакторной проверки подлинности, биометрическим или без пароля согласием.
В этой статье описывается, как приложения используют идентификатор Microsoft Entra для проверки подлинности пользователей и приложений. Это третий в серии статей о том, как независимые разработчики программного обеспечения (ISV) могут создавать и оптимизировать свои приложения для идентификатора Microsoft Entra. В этой серии вы можете узнать больше о следующих разделах:
Идентификатор Microsoft Entra для независимых разработчиков программного обеспечения описывает, как использовать эту облачную службу управления удостоверениями и доступом, чтобы сотрудники могли получать доступ к ресурсам с приложением.
Создание приложений в экосистеме идентификатора Microsoft Entra id описывает использование Центра администрирования Microsoft Entra или интерфейса api программирования приложений Microsoft Graph для регистрации приложений в клиенте Идентификатора Microsoft Entra.
Настройка маркеров помогает создавать безопасность в приложениях с маркерами идентификатора и маркерами доступа из идентификатора Microsoft Entra ID. В нем описываются сведения, которые можно получить в маркерах идентификатора Microsoft Entra и способах их настройки.
Запрос маркеров
Приложения запрашивают маркер из идентификатора Microsoft Entra. После получения маркера приложения могут использовать сведения в этом маркере для идентификации пользователя. При создании идентификатора Microsoft Entra пользователи могут проходить проверку подлинности многих приложений с помощью одной зарегистрированной учетной записи идентификатора Microsoft Entra (SSO). Метод проверки подлинности единого входа позволяет пользователям входить в несколько независимых программных систем с помощью одного набора учетных данных.
Протоколы, которые разработчики могут использовать для запроса маркера из идентификатора Microsoft Entra ID, используют браузер для подключения пользователя к веб-сайту Идентификатора Microsoft Entra ID. Этот веб-сайт позволяет пользователю иметь частный разговор с идентификатором Microsoft Entra. Приложение не является участником этого частного диалога. Приложения запускают веб-сайт Идентификатора Microsoft Entra, где пользователь инициирует процесс проверки подлинности. После завершения процесса проверки подлинности идентификатор Microsoft Entra перенаправляет пользователя обратно в приложение с маркером или без нее.
Важно, чтобы пользователи редко проходили процесс проверки подлинности. Чем чаще пользователи должны сделать это, тем больше они становятся подвержены эксплойтам, таким как фишинговые атаки.
Сокращение запросов на вход
Единый вход может уменьшить или исключить запросы на вход. Разработчики играют важную роль в сокращении и устранении запросов на вход. Все приложения должны совместно использовать браузер, который обращается к веб-сайту идентификатора Microsoft Entra ID, где пользователи выполняют процесс проверки подлинности. Если приложение — это одностраничное приложение на основе браузера (SPA) или веб-приложение, то не требуется никаких действий разработчика. Все приложения в браузере совместно используют браузер. Для собственных приложений, работающих на настольных компьютерах и мобильных устройствах, разработчики должны заранее сократить или исключить запросы на вход.
Лучший способ уменьшить или исключить запросы на вход — использовать библиотеки проверки подлинности Майкрософт (MSAL) или библиотеку, созданную на основе MSAL, и проверки подлинности брокера. Этот метод сводит к минимуму запросы на вход и обеспечивает самый простой интерфейс. Если использование MSAL невозможно, приложение должно использовать системный браузер, чтобы свести к минимуму запросы на вход.
Для приложений, работающих в iOS или Android, поставщики мобильных платформ имеют некоторые функции, чтобы сделать этот интерфейс более удобным. Google содержит рекомендации для приложений Android с пользовательскими вкладками Chrome. Apple содержит рекомендации по проверке подлинности пользователя через веб-службу в приложениях iOS. Избегайте использования внедренных веб-представлений, так как они могут не разрешать общий доступ между приложениями или системным браузером.
Двумя протоколами проверки подлинности пользователей являются язык разметки утверждений безопасности (SAML) 2.0 и OpenID Connect (OIDC). Идентификатор Microsoft Entra полностью поддерживает приложения с помощью обоих протоколов, поэтому разработчики могут выбрать любой из них в зависимости от своих требований.
Эти ссылки содержат сведения о поддержке SAML идентификатора Microsoft Entra.
Протокол SAML единого входа — это ссылка на запросы проверки подлинности SAML 2.0 и ответы, поддерживаемые идентификатором Microsoft Entra.
Метаданные федерации Microsoft Entra описывают метаданные федерации и конечные точки метаданных федерации для метаданных, зависящих от клиента, и независимо от клиента. Он охватывает метаданные для SAML и старых стандартов WS-Federation. Хотя и полностью поддерживается, мы не рекомендуем WS-Federation для новых приложений.
Справочник по утверждениям токена SAML 2.0 — это документация по токенам SAML идентификатора Microsoft Entra ID (утверждения).
В поддержке SAML идентификатора Microsoft Entra ID существуют некоторые ограничения. В частности, нельзя перенести приложения, требующие этих возможностей протокола: поддержка шаблона WS-Trust ActAs и разрешение артефактов SAML.
Хотя идентификатор Microsoft Entra ID полностью поддерживает SAML для приложений, созданных на основе протокола SAML, платформа удостоверений Майкрософт не предоставляет библиотеки или другие средства разработки для разработки приложений с помощью SAML. Для разработки новых приложений рекомендуется использовать OpenID Connect (OIDC) для проверки подлинности.
Идентификатор Microsoft Entra полностью поддерживает OpenID Connect. Корпорация Майкрософт предоставляет библиотеки MSAL, Microsoft Identity Web и Azure SDK для упрощения разработки приложений OIDC. OpenID Connect (OIDC) в платформа удостоверений Майкрософт сведения о поддержке Microsoft Entra ID OIDC. MSAL автоматически поддерживает OIDC. MSAL всегда запрашивает маркер идентификатора OIDC с каждым запросом маркера, включая запросы авторизации для приложения для доступа к ресурсу.
Время существования маркера
MSAL кэширует маркеры идентификатора и маркеры доступа на основе срока действия маркера доступа. Так как идентификатор Microsoft Entra id по-разному задает время существования маркеров идентификатора и маркеров доступа, вы можете получить маркер идентификатора с истекшим сроком действия кэша MSAL, пока маркер доступа по-прежнему находится в течение допустимого времени существования.
MSAL не обновляет маркеры идентификатора автоматически. MSAL обновляет маркеры доступа в конце срока действия маркера доступа, когда приложение запрашивает маркер. На этом этапе MSAL запрашивает новый маркер идентификатора. Чтобы реализовать OIDC, используйте exp утверждение (срок действия) в маркере идентификатора для планирования запроса маркера идентификатора с помощью флага ForceRefresh в MSAL.
При создании MSAL или библиотеки, созданной на основе MSAL, невозможно использовать стандарт OpenID Connect для проверки подлинности текущего пользователя. Некоторые функции в собственных приложениях могут быть недоступны без использования MSAL, таких как обеспечение работы собственного приложения на управляемом устройстве. Проверьте устойчивость проверки подлинности и авторизации в клиентских приложениях, которые вы разрабатываете для получения рекомендаций, если вы не создаете MSAL.
Идентификатор Microsoft Entra реализует конечную точку UserInfo в рамках поддержки стандартов OIDC идентификатора Microsoft Entra с определенным путем Microsoft Graph (https://graph.microsoft.com/oidc/userinfo). Невозможно добавить или настроить сведения, возвращаемые конечной UserInfo точкой. Так как сведения в маркере идентификатора являются супермножеством данных, возвращаемых вызовом UserInfo конечной точки, рекомендуется использовать маркер идентификатора вместо вызова конечной UserInfo точки.
Аутентификация пользователей
Приложения взаимодействуют с клиентами идентификатора Microsoft Entra для проверки подлинности пользователей. Для проверки подлинности пользователя приложение направляет браузер https://login.microsoftonline.com/{tenant}/v2.0в расположение {tenant} идентификатора или домена клиента. Однако рекомендуется использовать идентификатор Microsoft Entra для создания мультитенантных приложений, которые могут поддерживать самый широкий спектр клиентов. Для мультитенантного приложения приложение может не знать, какой клиент является пользователем до тех пор, пока пользователь не пройдет проверку подлинности, поэтому использовать определенную конечную точку клиента невозможно.
Чтобы включить мультитенантные приложения, идентификатор Microsoft Entra предоставляет две конечные точки OIDC/OAuth 2.0:
https://login.microsoftonline.com/common/v2.0 позволяет пользователям проходить проверку подлинности приложения, если они имеют любой клиент идентификатора Microsoft Entra или у которых есть учетная запись клиента Майкрософт с таких сайтов, как outlook.com, skype.com, xbox.com, live.com или Hotmail.com.
https://login.microsoftonline.com/organizations/v2.0 позволяет пользователям проходить проверку подлинности приложения при наличии любого клиента Идентификатора Microsoft Entra.
Эти конечные точки позволяют любому пользователю из любого клиента Идентификатора Microsoft Entra пройти проверку подлинности приложения. Если вы хотите разрешить только пользователям из определенных клиентов, реализуйте логику, чтобы разрешить доступ к приложению только пользователям из этих клиентов. Обычной реализацией является фильтрация пользователей на iss основе утверждения (издателя) или tid (идентификатора клиента) в маркере в список разрешенных клиентов, которые вы обслуживаете.
Клиенты Идентификатора Microsoft Entra поддерживают пользователей, которые могут быть постоянными членами клиента или могут быть гостевыми пользователями клиента. По умолчанию в клиенте существуют ограниченные возможности гостевых пользователей. Например, гостевые пользователи не могут видеть полный профиль других пользователей в клиенте. Гостевые пользователи, иногда называемые пользователями business to Business (B2B), позволяют разным организациям сотрудничать с инструментами и службами, защищенными идентификатором Microsoft Entra ID. Пример сценария— приглашение пользователя извне организации на доступ к файлу SharePoint в клиенте. Как правило, пользователь B2B использует свой адрес электронной почты в качестве их userid. Однако они могут использовать тот же адрес, что и в их домашнем userid клиенте. По умолчанию идентификатор Microsoft Entra подписывает пользователя в свой домашний клиент при вводе.userid
Чтобы войти в систему как пользователь B2B, приложение должно использовать конкретную конечную точку клиента, в которой пользователь является гостем. Хотя пользователь может указать клиент, к которому он хочет получить доступ, когда приложение использует https://login.microsoftonline.com/organizations/v2.0 конечную точку, пользователи могут найти такую возможность, которую трудно обнаружить.
Следующие шаги
Идентификатор Microsoft Entra для независимых разработчиков программного обеспечения описывает, как использовать эту облачную службу управления удостоверениями и доступом, чтобы сотрудники могли получать доступ к ресурсам с приложением.
Создание приложений в экосистеме идентификатора Microsoft Entra id описывает, как использовать центр администрирования Microsoft Entra или API Microsoft Graph для регистрации приложений в клиенте идентификатора Microsoft Entra ID.
Авторизация приложений, ресурсов и рабочих нагрузок обсуждает авторизацию, когда отдельный человек взаимодействует с приложением и направляет его, когда API действуют для пользователя, а также когда приложения или службы работают независимо.
Настройка маркеров помогает создавать безопасность в приложениях с маркерами идентификатора и маркерами доступа из идентификатора Microsoft Entra ID. В нем описываются сведения, которые можно получить в маркерах идентификатора Microsoft Entra и способах их настройки.
Узнайте, как Внешняя идентификация Microsoft Entra обеспечить безопасный, простой вход для потребителей и бизнес-клиентов. Ознакомьтесь с созданием клиента, регистрацией приложений, настройкой потока и безопасностью учетной записи.
Продемонстрировать функции идентификатора Microsoft Entra для модернизации решений удостоверений, реализации гибридных решений и реализации управления удостоверениями.