Компания, в которой я работаю, намеревается перейти на Keycloak / RedHat-SSO для идентификации пользователей и управления доступом.
В следующем проекте в очереди есть необходимая внешняя интеграция с защищенными API. Ожидается, что мы настроим внешнюю службу с конечной точкой обнаружения OAuth 2.0 для нашего собственного IDP, а когда мы делаем защищенные вызовы API для внешней службы, мы просто передаем наши собственные JWT (которые они могут проверять).
В идеале мы бы создали потоки OID C для регистрации / входа, сброса пароля и т. д. c. в рамках нашего IDP-решения и выполняйте JIT-миграцию клиентов из текущего состояния. К сожалению, у нас нет возможностей сделать все это, так как есть ряд нативных приложений, SPA, веб-приложений, которые необходимо интегрировать.
У меня возникла идея, где мы могли бы потенциально синхронизировать идентификаторы из текущего состояния при регистрации / входе и сбросе паролей клиентов и использования потока ROP C из процесса аутентификации текущего состояния для получения токена доступа (JWT) из IDP, который будет возвращен приложениям. JWT будет использоваться, по крайней мере на данный момент, только для аутентификации во внешнем сервисе, с которым мы интегрируемся.
Я думаю, что это будет работать, но есть довольно много мест, где нам, вероятно, понадобится синхронизировать (включая некоторые неприятные унаследованные приложения). Мне было интересно, есть ли способ в Keycloak избежать синхронизации идентификаторов из текущего состояния, например, когда клиент проходит аутентификацию в текущем состоянии, я хотел бы иметь возможность сказать «эй, Keycloak, дайте мне JWT для этих учетных данных аутентификации», где учетные данные не переносятся и сохраняются в Keycloak. В основном поток ROP C, где Keycloak аутентифицируется по отношению к внешней базе данных / API-интерфейсу аутентификации ...
Возможно ли это в Keycloak? Если так; не могли бы вы сказать мне высокоуровневый подход, который мне нужно предпринять ...
С уважением, Райан.