#authentication #oauth #keycloak #scopes
#аутентификация #oauth #keycloak #области
Вопрос:
Я пытаюсь настроить поток браузера KeyCloak, чтобы разрешить пользователям запрашивать scope1
форму пользователя / пароля, а пользователям запрашивать scope2
требование использовать форму пользователя / пароля плюс OTP. Мой вопрос состоит из двух частей:
- Я что-то неправильно понимаю — я удивлен, что мне приходится кодировать это самостоятельно, и это еще не доступно в Keycloak
- Будет ли этот описанный подход работать?
Я не хочу делать это условием для пользователя, а вместо этого для запрашиваемой области. Из того, что я могу сказать, чтобы сделать эту работу, мне нужно реализовать пользовательский ConditionalAuthenticator
, а затем настроить примерно так, Condition - User Configured
заменив его моей собственной реализацией.
Комментарии:
1. Будет ли возможность использовать роли вместо областей?
2. К сожалению, нет, мне нужно, чтобы поток аутентификации менялся в зависимости от того, что запрашивал вызывающий. Вызывающий имеет право запрашивать любую из возможных областей (у них есть все необходимые роли)
3. Меня интересует этот вопрос, если я получу ответ, я прокомментирую
Ответ №1:
Я рекомендую проверить эти ссылки:
- Документация по Keycloak на Github keycloak-условная аутентификация документации
- Вы можете ознакомиться с этим примером ConditionalOtpFormAuthenticator.java
Я пытаюсь разработать что-то вроде того, что вы хотите, в качестве альтернативы я использую HttpHeader в специальном использовании Cookie для выбора того или иного потока, возможно, эта идея может вам помочь.