Connect to Context Handler / FKA with SAML 2.0
O FoxIDs pode ser ligado ao Context Handler com um método de autenticação SAML 2.0.
O Context Handler é um identity broker dinamarquês que liga os municípios dinamarqueses numa federação comum, em dinamarquês chamada Fælleskommunal Adgangsstyring (FKA).
O Context Handler é ligado como SAML 2.0 Identity Provider (IdP) baseado em OIOSAML 3 e OCES3 (RSASSA-PSS).
Ao configurar um método de autenticação SAML 2.0 e um registo de aplicação OpenID Connect, o FoxIDs torna-se uma bridge entre SAML 2.0 e OpenID Connect. O FoxIDs irá então tratar da ligação SAML 2.0 como Relying Party (RP) / Service Provider (SP) e na sua aplicação só precisa de se preocupar com OpenID Connect. Se necessário, pode eventualmente selecionar múltiplas opções de login, isto é, métodos de autenticação, a partir do mesmo registo de aplicação OpenID Connect.
Em teste, pode iniciar sessão com o FoxIDs test IdP.

Ou configurar um ambiente FoxIDs como test Identity Provider para Context Handler com um registo de aplicação SAML 2.0 e autenticar utilizadores de teste.
O Context Handler pode ser configurado com base em OIOSAML 2 ou OIOSAML 3 com OCES3 (RSASSA-PSS) e o FoxIDs suporta ainda os certificados necessários e é possível suportar NSIS.
Pode testar o login do Context Handler com o sample web app online (documentação do sample) clicando em
Log ine depois emDanish Context Handler TESTpara o ambiente de teste, selecioneFoxIDs - test-corpna página de login do Context Handler, ouDanish Context Handlerpara produção.
Veja a configuração sample Context Handler no FoxIDs Control: https://control.foxids.com/test-corp
Obtenha acesso de leitura com o utilizadorreader@foxids.come a passwordgEh#V6kSw, depois selecione o ambientecontext-handler,context-handler-testoucontext-handler-idp-test.
O sample está configurado com ambientes separados para a integração Context Handler SAML 2.0.
Documentação do Context Handler / FKA:
- Guia do Context Handler guide.
- Portal de administração
- Aplicação de teste do Context Handler
Transforme o DK privilege XML claim num claim JSON.
Separate environment
O Context Handler requer que cada ligação num ambiente, teste ou produção, utilize um certificado OCES3 único.
Por isso, considere ligar o Context Handler em ambientes separados onde os certificados OCES3 possam ser configurados.
Crie um novo ambiente no FoxIDs Control Client:
- Encontre a secção Environments no topo ao centro
- Clique na lista suspensa
- Clique em New environment

- Adicione o Name
- Clique em Create
Se configurar tanto um ambiente de teste como um de produção, devem ficar em ambientes separados. Se configurar um test Identity Provider para Context Handler, este também deve ficar num ambiente separado e ter um certificado OCES3 único.
Pode ligar facilmente dois ambientes no mesmo tenant com um Environment Link.
Certificate
O Context Handler requer que todos os pedidos, authn e logout, sejam assinados com certificados OCES3 de produção em todos os ambientes. NÃO é possível usar um certificado emitido por outra autoridade certificadora, um certificado self-signed ou certificados OCES3 de teste.
Um certificado OCES3 é válido durante três anos. Depois disso, tem de ser atualizado manualmente.
Adicione o certificado OCES3 .P12 no FoxIDs Control Client:
- Selecione, ou crie, um ambiente separado para usar com Context Handler como Identity Provider ou com um test Identity Provider para Context Handler
- Selecione o separador Certificates
- Se não estiver configurado para certificados contidos, clique na seta para baixo do botão Swap certificate e depois, na secção Contained certificates, clique em Change container type
- Clique no certificado primário 5, Adicione a password em Optional certificate password
- Carregue o certificado OCES3
.P12

Posteriormente, é possível adicionar um certificado secundário e alternar entre o certificado primário e o secundário.
Configuring Context Handler as Identity Provider
Este guia descreve como configurar o Context Handler como SAML 2.0 Identity Provider e cumprir OIOSAML3.
Precisa de configurar o certificado OCES3 antes de seguir este guia.
1 - Comece por criar um método de autenticação SAML 2.0 no FoxIDs Control Client
- Selecione o separador Authentication
- Clique em New authentication e depois em Identity Provider (SAML 2.0)
- Adicione o Name, por exemplo
Context Handler - Adicione os metadata IdP do Context Handler no campo Metadata URL
Metadata de teste:https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2/metadata.idp
Metadata de produção:https://n2adgangsstyring.stoettesystemerne.dk/runtime/saml2/metadata.idp - Clique em Create

