Conectar Context Handler / FKA con SAML 2.0
FoxIDs puede conectarse a Context Handler con un método de autenticación SAML 2.0.
Context Handler es un broker de identidad danés que conecta los municipios daneses en una federación común, en danés llamado Fælleskommunal Adgangsstyring (FKA).
Context Handler está conectado como Identity Provider (IdP) SAML 2.0 basado en OIOSAML 3 y OCES3 (RSASSA-PSS).
Al configurar un método de autenticación SAML 2.0 y un registro de aplicación OpenID Connect, FoxIDs se convierte en un puente entre SAML 2.0 y OpenID Connect. FoxIDs gestionará la conexión SAML 2.0 como Relying Party (RP) / Service Provider (SP) y solo tendrás que ocuparte de OpenID Connect en tu aplicación. Si es necesario, puedes seleccionar varias opciones de inicio de sesión (métodos de autenticación) desde el mismo registro de aplicación OpenID Connect.
En pruebas, puedes iniciar sesión con el IdP de prueba de FoxIDs.

O configura un entorno FoxIDs como Identity Provider de prueba para Context Handler con un registro de aplicación SAML 2.0 y autentica usuarios de prueba.
Context Handler puede configurarse basado en OIOSAML 2 u OIOSAML 3 con OCES3 (RSASSA-PSS) y FoxIDs además admite los certificados requeridos y es posible admitir NSIS.
Puedes probar el inicio de sesión de Context Handler con la web app de ejemplo en línea (documentación de ejemplo) haciendo clic en
Log iny luego enDanish Context Handler TESTpara el entorno de prueba (seleccionaFoxIDs - test-corpen la página de inicio de sesión de Context Handler) oDanish Context Handlerpara producción. Consulta la configuración de ejemplo de Context Handler en FoxIDs Control: https://control.foxids.com/test-corp Obtén acceso de solo lectura con el usuarioreader@foxids.comy la contraseñagEh#V6kSw, luego selecciona el entornocontext-handler,context-handler-testocontext-handler-idp-test. El ejemplo está configurado con entornos separados para la integración Context Handler SAML 2.0.
Documentación de Context Handler / FKA:
- Context Handler guía.
- Portal de administración
- Aplicación de prueba de Context Handler
Transforma la reclamación DK privilege XML a una reclamación JSON.
Entorno separado
Context Handler requiere que cada conexión en un entorno (test o production) use un certificado OCES3 único. Por lo tanto, considera conectar Context Handler en entornos separados donde los certificados OCES3 puedan configurarse.
Crea un nuevo entorno en FoxIDs Control Client:
- Encuentra la sección Environments en la parte superior central
- Haz clic en el desplegable
- Haz clic en New environment

- Añade el Name
- Haz clic en Create
Si configuras un entorno de prueba y producción, deben ubicarse en entornos separados. Si configuras un Identity Provider de prueba para Context Handler, también debe ubicarse en un entorno separado y tener un certificado OCES3 único.
Puedes conectar fácilmente dos entornos en el mismo tenant con un Environment Link.
Certificado
Context Handler requiere que todas las solicitudes (authn y logout) estén firmadas con certificados OCES3 de producción en todos los entornos. NO es posible usar un certificado emitido por otra autoridad de certificación, un certificado autofirmado o certificados OCES3 de prueba.
Un certificado OCES3 es válido durante tres años. Después de eso, debe actualizarse manualmente.
Añade el certificado OCES3 .P12 en FoxIDs Control Client:
- Selecciona (o crea) un entorno separado que se usará para Context Handler como Identity Provider o un Identity Provider de prueba para Context Handler
- Selecciona la pestaña Certificates
- Si no está configurado para contained certificates, haz clic en la flecha hacia abajo del botón Swap certificate y luego en la sección Contained certificates haz clic en Change container type
- Haz clic en el certificado principal
- Añade la contraseña en Optional certificate password
- Sube el certificado OCES3
.P12

Luego es posible añadir un certificado secundario y alternar entre el certificado principal y secundario.
Configurar Context Handler como Identity Provider
Esta guía describe cómo configurar Context Handler como Identity Provider SAML 2.0 y cumplir con OIOSAML3.
Debes configurar el certificado OCES3 antes de seguir esta guía.
1 - Comienza creando un método de autenticación SAML 2.0 en FoxIDs Control Client
- Selecciona la pestaña Authentication
- Haz clic en New authentication y luego en Identity Provider (SAML 2.0)
- Añade el Name por ejemplo
Context Handler - Añade los metadatos IdP de Context Handler en el campo Metadata URL
Metadatos de prueba:
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2/metadata.idpMetadatos de producción:https://n2adgangsstyring.stoettesystemerne.dk/runtime/saml2/metadata.idp - Haz clic en Create

