Microsoft Entra ID over OIDC
Forfatter: Rene Giovanni Borella
Ved at oprette en App Registration i Azure Portal kan man tillade brugere fra ens eget Microsoft miljø at oprette sig. Koblingen her benytter OIDC.
Opret App
Start med at oprette en App Registration som er bindeledet mellem Entra og Keycloak.
- Name: Angiv et sigende navn
- Supported account types: Vælg de relevante kontotyper for din organisation
- Redirect URI (optional): Udfyldes senere under Authentication
Når applikationen er oprettet gemmes Application (client) ID, og Directory (tenant) ID til senere.
Opret adgang
Når applikationen er oprettet er det muligt at lave adgang udefra. Dette gøres ved at oprette en Client Secret. Naviger til Certificates & secrets og opret en New Client secret som vil fungere som nøgle.
- Description: Angiv et sigende navn til nøglen
- Expires: Angiv hvor længe nøglen skal være aktiv
Her gemmes Value (Client Secret) til senere.
Redirect
Ud over Client secret, skal der sættes en Redirect som sikrer at anmodninger kun bliver sendt det rigtige sted hen.
For at oprette en Redirect, navigeres til Authentication (Preview) og Add Redirect URI tilføjes
- Select a platform to add redirect URI: Vælg
WebunderWeb applications - Redirect URI: Sæt adressen som du har fået fra support
Rettigheder
Når man opretter App er der som standard tilladt User.Read som er nødvendig for at kunne logge ind. Det er ikke nødvendigt med andre rettigheder.
Gruppeforhold
Nogle af vores løsninger kan benytte brugerens gruppeforhold i AD til rettighedsstyring. Hvis man skal have overført gruppeforhold sammen med identiteten, skal disse sættes i token.
For at tilføje grupperne til token, navigeres til Token configuration og Add groups claim tilføjes.
- Select group types to include in Access, ID, and SAML tokens: Sæt flueben i
Groups assigned to the application - Customize token properties by type: Sæt
sAMAccountNamefor alle typer
Man kan begrænse adgangen til App, navigerer man til sin applikation under Enterprise applications -> Manage -> Users and groups. Her tilføjes grupper som skal overføres sammen med claim. Eksempelvis kan man vha. grupper opdele nedarvning af rettigheder i MapConnect.
Hvis man er i tvivl om grupperne der er tilgængelig for Geopartner kan man benytte jwt.ms.
Start med at tilføje https://jwt.ms til redirect, og gå til et link som:
https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize?client_id={CLIENT_ID}&response_type=id_token&redirect_uri=https%3A%2F%2Fjwt.ms&response_mode=fragment&scope=openid&state=1asdfxxc0962aszdfasdfa&nonce=6780Erstat TENANT_ID og CLIENT_ID med jeres egne værdier. Hvis den afkodede token ser sådan ud:
{ ...}.{ ... "groups": [ "Gruppe_1", "Gruppe_2", "Gruppe_3", ], ...}.[Signature]Vil grupperne blive gemt på den enkelte bruger. Informationen vil blive opdateret hver gang brugeren logger på.
Når man er færdig med at teste, kan man med fordel fjerne https://jwt.ms fra redirect
Færdiggørelse
Vi er nu ved at være færdige med opsætning af Entra, og brugerne kan nu logge på. For at opsummere er her en tabel med informationer der er krævet for at få opsætningen til at lykkes.
| Værdi | Hvor findes informationen | Hvem skaffer informationen |
|---|---|---|
| Client ID | App -> Dashboard | IT-afdeling |
| Tenant ID | App -> Dashboard | IT-afdeling |
| Client Secret | App -> Authentication (Preview) | IT-afdeling |
| Gruppe claim | Enterprise applications -> Manage -> Users | IT-afdeling |
| Redirect URI | Keycloak IdP | Geopartners implementeringsansvarlige |