Многопользовательское приложение Azure Active Directory с Msal для Angular 6 - PullRequest
0 голосов
/ 03 октября 2019

Мы разрабатываем SPA (одностраничное приложение), которое может использовать любой пользователь с действующей учетной записью Azure. Приложение использует разрешения, такие как Azure Resource Management (user_impersonation), для отображения статистики и мониторинга некоторых ресурсов Azure.

Приложение построено на Angualr 6+, и мы используем самую последнюю версию Msal-Angular для аутентификации. (пакет rxjs-compact установлен для поддержки angualr 6+)

Я уже зарегистрировал регистрацию приложения в Azure (мультитенант) с настроенными разрешениями, но у меня возникают проблемы при настройке Msal-Angularдля поддержки Multi-Tenancy.

Наша конфигурация работает для пользователей организации, но не для личных учетных записей, которых нет в моей Active Directory.

MsalModule.forRoot({
  clientID: environment.aadClientId,
  redirectUri: environment.redirectUri,
  authority: 'https://login.microsoftonline.com/organizations/',

  protectedResourceMap: [['https://management.azure.com/', ['https://management.azure.com/.default']]]
})

Если я пытаюсь изменить полномочия на «общие», как показано ниже:

'https://login.microsoftonline.com/common/'

Логин работает, но области не получены правильно, и любая попытка получить доступ к безопасному API, например 'https://management.azure.com/', приводит к следующей ошибке:

ERROR Предоставленное значение для входного параметра' scope 'не является действительным. Область 'https://management.azure.com/.default openid profile' не существует. | Invalid_scope

Я что-то не так делаю? Можно ли это реализовать с помощью Msal-Angular или мне следует использовать Msal Core?

1 Ответ

1 голос
/ 07 октября 2019

Чтобы войти в личный кабинет, вам нужно использовать общую конечную точку https://login.microsoftonline.com/common/.

И поддерживаемый тип учетной записи должен быть " Учетные записи в любом каталоге организации (любой каталог Azure AD - Мультитенант) и личные учетные записи Microsoft (например, Skype, Xbox) "

enter image description here

Однако: https://management.azure.com api не поддерживается при использовании common конечной точки и личных учетных записей. Здесь вы можете использовать только мультитенантных пользователей.

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