Connecter Context Handler / FKA avec SAML 2.0

FoxIDs peut être connecté à Context Handler avec une méthode d’authentification SAML 2.0.

Context Handler est un courtier d’identité danois reliant les municipalités danoises dans une fédération commune, en danois appelé Fælleskommunal Adgangsstyring (FKA).

Context Handler est connecté comme Identity Provider (IdP) SAML 2.0 basé sur OIOSAML 3 et OCES3 (RSASSA-PSS).

Connect to Context Handler

En configurant une méthode d’authentification SAML 2.0 et un enregistrement d’application OpenID Connect, FoxIDs devient un pont entre SAML 2.0 et OpenID Connect. FoxIDs gère alors la connexion SAML 2.0 comme Relying Party (RP) / Service Provider (SP) et vous n’avez qu’à gérer OpenID Connect dans votre application. Si nécessaire, vous pouvez sélectionner plusieurs options de connexion (méthodes d’authentification) depuis le même enregistrement d’application OpenID Connect.

En test, vous pouvez vous connecter avec l’IdP de test FoxIDs.

Select FoxIDs test IdP

Ou configurez un environnement FoxIDs comme Identity Provider de test pour Context Handler avec un enregistrement d’application SAML 2.0 et authentifiez des utilisateurs de test.

Connect to Context Handler RP

Context Handler peut être configuré sur OIOSAML 2 ou OIOSAML 3 avec OCES3 (RSASSA-PSS) et FoxIDs prend en charge les certificats requis et permet de prendre en charge NSIS.

Vous pouvez tester la connexion Context Handler avec la web app d’exemple en ligne (documentation des exemples) en cliquant sur Log in puis Danish Context Handler TEST pour l’environnement de test (sélectionnez FoxIDs - test-corp sur la page de connexion Context Handler) ou Danish Context Handler pour la production.
Consultez la configuration d’exemple Context Handler dans FoxIDs Control : https://control.foxids.com/test-corp
Obtenez un accès en lecture avec l’utilisateur reader@foxids.com et le mot de passe gEh#V6kSw, puis sélectionnez l’environnement context-handler, context-handler-test ou context-handler-idp-test.
L’exemple est configuré avec des environnements séparés pour l’intégration Context Handler SAML 2.0.

Documentation Context Handler / FKA :

Transformez la revendication DK privilege XML en revendication JSON.

Environnement séparé

Context Handler exige que chaque connexion dans un environnement (test ou production) utilise un certificat OCES3 unique.
Par conséquent, envisagez de connecter Context Handler dans des environnements séparés où les certificats OCES3 peuvent être configurés.

Connect to Context Handler

Créez un nouvel environnement dans FoxIDs Control Client :

  1. Trouvez la section Environments en haut au milieu
  2. Cliquez sur la liste déroulante
  3. Cliquez sur New environment Create new environment
  4. Ajoutez le Name
  5. Cliquez sur Create

Si vous configurez un environnement de test et un environnement de production, ils doivent être placés dans des environnements séparés. Si vous configurez un Identity Provider de test pour Context Handler, il doit également être placé dans un environnement séparé et avoir un certificat OCES3 unique.

Vous pouvez facilement connecter deux environnements dans le même tenant avec un Environment Link.

Certificat

Context Handler exige que toutes les requêtes (authn et logout) soient signées avec des certificats OCES3 de production dans tous les environnements. Il n’est PAS possible d’utiliser un certificat émis par une autre autorité de certification, un certificat auto-signé ou des certificats OCES3 de test.

Un certificat OCES3 est valide pendant trois ans. Après cela, il doit être mis à jour manuellement.

Ajoutez le certificat OCES3 .P12 dans FoxIDs Control Client :

  1. Sélectionnez (ou créez) un environnement séparé à utiliser pour Context Handler en tant qu’Identity Provider ou un Identity Provider de test pour Context Handler
  2. Sélectionnez l’onglet Certificates
  3. Si les certificats contenus ne sont pas configurés, cliquez sur la flèche vers le bas du bouton Swap certificate puis, dans la section Contained certificates, cliquez sur Change container type
  4. Cliquez sur le certificat principal
  5. Ajoutez le mot de passe dans Optional certificate password
  6. Téléversez le certificat OCES3 .P12

