Сброс пароля Microsoft — параметр передачи, содержащий URI перенаправления после сброса

Мы используем OAuth 2 с Microsoft Azure Active Directory для единого входа. Когда пользователь выходит из системы, мы передаем его по следующему URL-адресу, в котором мы можем передать параметр запроса post_logout_redirect_uri:

https://login.microsoftonline.com/<tenant-id>/oauth2/logout?post_logout_redirect_uri=https%3A%2F%2Fexample.com%2F

Когда пользователь пытается войти на наш сайт, если он не аутентифицирован, он перенаправляется на страницу входа в Microsoft, и мы также передаем здесь параметр redirect_uri (с некоторыми другими не относящимися к делу параметрами запроса).

https://login.microsoftonline.com/<tenant-id>/oauth2/authorize?redirect_uri=https%3A%2F%2Fexample.com%2F

Если пользователь щелкает ссылку «забыли пароль» на странице входа, он может использовать самостоятельный сброс пароля Microsoft для сброса своего пароля, а затем получает ссылку для входа в систему с новым паролем (см. ниже). Нажав на эту ссылку, они вернутся на страницу входа в систему, а после входа в систему они будут перенаправлены обратно на наш сайт.

Сброс пароля Microsoft — параметр передачи, содержащий URI перенаправления после сброса

Однако мы также отправляем пользователям ссылку для прямого доступа к странице сброса пароля:

https://passwordreset.microsoftonline.com

Когда пользователь переходит по этой ссылке и сбрасывает свой пароль, ссылка To sign in with your new password, click here. не отображается. Есть ли способ передать параметр запроса в этот URL-адрес, аналогичный конечным точкам входа и выхода, чтобы эта ссылка отображалась и перенаправляла на значение, переданное для этого параметра?

Я пытался использовать redirect_uri и post_reset_redirect_uri безрезультатно и не смог найти никакой документации по этому поводу.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
4
0
586
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Изучив процесс сброса пароля и все параметры строки запроса, которые он использует, я смог получить ссылку для To sign in with your new password, click here., используя параметр строки запроса ru

Новая ссылка, которую вы должны попробовать

https://passwordreset.microsoftonline.com?ru = {url encoded value for return url}

Пример:

https://passwordreset.microsoftonline.com?ru=https%3A%2F%2Flogin.microsoftonline.com%2F<tenant-id>%2Foauth2%2Fauthorize%3Fredirect_uri%3Dhttps%253A%252F%252Fexample.com%252F%26client_id%3DmyclientGUID%26response_type%3Did_token%26state%3D123456%26nonce%3DGUID

ПРИМЕЧАНИЕ. Закодированное значение URL-адреса, которое я использовал, в основном является тем же URL-адресом и параметрами, которые используются, когда я пытаюсь войти на свой сайт, т. е. беру URL-адрес из браузера, когда вам предоставляется страница входа в Microsoft как часть обычного входа на сайт. . (ничего общего со сбросом пароля). Затем предоставил новый случайный GUID для одноразового номера и другое случайное значение для параметров состояния.

Отказ от ответственности: я не нашел официальной документации для этого. Это скорее пробная версия и обработка HTTP-запросов, созданных с помощью обычного потока сброса пароля.

К сожалению, мое приложение не сможет сгенерировать все соответствующие параметры, так как я считаю, что некоторые из них являются токенами oauth и параметрами, которые указывают состояние и т. д. (некоторые из которых, как мне кажется, генерируются самой Azure). Я попытался передать только URL-адрес моего приложения в качестве параметра ru, но ссылка не появилась.

Andrew Mairose 07.05.2019 19:51

Ах, я могу оставить сгенерированные Azure параметры отключенными, и это работает! Единственное, что нужно знать моему приложению, генерирующему ссылку, — это идентификатор арендатора и идентификатор клиента, которые являются статическими значениями, которые я могу предоставить ему через файл свойств.

Andrew Mairose 07.05.2019 19:59

Другие вопросы по теме