Создание пользователей в Azure AD через Angular с использованием MSAL.js - PullRequest
1 голос
/ 15 мая 2019

С точки зрения веб-приложений возможно ли, чтобы пользователь создал учетную запись Azure AD (предоставив адрес электронной почты, имя, номер телефона и т. Д.), Которую веб-приложение может пересылать в Azure AD?

Я пытаюсь использовать MSAL.js для Angular , и после примера у меня может появиться всплывающее окно для входа в систему, которое запрашивает электронную почту Microsoft через getUser ():

Из примера:

 constructor(private broadcastService: BroadcastService , private authService : MsalService,   private productService: ProductService)
  {
    //  This is to avoid reload during acquireTokenSilent() because of hidden iframe
    this.isIframe = window !== window.parent && !window.opener;
   if(this.authService.getUser())
    {
      this.loggedIn = true;
    }
   else {
     this.loggedIn = false;
   }
  }

Однако я чувствую, что мне не хватает той части, где добавляются пользователи.Можно ли добавлять пользователей только по приглашению на портале Azure?Можно ли программным способом добавить пользователя в Azure AD, указав имя, адрес электронной почты, номер телефона и т. Д. И попросив их сгенерировать пароль при первом входе в систему?

1 Ответ

1 голос
/ 15 мая 2019

msal-angular библиотека, которую вы упомянули, и другие подобные библиотеки аутентификации клиентов Microsoft ( подробнее здесь ) помогают только в аутентификации пользователей / приложений и получении токенов для вызова защищенных веб-API.

Вы можете посмотреть на Microsoft Graph API , чтобы добавить пользователей в Azure AD.Таким образом, msal-angular может помочь вашему приложению приобрести токены для аутентификации в Microsoft Graph API, который затем может предоставить необходимую функциональность.

Посмотрите на Создать пользователя Microsoft Graph API.

Требуемые разрешения :

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

Как вы упомянули angular, так что если это SPA, работающий в клиентском браузере, вам потребуетсяработать только с Delegated permissions, т.е. в контексте зарегистрированного пользователя.(Application permissions может использоваться конфиденциальными клиентами, такими как приложение для бэкэнда, но это может не относиться к вашему случаю.)

enter image description here

Пример запроса:

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "displayName-value",
  "mailNickname": "mailNickname-value",
  "userPrincipalName": "upn-value@tenant-value.onmicrosoft.com",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "password-value"
  }
}

Быстрое тестирование

Microsoft Graph Explorer - его можно использовать для быстрого тестирования создания пользователя или любых других API-интерфейсов Microsoft Graph дляэто важно.

Дополнительные примеры кода

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