Add OCES3 certificate

Il est ensuite possible d’ajouter un certificat secondaire et de basculer entre le certificat principal et secondaire.

Configurer Context Handler comme Identity Provider

Ce guide décrit comment configurer Context Handler comme Identity Provider SAML 2.0 et se conformer à OIOSAML3.

Vous devez configurer le certificat OCES3 avant de suivre ce guide.

1 - Commencez par créer une méthode d’authentification SAML 2.0 dans FoxIDs Control Client

  1. Sélectionnez l’onglet Authentication
  2. Cliquez sur New authentication puis Identity Provider (SAML 2.0)
  3. Ajoutez le Name par ex. Context Handler
  4. Ajoutez les métadonnées IdP Context Handler dans le champ Metadata URL
    Métadonnées test : https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2/metadata.idp
    Métadonnées production : https://n2adgangsstyring.stoettesystemerne.dk/runtime/saml2/metadata.idp
  5. Cliquez sur Create

Context Handler SAML 2.0 authentication method

  1. Sélectionnez Show advanced
  2. Définissez Logout response binding sur Redirect
  3. Configurez un Custom SP issuer, l’émetteur peut éventuellement commencer par https://saml.. L’émetteur dans cet exemple est https://saml.foxids.com/test-corp/context-handler-test/
  4. Optionnellement, définissez Certificate validation mode sur Chain trust si le certificat racine OCES3 est approuvé sur votre plateforme Définissez Certificate revocation mode sur Online
  5. Sélectionnez Yes pour Add logout response location URL in metadata
  6. Sélectionnez Yes pour Include the encryption certificate in metadata
  7. Définissez NameID format in metadata sur urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

Context Handler SAML 2.0 authentication method

  1. Dans Attribute consuming service in metadata, cliquez sur Add attribute consuming service et ajoutez le Service name
  2. Ajoutez toutes les revendications que vous souhaitez recevoir comme attributs demandés au format urn:oasis:names:tc:SAML:2.0:attrname-format:uri. Optionnellement, marquez chaque attribut comme requis.

Les revendications suivantes sont le plus souvent utilisées :

  • https://data.gov.dk/model/core/specVersion
  • https://data.gov.dk/concept/core/nsis/loa
  • https://data.gov.dk/model/core/eid/professional/cvr
  • https://data.gov.dk/model/core/eid/professional/orgName
  • https://data.gov.dk/model/core/eid/cprNumber
  • https://data.gov.dk/model/core/eid/email
  • https://data.gov.dk/model/core/eid/firstName
  • https://data.gov.dk/model/core/eid/lastName
  • https://data.gov.dk/model/core/eid/privilegesIntermediate

Context Handler SAML 2.0 authentication method

  1. Dans Contact persons in metadata, cliquez sur Add contact person puis Administrative pour ajouter une personne de contact administrative
  2. Cliquez sur Update
  3. Remontez en haut de la méthode d’authentification SAML 2.0
  4. Trouvez les métadonnées SP dans SAML 2.0 method URL, dans ce cas https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata.
  5. L’URL de métadonnées SP est utilisée pour configurer un système utilisateur Context Handler (DK: brugervendt system).

2 - Ensuite, allez sur le portail d’administration Context Handler en Test ou Production

  1. Sélectionnez IT-systems (DK: IT-systemer)
  2. Cliquez sur Add IT-system (DK: Tilslut it-system)
  3. Remplissez les champs et sélectionnez User system (DK: Brugervendt system)
  4. Allez dans l’onglet User system (DK: Brugervendt system)
  5. Sélectionnez Context Handler with NSIS et retirez la sélection de Context Handler (without NSIS)
  6. Sélectionnez OIOSAML3 comme profil OIOSAML et niveau NSIS
  7. Ajoutez l’URL des métadonnées SP de la méthode d’authentification SAML 2.0, dans ce cas https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata.
  8. Remplissez le reste, acceptez les conditions et cliquez sur Save (DK: Gem)

3 - Ajouter la transformation de revendication privilege dans FoxIDs Control Client

FoxIDs peut transformer la revendication DK privilege XML en revendication JSON. Il est recommandé d’ajouter la transformation afin d’obtenir des revendications et des tokens plus petits. En outre, cela rend les tokens lisibles.

  1. Sélectionnez l’onglet Claim transform
  2. Cliquez sur Add claim transform puis DK XML privilege to JSON
  3. Cliquez sur Update

