Как исправить ошибку «AADSTS90094: это приложение требует разрешения приложения для другого приложения» после согласия администратора - PullRequest
1 голос
/ 28 марта 2019

Недавно я запросил новые разрешения для приложения в своем многопользовательском приложении Azure AD, чтобы я мог получить доступ к API Graph.Я использую adal.js для аутентификации пользователей в веб-приложении, в то время как фактические запросы к Graph отправляются на сервер узла с использованием adal-node и сертификата.

Новые разрешения работают.Я могу получить доступ к Graph с помощью разрешений приложений, и у меня не было проблем с сервером узлов.

Проблема в том, что теперь, когда администраторы входят в веб-приложение (используя `adal.js), они представляютсяс экраном согласия, независимо от того, сколько раз они соглашаются.Пользователям, не являющимся администраторами, при каждом входе в систему предоставляется экран «Требуется подтверждение администратора», что лишает их возможности войти в систему вообще.

Я пробовал это на разных арендаторах с одинаковыми результатами.Я также попытался утвердить разрешения с помощью azure.portal.com и полностью удалить приложение из аренды и подтвердить их снова.

Я также попытался отобрать новые разрешения и вернуться к старым разрешениям.Несмотря ни на что, пользователи переходят на экран «Требуется утверждение администратора».

Код входа пользователя

public login(): void {
  this.adalContext.login();
}

Код входа администратора

public adminLogin(): void {
  this.adalContext.config.displayCall = (urlNavigate) => {
    let url = urlNavigate + "&prompt=admin_consent";
    this.adalContext.promptUser(url);
  };
  this.adalContext.login();
}

Чтобы было понятно, этоприложение работало нормально за месяц .Только после того, как я изменил разрешения, это начало происходить.

1 Ответ

1 голос
/ 28 марта 2019

Ответ на этот вопрос помог мне: Почему Azure AD не может войти в систему без прав администратора в сценарии с несколькими арендаторами?

Поскольку я запрашивал только для разрешений приложений, Azure AD по умолчанию всегда запрашивает согласие, когда пользователь входит в систему. Как только я добавил одно делегированное разрешение (Microsoft.Graph.User.Read), запрос на согласие исчез.

Я, должно быть, случайно пропустил это разрешение во время процесса добавления и удаления их во время устранения неполадок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...