Skip to main content
Skip table of contents

OAuth (Single signon)

Door gebruik te maken van Single Sign-on kunnen gebruikers inloggen in de web applicatie middels hun reguliere domein gebruikersaccount.

Hiervoor ondersteund Universe de oAuth standaard.

Vereiste hiervoor is dat gebruik gemaakt wordt van AzureAD of AD FS 2019 of hoger.

OAuth Implementatie LogisP 

 

De LogisP Universe web-applicatie is een Angular Single Page Application. De “angular-oauth2-oidc” package is geïmplementeerd, zie hier voor meer informatie: https://github.com/manfredsteyer/angular-oauth2-oidc

 Er wordt gebruik gemaakt van een PKCE flow.  

AzureAD

Uit te wisselen informatie: 

Redirect URL - deze ontvang je van Logis.P. Moet ingevoerd worden bij het aanmaken van de applicatie in AzureAD.. 

TenantID - Deze wordt tijdens de procedure gegenereerd. Doorgeven aan Logis.P.

ClientID - Deze wordt tijdens de procedure gegenereerd. Doorgeven aan Logis.P. 

Configuratie:

In Azure moet er onder Microsoft Entra een Enterprise Application aangemaakt worden. Binnen deze Enterprise Application kunnen er 1 of meerdere redirectURI’s worden geconfigureerd.

Hierdoor kunnen een ontwikkel-, acceptatie- en productieomgeving van dezelfde Enterprise Application gebruik maken.

De Enterprise Application kan middels de volgende stappent aangemaakt worden (let op: Microsoft veranderd regelmatig hoe deze pagina’s er uit zien):

  1. Ga naar Microsoft Entra ID > Manage > Enterprise Applications

image-20240716-104539.png
  1. Kies ‘New application’:

image-20240716-104807.png
  1. Kies ‘Create your own application’:

image-20240716-104927.png
  1. Geef de applicatie een passende naam, bijvoorbeeld “CassControl”, “Universe“ of “LogisP“. Registreer de applicatie met Entra ID integratie:

image-20240716-105053.png
  1. Kies welke typen accounts gebruik mogen maken van de applicatie (meestal zal het single tenant zijn). Geef bij de Redirect URI aan dat het een Single Page Application betreft. De in te voeren URI zal vanuit LogisP aangeleverd worden:

image-20240716-105217.png
  1. Ga vervolgens via EntraID > Enterprise Applications naar de nieuw aangemaakte applicatie (in dit voorbeeld 'UniverseTEST'):

    image-20240716-105750.png

     

  2. Ga naar Manage > Single sign-on en kies ‘Go to application’ bij ‘Configure application properties’:

image-20240716-110019.png
  1. Ga vervolgens naar Manage > Authentication. Zet het vinkje aan bij ‘ID tokens (used for implicit and hybrid flows)’:

image-20240716-110229.png
  1. Ga nu naar Manage > Token configuration:

image-20240501-095008.png
  1. Klik op Add optional claim. Kies hier voor Token type ID en vink UPN aan.

image-20240501-095119.png
  1. Er zal gevraagd worden om API permissions voor 'Profile' toe te voegen. Bevestig dat.

Deze kun je controleren on 'API permissions':

image-20240501-095252.png
  1. Na het aanmaken van de applicatie hebben we gegevens uit de Overview nodig:.

    Geef de Application (client) ID en de Directory (tenant) ID door aan LogisP.

image-20240716-110547.png

AD FS

Uit te wisselen informatie: 

Redirect URL - deze ontvang je van Logis.P. Moet ingevoerd worden in AD FS. 

Provider URL - De ADFS-endpoint. Doorgeven aan Logis.P.

ClientID - Deze wordt tijdens de procedure gegenereerd. Doorgeven aan Logis.P. 

Configuratie

Voeg een applicationgroup toe met de juiste naam, bijvoorbeeld Casscontrol of Universe. Binnen de application group voeg je dit toe:

'Native application'. Deze bevat:

  • Client Id (guid)

  • Redirect URL

Web application’. Deze bevat:

  • Relying party identifier: zelfde guid als Client Id

  • Issuance Transform Rules:

    LDAP-kenmerk verzenden als claims

    image-20240605-072205.png

    Regeltaal:

    CODE
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
     => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);

     

  • Client Permission: All clients: profile

De juiste ADFS response headers moeten worden geconfigureerd:

X-Frame-Options:

CODE
Set-AdfsResponseHeaders -SetHeaderName "X-Frame-Options" -SetHeaderValue "allow-from https://adfs.servervandeklant.nl"      

Content-Security-Policy: (ten bate van CORS indien nodig, deze regel is de default configuratie)

CODE
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:;"

CORS:

CODE
Set-AdfsResponseHeaders -EnableCORS $true
Set-AdfsResponseHeaders -CORSTrustedOrigins https://casscontrolurl.klant.nl  

X-XSS-Protection:

CODE
Set-AdfsResponseHeaders -SetHeaderName "X-XSS-Protection" -SetHeaderValue "<0/1/1; mode=block/1; report=<reporting-uri>>"

 

 

Als de configuratie werkt moet er uiteindelijk /universe/auth/oauth worden aangeroepen met een Identitytoken die de UPN van de gebruiker bevat.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.