Context Handler SAML 2.0 authentication method privilege claim transformation

FoxIDs convertit en interne les revendications SAML 2.0 en revendications JWT. Le mappage entre revendications SAML 2.0 et JWT est créé automatiquement par défaut. Vous pouvez trouver et modifier le mappage dans l’onglet Settings.

Vous avez terminé. La méthode d’authentification SAML 2.0 peut maintenant être utilisée comme méthode d’authentification pour les enregistrements d’applications dans l’environnement.

Un enregistrement d’application n’émettra que les revendications ajoutées.
N’oubliez donc pas d’ajouter les revendications JWT aux enregistrements d’applications OpenID Connect ou d’utiliser la notation *.

Configurer un Identity Provider de test pour Context Handler

Ce guide décrit comment configurer FoxIDs comme Identity Provider de test pour Context Handler. Context Handler est ajouté comme Relying Party SAML 2.0.

Vous devez utiliser un environnement séparé pour disposer d’un emplacement pour les utilisateurs de test et configurer le certificat OCES3 avant de suivre ce guide.

1 - Commencez par créer un enregistrement d’application SAML 2.0 dans FoxIDs Control Client

  1. Sélectionnez l’onglet Applications

  2. Cliquez sur New application

  3. Sélectionnez Show advanced

  4. Sélectionnez Web Application (SAML 2.0)

  5. Ajoutez le Name par ex. Context Handler IdP

  6. Téléchargez les métadonnées RP Context Handler où vous trouverez les endpoints et le certificat à approuver.
    Métadonnées test : https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/metadata.idp
    Le certificat est encodé en base64 et peut être converti en fichier de certificat .cer avec l’outil de certificat FoxIDs.

  7. Ajoutez l’Application issuer https://saml.n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime et les métadonnées

  8. Ajoutez l’Assertion consumer service (ACS) URL https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/consume.idp depuis les métadonnées Context Handler SAML 2.0 application

  9. Cliquez sur Register

  10. Lisez l’Metadata URL et conservez-la pour plus tard

  11. Cliquez sur Close

  12. La configuration détaillée s’ouvre, sélectionnez Show advanced en haut à droite de cette section de configuration

  13. Activez Absolute ACS URL

  14. Définissez Encrypt authn response sur Yes

  15. Ajoutez le certificat de chiffrement depuis les métadonnées dans Encryption certificate

  16. Définissez le NameID format sur urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  17. Ajoutez le Logged out URL https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffresponse.idp depuis les métadonnées

  18. Ajoutez le Single logout out URL https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffrequest.idp depuis les métadonnées

  19. Définissez Logout request binding et Logout response binding sur redirect

  20. Définissez les revendications OIOSAML3 qui doivent être émises vers Context Handler dans Issue claims

Les revendications suivantes sont le plus souvent utilisées :

  • https://data.gov.dk/model/core/specVersion
  • https://data.gov.dk/model/core/kombitSpecVer
  • https://data.gov.dk/concept/core/nsis/loa
  • https://data.gov.dk/model/core/eid/professional/cvr
  • https://data.gov.dk/model/core/eid/privilegesIntermediate
  1. Ajoutez le certificat de signature depuis les métadonnées dans Signature validation certificate
  2. Optionnellement, définissez Certificate validation mode sur Chain trust si le certificat racine OCES3 est approuvé sur votre plateforme Définissez Certificate revocation mode sur Online
  3. Définissez Authn response sign type sur Sign assertion
  4. Configurez un Custom IdP issuer, l’émetteur peut éventuellement commencer par https://saml.. L’émetteur dans cet exemple https://saml.foxids.com/test-corp/context-handler-test-idp/
  5. Sélectionnez Yes dans Add logout response location URL in metadata
  6. Sélectionnez Yes dans Include the encryption certificate in metadata
  7. Dans Contact persons in metadata, cliquez sur Add contact person puis Administrative pour ajouter une personne de contact administrative Context Handler SAML 2.0 application
  8. Cliquez sur Update
  9. Remontez en haut de la section d’application SAML 2.0
  10. Trouvez les métadonnées IdP de test dans SAML 2.0 Metadata, dans ce cas https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata
    Les métadonnées IdP de test sont utilisées pour configurer le fournisseur d’identité Context Handler.

