Connect to Context Handler / FKA with SAML 2.0
FoxIDs puo essere collegato a Context Handler con un metodo di autenticazione SAML 2.0.
Context Handler e un identity broker danese che collega i comuni danesi in una federazione comune, in danese chiamata Fælleskommunal Adgangsstyring (FKA).
Context Handler viene collegato come SAML 2.0 Identity Provider (IdP) basato su OIOSAML 3 e OCES3 (RSASSA-PSS).
Configurando un metodo di autenticazione SAML 2.0 e una registrazione applicativa OpenID Connect, FoxIDs diventa un bridge tra SAML 2.0 e OpenID Connect. FoxIDs gestira quindi la connessione SAML 2.0 come Relying Party (RP) / Service Provider (SP) e nella tua applicazione dovrai occuparti solo di OpenID Connect. Se necessario, potrai eventualmente selezionare piu opzioni di login, cioe piu metodi di autenticazione, dalla stessa registrazione applicativa OpenID Connect.
In test puoi accedere con il FoxIDs test IdP.

Oppure configurare un ambiente FoxIDs come test Identity Provider per Context Handler con una registrazione applicativa SAML 2.0 e autenticare utenti di test.
Context Handler puo essere configurato sulla base di OIOSAML 2 oppure OIOSAML 3 con OCES3 (RSASSA-PSS) e FoxIDs supporta inoltre i certificati richiesti ed e possibile supportare NSIS.
Puoi testare il login Context Handler con il sample web app online (documentazione sample) facendo clic su
Log ine poi suDanish Context Handler TESTper l'ambiente di test, selezionaFoxIDs - test-corpnella pagina di login Context Handler, oppureDanish Context Handlerper la produzione.
Dai un'occhiata alla configurazione sample Context Handler in FoxIDs Control: https://control.foxids.com/test-corp
Ottieni accesso in lettura con l'utentereader@foxids.come la passwordgEh#V6kSw, poi seleziona l'ambientecontext-handler,context-handler-testoppurecontext-handler-idp-test.
Il sample e configurato con ambienti separati per l'integrazione Context Handler SAML 2.0.
Documentazione Context Handler / FKA:
- Guida Context Handler guide.
- Portale di amministrazione
- Applicazione di test di Context Handler
Trasforma il DK privilege XML claim in un claim JSON.
Separate environment
Context Handler richiede che ogni connessione in un ambiente, test o produzione, usi un certificato OCES3 univoco.
Per questo motivo valuta di collegare Context Handler in ambienti separati dove i certificati OCES3 possano essere configurati.
Crea un nuovo ambiente in FoxIDs Control Client:
- Trova la sezione Environments al centro in alto
- Fai clic sul menu a discesa
- Fai clic su New environment

- Aggiungi il Name
- Fai clic su Create
Se configuri sia un ambiente di test sia uno di produzione, devono essere collocati in ambienti separati. Se configuri un test Identity Provider per Context Handler, anch'esso deve essere collocato in un ambiente separato e avere un certificato OCES3 univoco.
Puoi collegare facilmente due ambienti nello stesso tenant con un Environment Link.
Certificate
Context Handler richiede che tutte le richieste, authn e logout, siano firmate con certificati OCES3 di produzione in tutti gli ambienti. NON e possibile usare un certificato emesso da un'altra autorita di certificazione, un certificato self-signed o certificati OCES3 di test.
Un certificato OCES3 e valido per tre anni. Dopo di che deve essere aggiornato manualmente.
Aggiungi il certificato OCES3 .P12 in FoxIDs Control Client:
- Seleziona, oppure crea, un ambiente separato da usare per Context Handler come Identity Provider oppure per un test Identity Provider per Context Handler
- Seleziona la scheda Certificates
- Se non e configurato per i certificati contenuti, fai clic sulla freccia in basso nel pulsante Swap certificate e poi nella sezione Contained certificates fai clic su Change container type
- Fai clic sul certificato primario 5, Aggiungi la password in Optional certificate password
- Carica il certificato OCES3
.P12

Successivamente e possibile aggiungere un certificato secondario e passare dal certificato primario a quello secondario.
Configuring Context Handler as Identity Provider
Questa guida descrive come configurare Context Handler come SAML 2.0 Identity Provider e rispettare OIOSAML3.
Devi configurare il certificato OCES3 prima di seguire questa guida.
1 - Inizia creando un metodo di autenticazione SAML 2.0 in FoxIDs Control Client
- Seleziona la scheda Authentication
- Fai clic su New authentication e poi su Identity Provider (SAML 2.0)
- Aggiungi il Name, ad esempio
Context Handler - Aggiungi i metadata IdP Context Handler nel campo Metadata URL
Metadata test:https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2/metadata.idp
Metadata produzione:https://n2adgangsstyring.stoettesystemerne.dk/runtime/saml2/metadata.idp - Fai clic su Create

