Вы получаете соответствующий код ошибки от Azure AD - 65004, сообщающий вам основную причину, которую администратор отказался принять. Описание отображается в URL, и если вы можете подтвердить значение кода ошибки, посмотрев его здесь -
Коды ошибок отчета о входе в систему на портале Azure Active Directory
65004 Пользователь отказался дать согласие на доступ к приложению. Попросите пользователя повторить
вход в систему и согласие на приложение
Обновление об отображении содержательной страницы ошибки
Вы не упомянули, что вы используете для написания своего веб-приложения. В любом случае, я попробовал быстрое веб-приложение ASP.NET MVC с аналогичной настройкой и четко получил ответ в параметрах строки запроса. Все, что вам нужно сделать, это прочитать строку запроса с URL-адреса (в моем примере есть коллекция HttpRequest.QueryString) и проверить наличие ошибки / error_description.
Вот краткий пример кода для этого в контроллере MVC.
public class AdminConsentController : Controller
{
// GET: AdminConsent
public ActionResult Index()
{
if (Request.QueryString.AllKeys.Contains("error")
&& Request.QueryString.AllKeys.Contains("error_description"))
{
string errorDescription = Request.QueryString["error_description"];
if(errorDescription.Contains("AADSTS65005"))
{
//Do something good about it..
}
}
//if no errors, simply return the view
return View();
}
Так как вы упомянули Angular 5 ... вот быстрый пример для этого.
Взгляните на это ТАК сообщение для нескольких вариантов
ngOnInit() {
this.param1 = this.route.snapshot.paramMap.get('param1');
this.param2 = this.route.snapshot.paramMap.get('param2');
}
И если вы не хотите использовать что-то необычное, просто старое window.location всегда должно работать со стороны клиента. Возможно, не рекомендуемый способ.
window.location.href