No description
  • Go 93.8%
  • Makefile 5.8%
  • Dockerfile 0.4%
Find a file
2021-12-08 10:05:01 +03:00
cmd/kct [MESH-173] GitlabCI cmd helper: check if secret exists in vault, generate and save if needed 2021-12-08 10:05:01 +03:00
pkg [MESH-173] pkg/app: rename keycloakManager -> Keycloak; vaultHelper -> VaultHelper 2021-12-08 10:03:36 +03:00
.gitignore [MESH-168] exclude /bin 2021-11-26 15:42:15 +03:00
.gitlab-ci.yml [MESH-173] fix 2021-11-30 22:43:06 +02:00
.golangci.yml [MESH-168] integrated golangci; taken from warden project 2021-11-26 15:57:38 +03:00
Dockerfile [MESH-173] fix 2021-11-30 22:46:41 +02:00
DockerfileBuildLocal [MESH-173] 2021-12-01 13:06:40 +02:00
go.mod [MESH-173] github.com/stretchr/testify 2021-12-01 16:30:02 +02:00
go.sum keycloak tool rc 2021-11-11 18:23:04 +03:00
Makefile [MESH-173] upd Makefile build step: verbose mode + format 2021-12-07 12:44:10 +03:00
README.md [MESH-168] upd README.md 2021-11-26 17:04:16 +03:00

kct - KeyCloak Tool

Утилита для управления межсервисной авторизацией. Управляет сервисами, ролями и маппингами ролей между сервисами. При создании и удалении сервиса, добавляет и удаляет секрет из Vault.

Для сохранения в Vault нужен доступ к соответствующему namespace у пользователя. Также требуется установить клиент и авторизоваться:

export VAULT_ADDR="https://vault.s.o3.ru:8200"
vault login -method oidc

Проверить доступы можно в клиенте:

vault token capabilities o-secret/stg/platform/demo/service2
vault token capabilities o-secret/stg
vault token capabilities o-secret/prod

Для авторизации в Keycloak откроется страница браузера. Пользователю необходимо обладать правами на управления Realm-ом service2service.

Доступные команды:

service add service2 platform/demo/service2
service del service2 platform/demo/service2
service del service2
service ls

role add <svc> <role>
role del <svc> <role>
role ls <svc>

map add <cli> [to] <tgt> <role> [-f]
map del <cli> [to] <tgt> <role>
map ls <cli> [to] <tgt>

Примеры команд

service add service1 platform/demo/service1

role add service1 /ozon.platform.demo.service1.api.strings.Strings/ToUpper
role add service1 /ozon.platform.demo.service1.api.strings.Strings/*
role ls service1
role del service1 wrong

map ls service2 service1
map add service2 service1 /ozon.platform.demo.service1.api.strings.Strings/ToUpper
map add service2 service1 /ozon.platform.demo.service1.api.strings.Strings/ToLower
map ls service2 service1
map del service2 service1 /ozon.platform.demo.service1.api.strings.Strings/ToLower
map ls service2 service1