- Seleziona Show advanced
- Imposta Logout response binding su Redirect
- Configura un Custom SP issuer; l'issuer puo facoltativamente iniziare con
https://saml.. L'issuer in questo esempio ehttps://saml.foxids.com/test-corp/context-handler-test/ - Facoltativamente imposta Certificate validation mode su Chain trust se il certificato root OCES3 e trusted sulla tua piattaforma Imposta Certificate revocation mode su Online
- Seleziona Yes in Add logout response location URL in metadata
- Seleziona Yes in Include the encryption certificate in metadata
- Imposta NameID format in metadata su
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

- In Attribute consuming service in metadata, fai clic su Add attribute consuming service e aggiungi il Service name
- Aggiungi tutti i claim che vuoi ricevere come requested attributes con il formato
urn:oasis:names:tc:SAML:2.0:attrname-format:uri. Facoltativamente imposta ogni attributo come required.
I seguenti claim sono quelli piu usati:
https://data.gov.dk/model/core/specVersionhttps://data.gov.dk/concept/core/nsis/loahttps://data.gov.dk/model/core/eid/professional/cvrhttps://data.gov.dk/model/core/eid/professional/orgNamehttps://data.gov.dk/model/core/eid/cprNumberhttps://data.gov.dk/model/core/eid/emailhttps://data.gov.dk/model/core/eid/firstNamehttps://data.gov.dk/model/core/eid/lastNamehttps://data.gov.dk/model/core/eid/privilegesIntermediate

- In Contact persons in metadata, fai clic su Add contact person e poi su Administrative per aggiungere una persona di contatto amministrativa
- Fai clic su Update
- Vai all'inizio del metodo di autenticazione SAML 2.0
- Trova gli SP-metadata in SAML 2.0 method URL, in questo caso https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata.
- Lo SP-metadata URL viene usato per configurare un sistema utente Context Handler.
2 - Poi vai al portale di amministrazione Context Handler in Test oppure Production
- Seleziona IT-systems
- Fai clic su Add IT-system
- Compila i campi e seleziona User system
- Vai alla scheda User system
- Seleziona Context Handler with NSIS e rimuovi la selezione di Context Handler without NSIS
- Seleziona OIOSAML3 come profilo OIOSAML e livello NSIS
- Aggiungi lo SP-metadata URL del metodo di autenticazione SAML 2.0, in questo caso
https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata. - Compila il resto, accetta i termini e fai clic su Save
3 - Aggiungi la trasformazione del claim privilege in FoxIDs Control Client
FoxIDs puo trasformare il DK privilege XML claim in un claim JSON. Si raccomanda di aggiungere la trasformazione per ottenere claim e token piu piccoli. Inoltre rende i token leggibili.
- Seleziona la scheda Claim transform
- Fai clic su Add claim transform e poi su DK XML privilege to JSON
- Fai clic su Update

FoxIDs converte internamente i claim SAML 2.0 in claim JWT. Il mapping tra claim SAML 2.0 e JWT viene creato automaticamente per impostazione predefinita. Puoi trovare e modificare il mapping nella scheda Settings.
Hai finito. Il metodo di autenticazione SAML 2.0 puo ora essere usato come metodo di autenticazione per le registrazioni applicative nell'ambiente.
Una registrazione applicativa emettera solo i claim aggiunti.
Ricorda quindi di aggiungere i claim JWT alle registrazioni applicative OpenID Connect oppure di usare la notazione*.
Configuring test Identity Provider for Context Handler
Questa guida descrive come configurare FoxIDs come test Identity Provider per Context Handler. Context Handler viene aggiunto come SAML 2.0 Relying Party.
Devi usare un ambiente separato per avere uno spazio per gli utenti di test e configurare il certificato OCES3 prima di seguire questa guida.
1 - Inizia creando una registrazione applicativa SAML 2.0 in FoxIDs Control Client
Seleziona la scheda Applications
Fai clic su New application
Seleziona Show advanced
Seleziona Web Application (SAML 2.0)
Aggiungi il Name, ad esempio
Context Handler IdPScarica i metadata RP Context Handler, dove puoi trovare endpoint e certificato da trusted.
Metadata test:https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/metadata.idp
Il certificato e codificato in base64 e puo essere convertito in un file certificato.cercon il tool certificati FoxIDs.Aggiungi Application issuer
https://saml.n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtimee i metadataAggiungi Assertion consumer service (ACS) URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/consume.idpdai metadata
Fai clic su Register
Leggi Metadata URL e salvalo per dopo
Fai clic su Close
Si apre la configurazione dettagliata; seleziona Show advanced in alto a destra di questa sezione di configurazione
Abilita Absolute ACS URL
Imposta Encrypt authn response su Yes
Aggiungi il certificato di cifratura dai metadata in Encryption certificate
Imposta NameID format su
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectNameAggiungi Logged out URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffresponse.idpdai metadataAggiungi Single logout out URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffrequest.idpdai metadataImposta Logout request binding e Logout response binding su redirect
Imposta i claim OIOSAML3 che devono essere emessi verso Context Handler in Issue claims
I seguenti claim sono quelli piu usati:
https://data.gov.dk/model/core/specVersionhttps://data.gov.dk/model/core/kombitSpecVerhttps://data.gov.dk/concept/core/nsis/loahttps://data.gov.dk/model/core/eid/professional/cvrhttps://data.gov.dk/model/core/eid/privilegesIntermediate
- Aggiungi il certificato di firma dai metadata in Signature validation certificate
- Facoltativamente imposta Certificate validation mode su Chain trust se il certificato root OCES3 e trusted sulla tua piattaforma Imposta Certificate revocation mode su Online
- Imposta Authn response sign type su Sign assertion
- Configura un Custom IdP issuer; l'issuer puo facoltativamente iniziare con
https://saml.. L'issuer in questo esempio ehttps://saml.foxids.com/test-corp/context-handler-test-idp/ - Seleziona Yes in Add logout response location URL in metadata
- Seleziona Yes in Include the encryption certificate in metadata
- In Contact persons in metadata, fai clic su Add contact person e poi su Administrative per aggiungere una persona di contatto amministrativa

