Определите, включен ли для пользователя маскировки ключей TOTP

#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)
 

Вот видео, в котором объясняются первые шаги.