- Selecciona Show advanced
- Establece Logout response binding en Redirect
- Configura un Custom SP issuer, el emisor puede comenzar opcionalmente con
https://saml.. El emisor en este ejemplo eshttps://saml.foxids.com/test-corp/context-handler-test/ - Opcionalmente establece Certificate validation mode en Chain trust si el certificado raíz OCES3 es confiable en tu plataforma Establece Certificate revocation mode en Online
- Selecciona Yes en Add logout response location URL in metadata
- Selecciona Yes en Include the encryption certificate in metadata
- Establece NameID format in metadata en
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

- En Attribute consuming service in metadata, haz clic en Add attribute consuming service y añade el Service name
- Añade todas las reclamaciones que quieras recibir como atributos solicitados con el formato
urn:oasis:names:tc:SAML:2.0:attrname-format:uri. Opcionalmente marca cada atributo como requerido.
Las siguientes reclamaciones se usan más frecuentemente:
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

- En Contact persons in metadata, haz clic en Add contact person y luego en Administrative para añadir un contacto administrativo
- Haz clic en Update
- Ve a la parte superior del método de autenticación SAML 2.0
- Encuentra los metadatos SP en SAML 2.0 method URL, en este caso https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata.
- La URL de metadatos SP se usa para configurar un sistema de usuario de Context Handler (DK: brugervendt system).
2 - Luego ve al portal de administración de Context Handler en Test o Production
- Selecciona IT-systems (DK: IT-systemer)
- Haz clic en Add IT-system (DK: Tilslut it-system)
- Rellena los campos y selecciona User system (DK: Brugervendt system)
- Ve a la pestaña User system (DK: Brugervendt system)
- Selecciona Context Handler with NSIS y elimina la selección de Context Handler (without NSIS)
- Selecciona OIOSAML3 como perfil OIOSAML y nivel NSIS
- Añade la URL de metadatos SP del método de autenticación SAML 2.0, en este caso
https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata. - Rellena el resto, acepta los términos y haz clic en Save (DK: Gem)
3 - Añadir la transformación de la reclamación privilege en FoxIDs Control Client
FoxIDs puede transformar la reclamación DK privilege XML a una reclamación JSON. Se recomienda añadir la transformación para obtener reclamaciones y tokens más pequeños. Además, hace que los tokens sean legibles.
- Selecciona la pestaña Claim transform
- Haz clic en Add claim transform y en DK XML privilege to JSON
- Haz clic en Update

FoxIDs convierte internamente las reclamaciones SAML 2.0 en reclamaciones JWT. El mapeo entre reclamaciones SAML 2.0 y JWT se crea automáticamente por defecto. Puedes encontrar y cambiar el mapeo en la pestaña Settings.
Has terminado. El método de autenticación SAML 2.0 puede usarse ahora como método de autenticación para los registros de aplicación en el entorno.
Un registro de aplicación solo emitirá las reclamaciones agregadas. Por lo tanto, recuerda añadir las reclamaciones JWT a los registros de aplicación OpenID Connect o usar la notación
*.
Configurar Identity Provider de prueba para Context Handler
Esta guía describe cómo configurar FoxIDs como Identity Provider de prueba para Context Handler. Context Handler se añade como Relying Party SAML 2.0.
Debes usar un entorno separado para tener un lugar para los usuarios de prueba y configurar el certificado OCES3 antes de seguir esta guía.
1 - Comienza creando un registro de aplicación SAML 2.0 en FoxIDs Control Client
Selecciona la pestaña Applications
Haz clic en New application
Selecciona Show advanced
Selecciona Web Application (SAML 2.0)
Añade el Name por ejemplo
Context Handler IdPDescarga los metadatos RP de Context Handler donde puedes encontrar los endpoints y el certificado a confiar. Metadatos de prueba:
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/metadata.idpEl certificado está codificado en base64 y puede convertirse en un archivo de certificado.cercon la herramienta de certificados FoxIDs.Añade el Application issuer
https://saml.n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtimey los metadatosAñade el Assertion consumer service (ACS) URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/consume.idpdesde los metadatos
Haz clic en Register
Lee la Metadata URL y guárdala para más adelante
Haz clic en Close
Se abre la configuración detallada, selecciona Show advanced en la esquina superior derecha de esta sección de configuración
Habilita Absolute ACS URL
Establece Encrypt authn response en Yes
Añade el certificado de cifrado desde los metadatos en Encryption certificate
Establece el NameID format en
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectNameAñade el Logged out URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffresponse.idpdesde los metadatosAñade el Single logout out URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffrequest.idpdesde los metadatosEstablece Logout request binding y Logout response binding en redirect
Establece las reclamaciones OIOSAML3 que se deben emitir a Context Handler en Issue claims
Las siguientes reclamaciones se usan más frecuentemente:
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
- Añade el certificado de firma desde los metadatos en Signature validation certificate
- Opcionalmente establece Certificate validation mode en Chain trust si el certificado raíz OCES3 es confiable en tu plataforma Establece Certificate revocation mode en Online
- Establece Authn response sign type en Sign assertion
- Configura un Custom IdP issuer, el emisor puede comenzar opcionalmente con
https://saml.. El emisor en este ejemplohttps://saml.foxids.com/test-corp/context-handler-test-idp/ - Selecciona Yes en Add logout response location URL in metadata
- Selecciona Yes en Include the encryption certificate in metadata
- En Contact persons in metadata, haz clic en Add contact person y luego en Administrative para añadir un contacto administrativo

