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).

Connect to Context Handler

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.

Select FoxIDs test IdP

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.

Connect to Context Handler RP

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 in y luego en Danish Context Handler TEST para el entorno de prueba (selecciona FoxIDs - test-corp en la página de inicio de sesión de Context Handler) o Danish Context Handler para 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 usuario reader@foxids.com y la contraseña gEh#V6kSw, luego selecciona el entorno context-handler, context-handler-test o context-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:

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.

Connect to Context Handler

Crea un nuevo entorno en FoxIDs Control Client:

  1. Encuentra la sección Environments en la parte superior central
  2. Haz clic en el desplegable
  3. Haz clic en New environment Create new environment
  4. Añade el Name
  5. 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:

  1. Selecciona (o crea) un entorno separado que se usará para Context Handler como Identity Provider o un Identity Provider de prueba para Context Handler
  2. Selecciona la pestaña Certificates
  3. 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
  4. Haz clic en el certificado principal
  5. Añade la contraseña en Optional certificate password
  6. Sube el certificado OCES3 .P12

Add OCES3 certificate

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

  1. Selecciona la pestaña Authentication
  2. Haz clic en New authentication y luego en Identity Provider (SAML 2.0)
  3. Añade el Name por ejemplo Context Handler
  4. Añade los metadatos IdP de Context Handler en el campo Metadata URL Metadatos de prueba: https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2/metadata.idp Metadatos de producción: https://n2adgangsstyring.stoettesystemerne.dk/runtime/saml2/metadata.idp
  5. Haz clic en Create

Context Handler SAML 2.0 authentication method

  1. Selecciona Show advanced
  2. Establece Logout response binding en Redirect
  3. Configura un Custom SP issuer, el emisor puede comenzar opcionalmente con https://saml.. El emisor en este ejemplo es https://saml.foxids.com/test-corp/context-handler-test/
  4. 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
  5. Selecciona Yes en Add logout response location URL in metadata
  6. Selecciona Yes en Include the encryption certificate in metadata
  7. Establece NameID format in metadata en urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

Context Handler SAML 2.0 authentication method

  1. En Attribute consuming service in metadata, haz clic en Add attribute consuming service y añade el Service name
  2. 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/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. En Contact persons in metadata, haz clic en Add contact person y luego en Administrative para añadir un contacto administrativo
  2. Haz clic en Update
  3. Ve a la parte superior del método de autenticación SAML 2.0
  4. Encuentra los metadatos SP en SAML 2.0 method URL, en este caso https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata.
  5. 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

  1. Selecciona IT-systems (DK: IT-systemer)
  2. Haz clic en Add IT-system (DK: Tilslut it-system)
  3. Rellena los campos y selecciona User system (DK: Brugervendt system)
  4. Ve a la pestaña User system (DK: Brugervendt system)
  5. Selecciona Context Handler with NSIS y elimina la selección de Context Handler (without NSIS)
  6. Selecciona OIOSAML3 como perfil OIOSAML y nivel NSIS
  7. 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.
  8. 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.

  1. Selecciona la pestaña Claim transform
  2. Haz clic en Add claim transform y en DK XML privilege to JSON
  3. Haz clic en Update

Context Handler SAML 2.0 authentication method privilege claim transformation

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

  1. Selecciona la pestaña Applications

  2. Haz clic en New application

  3. Selecciona Show advanced

  4. Selecciona Web Application (SAML 2.0)

  5. Añade el Name por ejemplo Context Handler IdP

  6. Descarga 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.idp El certificado está codificado en base64 y puede convertirse en un archivo de certificado .cer con la herramienta de certificados FoxIDs.

  7. Añade el Application issuer https://saml.n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime y los metadatos

  8. Añade el Assertion consumer service (ACS) URL https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/consume.idp desde los metadatos Context Handler SAML 2.0 application

  9. Haz clic en Register

  10. Lee la Metadata URL y guárdala para más adelante

  11. Haz clic en Close

  12. Se abre la configuración detallada, selecciona Show advanced en la esquina superior derecha de esta sección de configuración

  13. Habilita Absolute ACS URL

  14. Establece Encrypt authn response en Yes

  15. Añade el certificado de cifrado desde los metadatos en Encryption certificate

  16. Establece el NameID format en urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  17. Añade el Logged out URL https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffresponse.idp desde los metadatos

  18. Añade el Single logout out URL https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffrequest.idp desde los metadatos

  19. Establece Logout request binding y Logout response binding en redirect

  20. 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/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. Añade el certificado de firma desde los metadatos en Signature validation certificate
  2. 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
  3. Establece Authn response sign type en Sign assertion
  4. Configura un Custom IdP issuer, el emisor puede comenzar opcionalmente con https://saml.. El emisor en este ejemplo https://saml.foxids.com/test-corp/context-handler-test-idp/
  5. Selecciona Yes en Add logout response location URL in metadata
  6. Selecciona Yes en Include the encryption certificate in metadata
  7. En Contact persons in metadata, haz clic en Add contact person y luego en Administrative para añadir un contacto administrativo Context Handler SAML 2.0 application
  8. Haz clic en Update
  9. Ve a la parte superior de la sección de aplicación SAML 2.0
  10. 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/idpmetadata Los 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

  1. Selecciona IT-systems (DK: IT-systemer)
  2. Haz clic en Add IT-system (DK: Tilslut it-system)
  3. Rellena los campos y selecciona Identity Provider
  4. Ve a la pestaña Identity Provider
  5. Selecciona Context Handler with NSIS y elimina la selección de Context Handler (without NSIS)
  6. Selecciona OIOSAML3 como perfil OIOSAML y nivel NSIS
  7. 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.
  8. 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.

  1. Vuelve a la aplicación SAML 2.0 Context Handler IdP
  2. Selecciona la pestaña Claim transforms
  3. Añade una reclamación Constant https://data.gov.dk/model/core/specVersion con el valor OIO-SAML-3.0
  4. Añade una reclamación Constant https://data.gov.dk/model/core/kombitSpecVer con el valor 2.0
  5. Añade una reclamación Constant de niveles de garantía (loa) https://data.gov.dk/concept/core/nsis/loa con por ejemplo el valor Substantial o lee la reclamación a través del pipeline de reclamaciones

Context Handler SAML 2.0 application registration

  1. Añade una reclamación Concatenated para reemplazar la reclamación NameID http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier que es una versión concatenada del número CVR, el nombre visible y el ID de usuario único
  2. Selecciona Action Replace claim
  3. Concatena reclamaciones:
    • 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. Establece Concatenate format string en C=DK,O={0},CN={1} {2},Serial={3} Context Handler SAML 2.0 application registration
  5. 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.

  1. Ve a la pestaña Settings y Claim mappings
  2. 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)
  3. 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.

Test user 1

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>

Tu privacidad

Usamos cookies para mejorar tu experiencia en nuestros sitios web. Haz clic en «Aceptar todas las cookies» para aceptar su uso. Para rechazar cookies no esenciales, haz clic en «Solo cookies necesarias».

Visita nuestra política de privacidad para saber más