#keycloak #openid-connect #two-factor-authentication
Вопрос:
У меня есть одностраничное веб-приложение, которое аутентифицируется по ключу и позволяет пользователям включать TOTP на своей странице учетной записи с ключом.
Однако я хочу, чтобы клиентское приложение определило после входа в систему, включен ли у аутентифицированного пользователя 2-факторная аутентификация/TOTP или нет.
Можно ли отобразить эту (логическую) информацию в конечную точку Tokens или userinfo … Я не нашел ни одного пользовательского свойства, содержащего эту информацию.
Единственное место, где я его нашел , было в Admin-REST-API /auth/admin/realms/{realm}/users/{uuid}
, но клиент/конечный пользователь не будет и не должен иметь там доступа:
{
...
totp: true,
}
Ответ №1:
Я не думаю, что это возможно без настройки.
Возможно, вы захотите добавить пользовательский сопоставитель протоколов и проверить наличие totp, как это:
keyclaokSession.userCredentialManager().isConfiguredFor(realm, user, OTPCredentialModel.TYPE)
Вот видео, в котором объясняются первые шаги.