Keycloak konfiguracija
{
"oidc_providers": {
"keycloak": {
"display_name": "Sign in with keycloak",
"provider_url": "https://keycloak.example.com/realms/master",
"client_id": "***",
"client_secret": "***",
"redirect_url": "https://semaphore.example.com/api/auth/oidc/keycloak/redirect"
}
}
}
Uloge u projektu na osnovu grupa Enterprise
Da biste koristili mapiranja grupa, dodajte mapper koji upisuje grupe korisnika u ID token:
- U Keycloak Admin Console otvorite svoj klijent, idite na Client scopes i otvorite scope
<client-id>-dedicated. - Dodajte mapper By configuration i izaberite Group Membership.
- Postavite Token Claim Name na
groupsi uključite Add to ID token. - Izaberite kako se šalju grupe pomoću Full group path. Kada je uključeno, Keycloak šalje putanju svake grupe, na primer
/devopsili/platform/sre, i mapiranje grupe mora da koristi tu putanju. Kada je isključeno, Keycloak šalje samo naziv grupe, na primersre.
Zatim postavite groups_claim za provajdera:
{
"oidc_providers": {
"keycloak": {
"...": "...",
"groups_claim": "groups"
}
}
}
Ne dodajte groups u scopes. Keycloak odbija scope koji ne poznaje, a mapperu nije potreban dodatni scope.
Prijava koju pokreće IdP
Da biste korisnicima omogućili da pokrenu Semaphore iz pokretača aplikacija u Keycloak Account Console, uključite prijavu koju pokreće IdP za provajdera:
{
"oidc_providers": {
"keycloak": {
"...": "...",
"allow_idp_initiated": true
}
}
}
Zatim u Keycloak Admin Console otvorite svog klijenta i postavite Home URL (Keycloak ≥ 19; starije verzije ga zovu Base URL) na:
https://semaphore.example.com/api/auth/oidc/keycloak/initiate
Kada korisnik klikne na aplikaciju u pokretaču, Keycloak preusmerava na ovaj URL sa parametrom iss. Semaphore
proverava iss u odnosu na vaš provider_url (izdavaoca realm-a) i započinje uobičajeni Authorization Code tok.
Povezani GitHub problemi
- #2308 — Kako isključiti proveru sertifikata za Keycloak server
- #2314 — Opcija za isključivanje TLS provere
- #1496 — Odjava iz Keycloak sesije prilikom odjave iz Semaphore-a
Pogledajte sve probleme povezane sa Keycloak-om →