- Selecione Show advanced
- Defina Logout response binding como Redirect
- Configure um Custom SP issuer; o issuer pode opcionalmente começar com
https://saml.. O issuer neste exemplo éhttps://saml.foxids.com/test-corp/context-handler-test/ - Opcionalmente defina Certificate validation mode como Chain trust se o certificado root OCES3 for trusted na sua plataforma Defina Certificate revocation mode como Online
- Selecione Yes em Add logout response location URL in metadata
- Selecione Yes em Include the encryption certificate in metadata
- Defina NameID format in metadata como
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

- Em Attribute consuming service in metadata, clique em Add attribute consuming service e adicione o Service name
- Adicione todos os claims que pretende receber como requested attributes com o formato
urn:oasis:names:tc:SAML:2.0:attrname-format:uri. Opcionalmente defina cada atributo como required.
Os seguintes claims são os mais usados:
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

- Em Contact persons in metadata, clique em Add contact person e depois em Administrative para adicionar uma pessoa de contacto administrativa
- Clique em Update
- Vá ao topo do método de autenticação SAML 2.0
- Encontre os SP-metadata em SAML 2.0 method URL, neste caso https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata.
- O SP-metadata URL é usado para configurar um sistema de utilizador do Context Handler.
2 - Depois vá ao portal de administração do Context Handler em Test ou Production
- Selecione IT-systems
- Clique em Add IT-system
- Preencha os campos e selecione User system
- Vá ao separador User system
- Selecione Context Handler with NSIS e remova a seleção de Context Handler without NSIS
- Selecione OIOSAML3 como perfil OIOSAML e nível NSIS
- Adicione o SP-metadata URL do método de autenticação SAML 2.0, neste caso
https://foxids.com/test-corp/context-handler-test/(g9ey6lfw)/saml/spmetadata. - Preencha o restante, aceite os termos e clique em Save
3 - Adicione a transformação do claim privilege no FoxIDs Control Client
O FoxIDs pode transformar o DK privilege XML claim num claim JSON. Recomenda-se adicionar a transformação para obter claims e tokens mais pequenos. Além disso, torna os tokens legíveis.
- Selecione o separador Claim transform
- Clique em Add claim transform e depois em DK XML privilege to JSON
- Clique em Update

O FoxIDs converte internamente claims SAML 2.0 em claims JWT. O mapeamento entre claims SAML 2.0 e JWT é criado automaticamente por predefinição. Pode encontrar e alterar o mapeamento no separador Settings.
Terminou. O método de autenticação SAML 2.0 pode agora ser usado como método de autenticação para registos de aplicação no ambiente.
Um registo de aplicação só emitirá os claims adicionados.
Por isso, lembre-se de adicionar os claims JWT aos registos de aplicação OpenID Connect ou de usar a notação*.
Configuring test Identity Provider for Context Handler
Este guia descreve como configurar o FoxIDs como test Identity Provider para o Context Handler. O Context Handler é adicionado como SAML 2.0 Relying Party.
Precisa de usar um ambiente separado para ter um espaço para os utilizadores de teste e configurar o certificado OCES3 antes de seguir este guia.
1 - Comece por criar um registo de aplicação SAML 2.0 no FoxIDs Control Client
Selecione o separador Applications
Clique em New application
Selecione Show advanced
Selecione Web Application (SAML 2.0)
Adicione o Name, por exemplo
Context Handler IdPDescarregue os metadata RP do Context Handler, onde pode encontrar endpoints e o certificado a trusted.
Metadata de teste:https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/metadata.idp
O certificado está codificado em base64 e pode ser convertido num ficheiro de certificado.cercom a ferramenta de certificados FoxIDs.Adicione Application issuer
https://saml.n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtimee os metadataAdicione Assertion consumer service (ACS) URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/consume.idpdos metadata
Clique em Register
Leia o Metadata URL e guarde-o para mais tarde
Clique em Close
A configuração detalhada abre-se; selecione Show advanced no canto superior direito desta secção de configuração
Ative Absolute ACS URL
Defina Encrypt authn response como Yes
Adicione o certificado de encriptação dos metadata em Encryption certificate
Defina NameID format como
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectNameAdicione Logged out URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffresponse.idpdos metadataAdicione Single logout out URL
https://n2adgangsstyring.eksterntest-stoettesystemerne.dk/runtime/saml2auth/signoffrequest.idpdos metadataDefina Logout request binding e Logout response binding como redirect
Defina os claims OIOSAML3 que devem ser emitidos para o Context Handler em Issue claims
Os seguintes claims são os mais usados:
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
- Adicione o certificado de assinatura dos metadata em Signature validation certificate
- Opcionalmente defina Certificate validation mode como Chain trust se o certificado root OCES3 for trusted na sua plataforma Defina Certificate revocation mode como Online
- Defina Authn response sign type como Sign assertion
- Configure um Custom IdP issuer; o issuer pode opcionalmente começar com
https://saml.. O issuer neste exemplo éhttps://saml.foxids.com/test-corp/context-handler-test-idp/ - Selecione Yes em Add logout response location URL in metadata
- Selecione Yes em Include the encryption certificate in metadata
- Em Contact persons in metadata, clique em Add contact person e depois em Administrative para adicionar uma pessoa de contacto administrativa

