Sign inSign up

rrrrrr111/keycloak_cryptopro

By rrrrrr111

•Updated about 3 years ago

Keycloak + CryptoPRO JCP + GOST algorithms

Image
0

3.7K

rrrrrr111/keycloak_cryptopro repository overview

⁠Создание контейнера

Например:

docker run -d --name keycloak \
    -e DB_VENDOR=postgres \
    -e JDBC_PARAMS='connectTimeout=10' \
    -e DB_ADDR='172.18.0.6' \
    -e DB_PORT='5432' \
    -e DB_DATABASE='keycloak' \ 
    -e DB_USER='postgres' \
    -e DB_PASSWORD='postgres' \
    -p 8090:8080 \
    -e KEYCLOAK_USER=admin \
    -e KEYCLOAK_PASSWORD=admin \
    -v /opt/docker/keycloak/standalone/configuration/standalone-ha.xml:/opt/jboss/keycloak/standalone/configuration/standalone-ha.xml \
    -v /opt/docker/keycloak/standalone/conf:/opt/jboss/keycloak/standalone/conf \
    -v /opt/docker/keycloak/standalone/keys:/var/opt/cprocsp/keys \
    -v /opt/docker/keycloak/standalone/log:/opt/jboss/keycloak/standalone/log \
    rrrrrr111/keycloak_cryptopro
⁠Конфигурация плагина для подписи токенов ГОСТ алгоритмом
  • Папка контейнера /var/opt/cprocsp/keys используется для хранения ключей CryptoPRO JCP. Папки ключей кладутся в подпапки с именами профилей пользователей. По умолчанию приложение в контейнере запускается под пользователем jboss, соответственно ключи должны размещаться в /var/opt/cprocsp/keys/jboss/.

  • В настройках keycloak нужно подключить модуль CryptoPro, для этого в файле <keycloak_home>\standalone\configuration\standalone-ha.xml добавить:

      ...  
      <subsystem xmlns="urn:jboss:domain:ee:5.0">
          ... 
          <global-modules>
              <module name="cryptopro" slot="main" />            
          </global-modules> 
      </subsystem>
      ...
    
  • Через административный интерфейс Keycloak добавить необходимый провайдер подписи. Для этого в настройках Realm на закладке Keys -> Providers, добавить keystore типа 'gost-keystore'. В настройках нового keystore указать соответствующие настройки ключа подписи, при работе с CryptoPro указать JCA Provider: JCP, провайдер JCP не появится в списке если модуль CryptoPro не был подключен. Указать Keystore: HDImageStore. Удалить остальные провайдеры подписи на закладке Providers. В настройках Realm на закладке Tokens выбрать необходимый ГОСТ алгоритм подписи.

Tag summary

Content type

Image

Digest

sha256:58b6eb63f…

Size

860.2 MB

Last updated

about 3 years ago

docker pull rrrrrr111/keycloak_cryptopro