Мне нужно несколько советов, чтобы понять, как выполнить проверку подлинности клиента с помощью сертификата x509 для Keycloak.
У нас есть простое Spring Boot Web App (API REST) в кластере Kubernetes. Это веб-приложение публикуется c через API-шлюз (Ambassador) и в настоящее время защищено перенаправлением браузера на страницу входа в Keycloak, где пользователь может ввести свое имя пользователя и пароль.
Однако это не то, что нам нужно , Нам необходима клиентская аутентификация (React Native Mobile App), где:
- Мобильное приложение пытается вызвать наши конечные точки REST Server API
- Проверка посла на наличие действительного токена доступа и (если нет) ответьте HTTP-статусом 403 (без перенаправления браузера)
- Мобильное приложение затем перенаправьте на Keycloak для выполнения аутентификации
- Keycloak не показывает страницу входа в систему с именем пользователя / паролем, но вместо этого мобильное приложение передает сертификат пользователя x509 через браузер.
К сожалению, я не могу понять, как создать действительный и доверенный сертификат x509 с данными пользователя (информация, роли e cc). ) для получения токена доступа от IdP.
И ... как IdP может проверять и проверять этот сертификат клиента? Требуется ли где-нибудь аналог Key сертификата, установленный на Keycloak?
Какая правильная форма (например, с CURL) для передачи сертификата клиента в keycloak? Нужно ли передавать также закрытый ключ и почему?