Как я могу ограничить доступ пользователя к логину / аутентификации для определенных c приложений в рамках одного арендатора? - PullRequest
1 голос
/ 16 апреля 2020

У меня один арендатор с четырьмя (4) заявками и десятью (10) пользователями. Я хочу, чтобы 3 пользователя имели доступ для входа ко всем четырем приложениям, а 7 пользователей имели доступ для входа только к двум приложениям. Однако, похоже, что каждый раз, когда я добавляю пользователя в Арендатор, пользователь получает права «логин / аутентификация» для всех 4 приложений.

Перед установкой и настройкой FusionAuth я подумал, что смогу использовать функцию «Группы» для создания группы под названием «Группа-А», которая «предоставит» доступ для входа во все 4 приложения и другое. группа под названием «Группа-B» с «предоставлением» доступа для входа в систему только для 2 приложений. Я бы назначил 10 пользователей для Group-A или Group-B и ограничил бы, какой пользователь мог войти / аутентифицироваться для определенного приложения.

Эта возможность не существует. Что я недопонимаю?

1 Ответ

1 голос
/ 17 апреля 2020

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

Конкретная реализация c зависит от вашей интеграции с FusionAuth:

Если вы используете интерфейс OAuth, когда FusionAuth перенаправляет обратно в ваше приложение, он передает параметр с именем userState. Это подсказка вашему приложению о том, зарегистрирован ли пользователь для него. Если значение этого параметра равно AuthenticatedNotRegistered, вам не следует разрешать доступ к приложению.

Кроме того, если вы используете рабочий процесс OAuth, при обмене кода авторизации на токен этот токен не будет включите идентификатор приложения или любые роли, которые пользователь имеет для приложения.

Если вы используете API /api/login, то ответ будет содержать код состояния 202, который указывает, что пользователь прошел проверку подлинности но не зарегистрирован для заявки. Точно так же JWT, который возвращает этот API, также не будет включать идентификатор приложения или какие-либо роли.

Вот страницы do c для API OAuth и Login:

...