- Haz clic en Update
- Ve a la parte superior de la sección de aplicación SAML 2.0
- Encuentra los metadatos IdP de prueba en SAML 2.0 Metadata, en este caso
https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadataLos metadatos IdP de prueba se usan para configurar el proveedor de identidad de Context Handler.
2 - Luego ve al portal de administración de Context Handler en Test
- Selecciona IT-systems (DK: IT-systemer)
- Haz clic en Add IT-system (DK: Tilslut it-system)
- Rellena los campos y selecciona Identity Provider
- Ve a la pestaña Identity Provider
- Selecciona Context Handler with NSIS y elimina la selección de Context Handler (without NSIS)
- Selecciona OIOSAML3 como perfil OIOSAML y nivel NSIS
- Añade la URL de metadatos IdP de prueba, en este caso
https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata. - Rellena el resto, acepta los términos y haz clic en Save (DK: Gem)
Debes estar registrado como tu propia autoridad de prueba (DK: egen test myndighed) en el entorno de prueba para añadir un acuerdo de federación. Un acuerdo de federación (DK: føderationsaftaler) es requerido para habilitar el proveedor de identidad en Context Handler.
3 - Añadir la transformación de reclamaciones en FoxIDs Control Client
Crea las reclamaciones que deben emitirse a Context Handler en transformaciones de reclamaciones.
- Vuelve a la aplicación SAML 2.0
Context Handler IdP - Selecciona la pestaña Claim transforms
- Añade una reclamación Constant
https://data.gov.dk/model/core/specVersioncon el valorOIO-SAML-3.0 - Añade una reclamación Constant
https://data.gov.dk/model/core/kombitSpecVercon el valor2.0 - Añade una reclamación Constant de niveles de garantía (loa)
https://data.gov.dk/concept/core/nsis/loacon por ejemplo el valorSubstantialo lee la reclamación a través del pipeline de reclamaciones

- Añade una reclamación Concatenated para reemplazar la reclamación NameID
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifierque es una versión concatenada del número CVR, el nombre visible y el ID de usuario único - Selecciona Action Replace claim
- Concatena reclamaciones:
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
- Establece Concatenate format string en
C=DK,O={0},CN={1} {2},Serial={3}
- Haz clic en Update
4 - Añadir mapeos de reclamaciones SAML 2.0 a JWT en FoxIDs Control Client
FoxIDs convierte internamente las reclamaciones SAML 2.0 en reclamaciones JWT. Context Handler usa un conjunto de reclamaciones SAML 2.0 definido por OIOSAML3 donde se deben añadir mapeos JWT correspondientes en el entorno.
- Ve a la pestaña Settings y Claim mappings
- Haz clic en Add claim mapping para todas las reclamaciones configuradas en el paso 1.20, puedes crear tus propios nombres cortos de reclamaciones JWT si no existe un nombre estándar (o editar los mapeos de reclamaciones si ya existen)
- Haz clic en Update
5 - Añadir usuarios de prueba en FoxIDs Control Client
Puedes añadir usuarios de prueba con reclamaciones de prueba en la pestaña Users y en la sub pestaña Internal Users.
Las reclamaciones de prueba en usuarios de prueba están basadas en JWT y mapeadas a reclamaciones SAML 2.0.
Cada usuario de prueba debe tener una reclamación CVR cvr, una reclamación de nombre given_name, una reclamación de apellido family_name y opcionalmente una reclamación privilege con un valor de cadena XML DK privilege codificado en base64.

Si el usuario debe tener el rol Job function (DK: Jobfunktionsrolle) http://foxids.com/roles/jobrole/test-corp-admin_access/1, el XML DK privilege sería (con número CVR de prueba: 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>