MSAL-angular запрашивает дополнительные предпосылки

#angular #azure #microsoft-graph-api #msal #msal.js

#angular #azure #microsoft-graph-api #msal #msal.js

Вопрос:

Я новичок в MSAL и испытываю проблемы с чем-то, что кажется довольно простым.

В настоящее время я создаю приложение панели мониторинга, которое может считывать информацию о клиентах через Microsoft Graph. До сих пор я добавлял новых клиентов, регистрируя приложение на портале Azure. Теперь я хотел бы автоматизировать этот процесс, разрешив пользователю войти в систему и попросить приложение создать для него регистрацию.

Я использовал этот учебник, чтобы начать работу с MSAL, и все работает нормально до тех пор, пока я не попытаюсь запросить дополнительные предпосылки

Насколько я понимаю, мне нужно будет добавить необходимые предпосылки в consentscope в MsalModule

  MsalModule.forRoot(
      {
        auth: {
          clientId: "c91b9c1f-662c-491c-870c-fff04dd9b065",
          redirectUri: "https://parigxprz.github.stackblitz.io"
        },
        cache: {
          cacheLocation: "localStorage",
          storeAuthStateInCookie: isIE // set to true for IE 11
        }
      },
      {
        popUp: !isIE,
        //adding extra premissions here
        consentScopes: ["user.read", "openid", "profile", "calendar.read","mail.read"],
        protectedResourceMap: [
          ['https://graph.microsoft.com/v1.0/me', ['user.read']],
        ],
        unprotectedResources: [],
        extraQueryParameters: {}
      }
    )
  

И что это будет отображаться здесь

введите описание изображения здесь

Теперь, к сожалению, это, похоже, не относится ко мне, поскольку он запрашивает только предварительное чтение базового профиля, а не календаря или почты. Я также попытался добавить его в вызов loginpopup следующим образом

  this.authService.loginPopup({
        extraScopesToConsent: ["user.read", "openid", "profile", "calendar.read","mail.read"]
      });
  

Но это, похоже, не сильно меняется.

Вот stackblitz с использованием примера приложения из примера github azure.

https://stackblitz.com/edit/github-o6tcvk?file=src/app/app.component.ts

Любая помощь будет оценена.

Ответ №1:

Это необходимо настроить при регистрации приложения на портале Azure. Посмотрите на раздел API и выберите соответствующие разрешения в graph api. Возможно, вам придется предоставить согласие администратора, прежде чем ваши пользователи смогут утвердить доступ.

Комментарии:

1. Привет, спасибо за ответ, я попытался добавить предпосылки, как вы можете видеть здесь imgur.com/u9CLdXV . Но, к сожалению, он по-прежнему не запрашивает предоставление этих разрешений при входе в систему от другого клиента. Вот как это выглядит на вкладке enterprise application от другого клиента при входе в систему с пользователем из этого другого клиента imgur.com/u9CLdXV