- Clique em Update
- Vá ao topo da secção da aplicação SAML 2.0
- Encontre os metadata do test IdP em SAML 2.0 Metadata, neste caso
https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata
Os metadata do test IdP são usados para configurar o identity provider do Context Handler.
2 - Depois vá ao portal de administração do Context Handler em Test
- Selecione IT-systems
- Clique em Add IT-system
- Preencha os campos e selecione Identity Provider
- Vá ao separador Identity Provider
- Selecione Context Handler with NSIS e remova a seleção de Context Handler without NSIS
- Selecione OIOSAML3 como perfil OIOSAML e nível NSIS
- Adicione o test IdP-metadata URL, neste caso
https://foxids.com/test-corp/context-handler-idp-test/ch-idp(*)/saml/idpmetadata. - Preencha o restante, aceite os termos e clique em Save
É obrigatório estar registado como sua própria test authority, em dinamarquês egen test myndighed, no ambiente de teste para adicionar um acordo de federação. Um acordo de federação, em dinamarquês føderationsaftaler, é necessário para ativar o identity provider no Context Handler.
3 - Adicione a transformação de claims no FoxIDs Control Client
Crie os claims que têm de ser emitidos para o Context Handler em claim transforms.
- Volte à aplicação SAML 2.0
Context Handler IdP - Selecione o separador Claim transforms
- Adicione um claim Constant
https://data.gov.dk/model/core/specVersioncom o valorOIO-SAML-3.0 - Adicione um claim Constant
https://data.gov.dk/model/core/kombitSpecVercom o valor2.0 - Adicione um claim Constant de níveis de assurance, loa,
https://data.gov.dk/concept/core/nsis/loacom, por exemplo, o valorSubstantialou leia o claim através do pipeline de claims

- Adicione um claim Concatenated para substituir o claim NameID
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifierpor uma versão concatenada do número CVR, display name e unique user ID - Selecione Action Replace claim
- Concatene os claims:
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
- Defina Concatenate format string como
C=DK,O={0},CN={1} {2},Serial={3}
- Clique em Update
4 - Adicione mapeamentos de claim SAML 2.0 para claim JWT no FoxIDs Control Client
O FoxIDs converte internamente claims SAML 2.0 em claims JWT. O Context Handler usa um conjunto de claims SAML 2.0 definido pelo OIOSAML3 e os correspondentes mapeamentos JWT precisam de ser adicionados no ambiente.
- Vá ao separador Settings e a Claim mappings
- Clique em Add claim mapping para todos os claims configurados no passo 1.20; pode criar os seus próprios nomes curtos de claims JWT se não existir um nome standard, ou editar os claim mappings se já existirem
- Clique em Update
5 - Adicione utilizadores de teste no FoxIDs Control Client
Pode adicionar utilizadores de teste com claims de teste no separador Users e no sub separador Internal Users.
Os claims de teste em utilizadores de teste são baseados em JWT e mapeados para claims SAML 2.0.
Cada utilizador de teste precisa de ter um claim CVR cvr, um claim given name given_name, um claim family name family_name e opcionalmente um claim privilege com um valor string XML de DK privilege codificado em base64.

Se o utilizador tiver de ter a função Job function role, em dinamarquês Jobfunktionsrolle, http://foxids.com/roles/jobrole/test-corp-admin_access/1, o DK privilege XML será, com número CVR de teste: 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>