как запретить пользователям входить в систему до тех пор, пока они не авторизуются в Azure B2C - PullRequest
0 голосов
/ 19 июня 2020
Приложение

My Angular 8 (. net core back end api) защищено Azure B2 C с использованием библиотеки MSAL. Пользователь регистрируется, и я использую Graph API для создания этого пользователя в B2 C, и у меня есть настраиваемый атрибут isActive, который я установил на False. Администратор приложения входит в приложение и предоставляет доступ, а созданный пользователь может получить доступ к приложению. Я хочу, чтобы пользователь не входил в систему, пока он не будет авторизован и не разрешен доступ администратором.

У меня вопрос, как я могу заблокировать пользователям вход в систему, пока для isActive не будет установлено значение true? В настоящее время я делаю это, как показано ниже, в своем компоненте приложения

  subscribeToBroadCastServiceOnLogin() {
this.broadcastService.subscribe("msal:loginSuccess", (success) => {     

  if (
    success.idToken.claims[
      "extension_3datttttxxxxxxxxxxxxxxxxxxxxxxxxx_isActive"
    ] !== true
  ) {
    window.alert("Your login is awaiting authorization from site Admin");

    return this.authService.logout();
  }

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

1 Ответ

2 голосов
/ 20 июня 2020

ваши параметры несколько ограничены в b2 c, в обычном azure объявлении у вас будет много вариантов, например, ограничение входа в панель корпоративного приложения или полное отключение входа в систему для этого пользователя.

Однако в b2 c у вас нет варианта 1, а вариант 2 предназначен только для локальных учетных записей. это означает, что любые учетные записи, созданные с помощью электронных писем в социальных сетях ... gmail, et c, вы не можете отключить вход.

Таким образом, кроме того, что вы делаете в настоящее время, единственным другим решением было бы создать поток приглашений или эквивалент, что в основном предотвращает регистрацию до одобрения администратора. чтобы вы могли создать что-то, что вызовет процесс регистрации по приглашению, как здесь: https://github.com/azure-ad-b2c/samples/tree/master/policies/invite, таким образом пользователь не будет создан, пока вы не отправите приглашение.

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