- Fai clic su Update
- Vai all'inizio della sezione applicazione SAML 2.0
- Trova i metadata del test IdP in SAML 2.0 Metadata, in questo caso
https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata
I metadata del test IdP vengono usati per configurare l'identity provider Context Handler.
2 - Poi vai al portale di amministrazione Context Handler in Test
- Seleziona IT-systems
- Fai clic su Add IT-system
- Compila i campi e seleziona Identity Provider
- Vai alla scheda Identity Provider
- Seleziona Context Handler with NSIS e rimuovi la selezione di Context Handler without NSIS
- Seleziona OIOSAML3 come profilo OIOSAML e livello NSIS
- Aggiungi il test IdP-metadata URL, in questo caso
https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata. - Compila il resto, accetta i termini e fai clic su Save
Devi essere registrato come tua propria test authority, in danese egen test myndighed, nell'ambiente di test per aggiungere un accordo di federazione. Un accordo di federazione, in danese føderationsaftaler, e necessario per abilitare l'identity provider in Context Handler.
3 - Aggiungi la trasformazione dei claim in FoxIDs Control Client
Crea i claim che devono essere emessi verso Context Handler nelle claim transforms.
- Torna all'applicazione SAML 2.0
Context Handler IdP - Seleziona la scheda Claim transforms
- Aggiungi un claim Constant
https://data.gov.dk/model/core/specVersioncon il valoreOIO-SAML-3.0 - Aggiungi un claim Constant
https://data.gov.dk/model/core/kombitSpecVercon il valore2.0 - Aggiungi un claim Constant per i livelli di assurance, loa,
https://data.gov.dk/concept/core/nsis/loacon ad esempio il valoreSubstantialoppure leggi il claim attraverso la pipeline dei claim

- Aggiungi un claim Concatenated per sostituire il claim NameID
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifiercon una versione concatenata del numero CVR, display name e unique user ID - Seleziona Action Replace claim
- Concatena i claim:
https://data.gov.dk/model/core/eid/professional/cvrhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givennamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surnamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
- Imposta Concatenate format string su
C=DK,O={0},CN={1} {2},Serial={3}
- Fai clic su Update
4 - Aggiungi i mapping da claim SAML 2.0 a claim JWT in FoxIDs Control Client
FoxIDs converte internamente i claim SAML 2.0 in claim JWT. Context Handler usa un set di claim SAML 2.0 definito da OIOSAML3 per cui i corrispondenti mapping JWT devono essere aggiunti nell'ambiente.
- Vai alla scheda Settings e a Claim mappings
- Fai clic su Add claim mapping per tutti i claim configurati nel passaggio 1.20; puoi creare tuoi nomi claim JWT brevi se non esiste un nome standard, oppure modificare i claim mappings se esistono gia
- Fai clic su Update
5 - Aggiungi utenti di test in FoxIDs Control Client
Puoi aggiungere utenti di test con claim di test nella scheda Users e sotto-scheda Internal Users.
I claim di test sugli utenti di test sono basati su JWT e mappati a claim SAML 2.0.
Ogni utente di test deve avere un claim CVR cvr, un claim given name given_name, un claim family name family_name e facoltativamente un claim privilege con un valore stringa XML privilege DK codificato in base64.

Se l'utente deve avere il ruolo Job function, in danese Jobfunktionsrolle, http://foxids.com/roles/jobrole/test-corp-admin_access/1, il DK privilege XML sara, con numero CVR di test: 11111111:
<?xml version="1.0" encoding="UTF-8"?>
<bpp:PrivilegeList xmlns:bpp="http://digst.dk/oiosaml/basic_privilege_profile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<PrivilegeGroup Scope="urn:dk:gov:saml:cvrNumberIdentifier:11111111">
<Privilege>http://foxids.com/roles/jobrole/test-corp-admin_access/1</Privilege>
</PrivilegeGroup>
</bpp:PrivilegeList>