Обучение
Модуль
Узнайте, как Внешняя идентификация Microsoft Entra обеспечить безопасный, простой вход для потребителей и бизнес-клиентов. Ознакомьтесь с созданием клиента, регистрацией приложений, настройкой потока и безопасностью учетной записи.
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы аутентифицировать пользователя, ваше приложение должно отправить запрос на вход в конечную точку авторизации Microsoft Entra, указав URI перенаправления в качестве параметра. URI перенаправления — это важная функция безопасности, которая гарантирует, что сервер проверки подлинности Microsoft Entra отправляет коды авторизации и маркеры доступа целевому получателю. В этой статье описываются функции и ограничения URI перенаправления в платформе идентификации Microsoft.
URI перенаправления или URL-адрес ответа — это место, куда сервер проверки подлинности Microsoft Entra отправляет пользователя после успешной авторизации и выдачи токена доступа. Чтобы выполнить вход в систему для пользователя, ваше приложение должно отправить запрос на вход с URI перенаправления, указанным в качестве параметра, чтобы после успешной аутентификации сервер перенаправил пользователя и выдал токен доступа на указанный в запросе URI перенаправления.
Например, в рабочем веб-приложении унифицированный указатель ресурса (URI) перенаправления часто является общедоступной конечной точкой, где запущено ваше приложение, например https://contoso.com/auth-response
. Во время разработки обычно добавляется конечная точка доступа, где запускается ваше приложение локально, например https://127.0.0.1/auth-response
или http://localhost/auth-response
. Убедитесь, что любые ненужные среды разработки или URI перенаправления не раскрываются в рабочем приложении. Это можно сделать с помощью отдельных регистраций приложений для разработки и производственной среды.
По соображениям безопасности сервер аутентификации не будет перенаправлять пользователей или отправлять токены на URL, который не был добавлен в регистрацию приложения. Серверы входа Microsoft Entra перенаправляют только пользователей и отправляют маркеры для перенаправления URI, добавленных в регистрацию приложения. Если URI перенаправления, указанный в запросе для входа, не соответствует ни одному из URI перенаправления, добавленных в приложении, вы получите сообщение об ошибке, например AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application
.
Дополнительные сведения о кодах ошибок см. в разделе коды ошибок проверки подлинности и авторизации Microsoft Entra.
Следует ли добавить URI перенаправления в регистрацию приложения, зависит от протокола авторизации, используемого приложением. Необходимо добавить соответствующие URI перенаправления в регистрацию приложения, если приложение использует следующие протоколы авторизации:
Вам не нужно добавлять URI перенаправления в регистрацию приложения, если приложение использует следующие протоколы авторизации или функции.
Если приложение, которое вы создаете, содержит один или несколько URI перенаправления в регистрации приложения, необходимо включить конфигурацию общедоступного клиентского потока. В следующих таблицах приведены рекомендации по тому, какой тип URI перенаправления следует или не следует добавлять в зависимости от платформы, на которой вы строите своё приложение.
Тип приложения | Типичные языки и платформы | Платформа для добавления URI перенаправления в регистрацию приложения |
---|---|---|
Традиционное веб-приложение, в котором большая часть логики приложения выполняется на сервере | Node.js, Веб, ASP.NET, Python, Java, ASP.NET Core, PHP, Ruby, Blazor Server | Интернет |
Одностраничное приложение, в котором большая часть логики пользовательского интерфейса выполняется в веб-браузере, взаимодействующем с веб-сервером, в основном с помощью веб-API | JavaScript, Angular, React, Blazor WebAssembly, Vue.js | Одностраничное приложение (SPA) |
Тип приложения | Типичные языки и платформы | Платформа для добавления URI перенаправления в регистрацию приложения |
---|---|---|
Приложение iOS или macOS, за исключением сценариев, перечисленных ниже этой таблицы | Swift, Objective-C | IOS/macOS |
Приложение Android | Java или Kotlin | Android |
Приложение, работающее на мобильном устройстве или настольном компьютере | Node.js электроника, настольный компьютер Windows, UWP, React Native, Android, iOS/macOS | Мобильные и настольные приложения |
Если вы создаете приложение iOS с помощью одного из следующих методов, используйте платформу мобильных и классических приложений для добавления URI перенаправления:
Тип приложения | Примеры и примечания | Связанный поток OAuth |
---|---|---|
Приложения, работающие на устройствах без клавиатуры | Приложения, работающие на смарт-телевизоре, устройстве Интернета вещей или принтере | Подробнее о потоке кода устройства |
Приложения, обрабатывающие пароли пользователей напрямую, вместо перенаправления пользователей на размещенный веб-сайт входа в Entra и позволяя Entra обрабатывать пароль пользователя безопасным образом. | Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как поток кода авторизации, не являются жизнеспособными, так как это не так безопасно. | Поток с использованием аутентификации по паролю владельца ресурса учить больше |
Настольные или мобильные приложения, работающие в Windows или на компьютере, подключенном к домену Windows (AD или Azure AD), с использованием интегрированной аутентификации Windows вместо менеджера веб-аккаунтов. | Настольное или мобильное приложение, которое должно автоматически входить в систему после того, как пользователь вошел в Windows PC с учетными данными Entra. | Дополнительные сведения об интегрированной аутентификации Windows узнать больше |
Модель приложения Microsoft Entra указывает следующие ограничения для перенаправления URI:
URI перенаправления должны начинаться со схемы https
, за исключением некоторых случаев перенаправления на localhost.
URI перенаправления чувствительны к регистру и должны соответствовать регистру URL-пути выполняемого приложения.
Примеры:
.../abc/response-oidc
, не указывайте .../ABC/response-oidc
в URI перенаправления. Поскольку веб-браузер обрабатывает пути с учетом регистра, файлы cookie, связанные с .../abc/response-oidc
, могут быть исключены при перенаправлении на URL-адрес .../ABC/response-oidc
, где не совпадает регистр.URI перенаправления, которые не настроены с сегментом пути, возвращаются с завершающим слешем (/
) в ответе. Это применимо только в том случае, если режим ответа имеет значение query
или fragment
.
Примеры:
https://contoso.com
возвращается в виде https://contoso.com/
http://localhost:7071
возвращается в виде http://localhost:7071/
К URI перенаправления, содержащим сегмент пути, не добавляется косая черта в конце в ответе.
Примеры:
https://contoso.com/abc
возвращается в виде https://contoso.com/abc
https://contoso.com/abc/response-oidc
возвращается в виде https://contoso.com/abc/response-oidc
URI перенаправления не поддерживают специальные символы. ! $ ' ( ) , ;
URI перенаправления не поддерживают домены с международными именами.
Максимальное количество URI перенаправления невозможно увеличить по соображениям безопасности. Если в вашем сценарии требуется больше URI перенаправления, чем максимально допустимо, рассмотрите следующую схему с параметром состояния в качестве решения. В следующей таблице показано максимальное количество адресов перенаправления, которые можно добавить при регистрации приложения на платформе удостоверений Microsoft.
Аккаунты, которые входят в систему | Максимальное число URI переадресации | Описание |
---|---|---|
Рабочие или учебные учетные записи Майкрософт в клиенте Microsoft Entra любой организации | 256 | Для поля signInAudience в манифесте приложения установлено AzureADMyOrg или AzureADMultipleOrgs |
Личные учетные записи Майкрософт и рабочие и учебные учетные записи | 100 | В манифесте приложения для поля signInAudience установлено значение AzureADandPersonalMicrosoftAccount |
Длина каждого URI перенаправления, добавляемого для зарегистрированного приложения, должна составлять не более 256 символов.
Параметры запроса разрешены в URI перенаправления для приложений, которые выполняют вход пользователей только с помощью рабочих или учебных учетных записей.
Параметры запроса не допускаются в URI перенаправления для регистрации приложений, настроенных для входа пользователей с личными учетными записями Майкрософт, такими как Outlook.com (Hotmail), Messenger, OneDrive, MSN, Xbox Live или Microsoft 365.
Аудитория входа в систему регистрации приложений | Поддерживает параметры запроса в URI перенаправления |
---|---|
Учетные записи только в этом организационном каталоге (только Contoso — единственный арендатор) | ![]() |
Учетные записи в любом каталоге организации (любой каталог Microsoft Entra — с несколькими клиентами) | ![]() |
Учетные записи в любом каталоге организации (любой каталог Microsoft Entra — Multitenant) и личные учетные записи Майкрософт (например, Skype и Xbox) | ![]() |
Только личные учетные записи Майкрософт | ![]() |
HTTPS: схема HTTPS (https://
) поддерживается для всех URI перенаправления на базе протокола HTTP.
HTTP: схема HTTP (http://
) поддерживается только для URI перенаправления localhost и используется исключительно на этапах локальной разработки и тестирования приложения.
Пример URI перенаправления | Срок действия |
---|---|
https://contoso.com |
Действительный |
https://contoso.com/abc/response-oidc |
Действительный |
https://localhost |
Действительный |
http://contoso.com/abc/response-oidc |
Недопустимо |
http://localhost |
Действительный |
http://localhost/abc |
Действительный |
В соответствии с RFC 8252 разделами 8.3 и 7.3, для URI перенаправления типа "loopback" или "localhost" действуют два особых правила:
http
допустимы, поскольку перенаправление никогда не покидает устройство. Таким образом, оба этих URI допустимы: http://localhost/myApp
https://localhost/myApp
:5001
или :443
) при сопоставлении URI перенаправления игнорируется. В результате все эти URI считаются эквивалентными: http://localhost/MyApp
http://localhost:1234/MyApp
http://localhost:5000/MyApp
http://localhost:8080/MyApp
С точки зрения разработки это означает несколько моментов:
Не регистрируйте несколько URI перенаправления, если в них различается только порт. Сервер входа выбирает один URI произвольно и использует поведение, связанное с этим URI перенаправления (например, является ли это перенаправлением типа web
-, native
- или spa
-).
Это особенно важно, если вы планируете использовать в одном зарегистрированном приложении разные потоки проверки подлинности (например, и выдачу кода авторизации, и неявный поток). Чтобы связать правильное поведение ответа с каждым URI перенаправления, сервер входа должен иметь возможность различать URI перенаправления и не может этого сделать, если различие только в порте.
Чтобы зарегистрировать несколько URI перенаправления на localhost для тестирования различных потоков в процессе разработки, различайте их, используя компонент пути в URI. Например, http://localhost/MyWebApp
не эквивалентно http://localhost/MyNativeApp
.
В настоящее время адрес обратного цикла IPv6 [::1]
не поддерживается.
Чтобы предотвратить сбой приложения из-за неправильно настроенных брандмауэров или переименованных сетевых интерфейсов, используйте IP-литеральный адрес обратного цикла вместо 127.0.0.1
в URI перенаправления. Например, https://127.0.0.1
.
Однако нельзя использовать поле перенаправления URI в портале Azure для добавления URI перенаправления на основе цикла, использующего схему http
:
Чтобы добавить URI перенаправления, использующий схему http
с адресом обратной связи 127.0.0.1
, в настоящее время необходимо изменить атрибут replyUrlsWithType в манифесте приложения.
URI с подстановочными знаками, такие как https://*.contoso.com
, кажутся удобными, но их следует избегать из-за проблем с безопасностью. Согласно спецификации OAuth 2.0 (раздел 3.1.2 RFC 6749), URI конечной точки перенаправления должен быть абсолютным. Таким образом, когда настроенный универсальный URI соответствует URI перенаправления, из него удаляются строки запроса и фрагменты.
URI с подстановочными знаками в настоящее время не поддерживаются для зарегистрированных приложений, настроенных для входа как в личные, так и в рабочие и учебные учетные записи Майкрософт. Подстановочные URI разрешены в приложениях, настроенных для входа только в рабочие или учебные учётные записи в организации-арендаторе Microsoft Entra.
Чтобы добавить URI перенаправления с подстановочными знаками в регистрации приложений, которые используются для входа в рабочие или учебные учетные записи, используйте редактор манифеста приложения в разделе Регистрация приложений на портале Azure. Хотя с помощью редактора манифеста действительно можно задать URI перенаправления с подстановочными знаками, мы настоятельно рекомендуем придерживаться требований раздела 3.1.2 RFC 6749 и использовать только абсолютные URI.
Если вашему сценарию требуется больше URI перенаправления, чем максимально разрешено, вместо добавления подстановочного URI перенаправления используйте следующий подход с параметром состояния.
Если у вас есть несколько поддоменов и вам необходимо после успешной проверки подлинности перенаправлять пользователей на ту же страницу, с которой они начали, можно использовать параметр состояния.
Если вы используете этот подход:
Предупреждение
Такой подход позволяет скомпрометированному клиенту изменять дополнительные параметры, отправляемые в параметре состояния, поэтому пользователь перенаправляется на другой URL-адрес, что является угрозой открытого перенаправления, как описано в стандарте RFC 6819. Таким образом, клиент должен защищать эти параметры, шифруя состояние или проверяя его с помощью других средств, таких как сопоставление доменного имени в URI перенаправления с маркером.
Узнайте о манифесте регистрации приложения.
Обучение
Модуль
Узнайте, как Внешняя идентификация Microsoft Entra обеспечить безопасный, простой вход для потребителей и бизнес-клиентов. Ознакомьтесь с созданием клиента, регистрацией приложений, настройкой потока и безопасностью учетной записи.