2 - Ensuite, allez sur le portail d’administration Context Handler en Test

  1. Sélectionnez IT-systems (DK: IT-systemer)
  2. Cliquez sur Add IT-system (DK: Tilslut it-system)
  3. Remplissez les champs et sélectionnez Identity Provider
  4. Allez dans l’onglet Identity Provider
  5. Sélectionnez Context Handler with NSIS et retirez la sélection de Context Handler (without NSIS)
  6. Sélectionnez OIOSAML3 comme profil OIOSAML et niveau NSIS
  7. Ajoutez l’URL des métadonnées IdP de test, dans ce cas https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata.
  8. Remplissez le reste, acceptez les conditions et cliquez sur Save (DK: Gem)

Vous devez être enregistré en tant que votre propre autorité de test (DK: egen test myndighed) dans l’environnement de test pour ajouter un accord de fédération. Un accord de fédération (DK: føderationsaftaler) est requis pour activer le fournisseur d’identité dans Context Handler.

3 - Ajouter la transformation de revendications dans FoxIDs Control Client

Créez les revendications qui doivent être émises vers Context Handler dans les transformations de revendications.

  1. Revenez à l’application SAML 2.0 Context Handler IdP
  2. Sélectionnez l’onglet Claim transforms
  3. Ajoutez une revendication Constant https://data.gov.dk/model/core/specVersion avec la valeur OIO-SAML-3.0
  4. Ajoutez une revendication Constant https://data.gov.dk/model/core/kombitSpecVer avec la valeur 2.0
  5. Ajoutez une revendication Constant de niveau d’assurance (loa) https://data.gov.dk/concept/core/nsis/loa avec par exemple la valeur Substantial ou lisez la revendication via le pipeline de revendications

Context Handler SAML 2.0 application registration

  1. Ajoutez une revendication Concatenated pour remplacer la revendication NameID http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier qui est une version concaténée du numéro CVR, du nom d’affichage et de l’identifiant utilisateur unique
  2. Sélectionnez Action Replace claim
  3. Concaténez les revendications :
    • https://data.gov.dk/model/core/eid/professional/cvr
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
  4. Définissez Concatenate format string sur C=DK,O={0},CN={1} {2},Serial={3} Context Handler SAML 2.0 application registration
  5. Cliquez sur Update

4 - Ajouter les mappages de revendications SAML 2.0 vers JWT dans FoxIDs Control Client

FoxIDs convertit en interne les revendications SAML 2.0 en revendications JWT. Context Handler utilise un ensemble de revendications SAML 2.0 défini par OIOSAML3 où les mappages JWT correspondants doivent être ajoutés dans l’environnement.

  1. Allez dans l’onglet Settings et Claim mappings
  2. Cliquez sur Add claim mapping pour toutes les revendications configurées à l’étape 1.20, vous pouvez créer vos propres noms de revendications JWT courts si aucun nom standard n’existe (ou modifier les mappages de revendications s’ils existent déjà)
  3. Cliquez sur Update

5 - Ajouter des utilisateurs de test dans FoxIDs Control Client

Vous pouvez ajouter des utilisateurs de test avec des revendications de test dans l’onglet Users et le sous-onglet Internal Users.

Les revendications de test sur les utilisateurs de test sont basées sur JWT et mappées vers des revendications SAML 2.0.

Chaque utilisateur de test doit avoir une revendication CVR cvr, une revendication de prénom given_name, une revendication de nom de famille family_name et éventuellement une revendication privilege avec une valeur de chaîne XML DK privilege encodée en base64.

Test user 1

Si l’utilisateur doit avoir le rôle Job function (DK: Jobfunktionsrolle) http://foxids.com/roles/jobrole/test-corp-admin_access/1, le XML DK privilege serait (avec numéro CVR de 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>

Votre confidentialité

Nous utilisons des cookies pour améliorer votre expérience sur nos sites. Cliquez sur « Accepter tous les cookies » pour accepter l'utilisation des cookies. Pour refuser les cookies non essentiels, cliquez sur « Cookies nécessaires uniquement ».

Consultez notre politique de confidentialité pour en savoir plus