Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Konfiguration af NSP OpenID Connect (OIDC) Keycloak server med NSP plugins

Dette projekt Keycloak konfigureres ved hjælp af Terraform og Keycloaks Terraform provider. Projektet https://git.nspop.dk/scm/con/keycloak-configuration.git indeholder Terraform konfigurationsfiler til at konfigurer Keycloak installationerne i EHMI projektet.

...

├── README.md
└── terraform
    └── configuration
        ├── modules
        ├── localhost
      ├── test1
      └── test1test2


modules

Denne folder indeholder konfigurationer (i form af Terraform moduler) som bruges generelt for installationer på alle 
miljøer.

...

Denne folder indeholder konfiguration af NSP test1 miljøet. OBS: State er ikke git ignored for denne folder. Det betyder
at enhver vedligholdelse af Keycloak på test1 skal koordineres således at der ikke kan opstå merge konflikter i Terraform
state (~ major headache)Terraform state gemmes på deploy serveren.

test2

Denne folder indeholder konfiguration af NSP test2 miljøet. Terraform state gemmes på deploy serveren.


Keycloak Terraform provider

Der benyttes i øjeblikke en fork af terraform som skal hentes fra dette repo : https://github.com/Flintholm/terraform-provider-keycloak

Formålet med denne fork er at understøtte brugen af `key_use` som er en forudsætning for at installere Java Keystores.

Når den er clonet, kan en lokal version bygges med `make build`. Se README.md i provideren (#development) for detaljer.
Resultatet er en binær version af Keycloak Terraform provideren.

For at denne bruges af Terraform (istedet for den officielle keycloak/keycloak provider) skal der laves en fil `~/.terraformrc` med
følgende indhold:

...

skal benyttes Keycloak provider version >= 5.8.0 for at understøtte keyUse i Java keyproviders i Keycloak.

Stien til provideren rettes selvfølgelig til så den passer til den folder hvor du har bygget provideren.

Hvordan opdateres Keycloak konfiguration via Terraform ?

...

rm -rf .terraform
rm -rf .terraform.lock.hcl
rm -rf terraform.tfstate
rm -rf terraform.tfstate.backup

NSP

...

miljøer

Princippet er præcist det samme som ved localhost ovenfor. Dog er der den væsentlige forskel at Terraform state er 
checket ind i dette git repo. State skal altid repræsentere hvad der er konfigureret i Test1. Dvs. processen for at 
lave opdateringer i f.eks. Test1 skal være

...

Brugen af DCR beskrevet i https://openid.net/specs/openid-connect-registration-1_0.html

Klient metadata og scripts til at kalde DCR ligger i repo https://git.nspop.dk/scm/con/keycloak-clients.git

For at gøre det lidt nemmere at oprette og vedligeholde klienter manuelt er der lavet 4 shell scripts 
til at kalde registrerings endpoints.

...