Método de autenticação OpenID Connect
Um método de autenticação OpenID Connect do FoxIDs liga o FoxIDs a um OpenID Provider (OP) ou Identity Provider (IdP) externo. O fornecedor externo autentica o utilizador, enquanto o FoxIDs atua como Relying Party (RP) e disponibiliza a identidade resultante aos registos de aplicações selecionados.
É possível configurar vários métodos de autenticação OpenID Connect e selecioná-los nos registos de aplicações. As principais funcionalidades incluem discovery e atualizações automáticas das chaves de assinatura, Authorization Code Flow com PKCE, autenticação de cliente, origens de reivindicações configuráveis, encaminhamento e transformação de reivindicações.
Configuração
No FoxIDs Control:
- Selecione o ambiente que deve confiar no fornecedor externo.
- Abra Authentication e clique em Add authentication.
- Selecione Connect to OpenID Provider. Este tipo padrão é apresentado sem ativar Show all options.
- Configure o fornecedor e clique em Create.

Exemplo do Google
Este exemplo estabelece ligação ao Google com a seguinte authority:
https://accounts.google.com
Configure o método de autenticação com:
- Um Name descritivo.
- A authority do Google em Authority.
- Os scopes
profileeemail. O FoxIDs inclui automaticamente o scope obrigatórioopenid. - Use PKCE ativado.
- O client secret emitido pelo Google.
*em Forward claims para encaminhar todas as reivindicações recebidas.- Read claims from the ID token instead of the access token ativado em Show advanced.
Os scopes necessários e a necessidade de scopes adicionais variam entre fornecedores. Configure apenas os scopes exigidos pelo fornecedor externo e necessários para as informações do utilizador utilizadas pelas suas aplicações.
Copie o Redirect URL apresentado pelo FoxIDs e registe-o como redirect URI autorizado no fornecedor externo. O Google também emite um client ID para o cliente OAuth. Ative Show advanced e introduza esse valor em Optional custom SP client ID. Se não estiver configurado um client ID personalizado, o FoxIDs utiliza o nome do método de autenticação como client ID.

Discovery e atualizações automáticas
Quando o método de autenticação é criado, o FoxIDs lê o documento OpenID Connect discovery do fornecedor em:
https://accounts.google.com/.well-known/openid-configuration
O FoxIDs lê o issuer, as chaves de assinatura e os endpoints suportados, incluindo os endpoints authorization, token, UserInfo e end-session quando estão presentes. Volte a abrir o método de autenticação para consultar o issuer, as chaves e os endpoints detetados.

O FoxIDs volta a ler a discovery periodicamente e aplica futuras alterações aos endpoints e às chaves de assinatura. Se a discovery continuar indisponível e as atualizações automáticas pararem, atualize o método de autenticação no FoxIDs Control ou através da Control API para as reiniciar. O intervalo de atualização pode ser alterado em Show advanced.
O FoxIDs Control cria métodos de autenticação atualizados automaticamente a partir da discovery. A Control API também suporta configurações mantidas manualmente, nas quais o issuer, as chaves e os endpoints são fornecidos diretamente e a discovery não é chamada.
Reivindicações e encaminhamento
Por predefinição, o FoxIDs valida o ID token e lê as reivindicações do utilizador a partir do access token externo. Em Show advanced, a origem das reivindicações pode ser alterada para:
- Read claims from the ID token instead of the access token.
- Read claims from the UserInfo Endpoint instead of the access token or ID token.
A opção UserInfo utiliza o access token externo para chamar o endpoint UserInfo detetado. As duas alternativas são mutuamente exclusivas no FoxIDs Control.

O método de autenticação encaminha as reivindicações predefinidas e as listadas em Forward claims para os registos de aplicações. Adicione * para encaminhar todas as reivindicações recebidas; esta é a predefinição. As reivindicações transferidas por predefinição são sub, sid, acr e amr.
Adicione access_token para disponibilizar o access token externo aos registos de aplicações. Se o fornecedor externo devolver um refresh token, adicione também refresh_token para o encaminhar. Um refresh token é normalmente devolvido apenas ao utilizar Authorization Code Flow e o scope específico do fornecedor necessário para acesso offline, como offline_access.
As reivindicações podem ser selecionadas, renomeadas, combinadas ou alteradas de outras formas com transformações e tarefas de reivindicações. Uma reivindicação criada por uma transformação permanece local ao método de autenticação, exceto se for incluída em Forward claims ou se for utilizado *.
Autenticação de cliente e PKCE
O método de autenticação utiliza Authorization Code Flow com PKCE por predefinição. O método predefinido de autenticação de cliente no endpoint token é client secret post.
Ative Show advanced para selecionar client secret basic ou private key JWT. Com private key JWT, importe o certificado de cliente depois de criar o método de autenticação e registe a chave pública correspondente no fornecedor externo.

O fornecedor determina os métodos de autenticação de cliente e as opções PKCE suportados. Utilize a configuração mais forte suportada por ambas as partes.
Perfis
Os perfis permitem que um método de autenticação OpenID Connect disponibilize variantes alternativas de login sem duplicar toda a configuração do fornecedor. Um perfil mantém as definições base do método de autenticação e pode:
- Adicionar scopes específicos do fornecedor aos scopes configurados no método de autenticação.
- Adicionar parâmetros ao pedido authorization ou substituir parâmetros adicionais com o mesmo nome configurados no método de autenticação.
Abra o método de autenticação, ative Show advanced, selecione o separador Profiles e clique em Add Profile. Atribua ao perfil um Name descritivo e um Technical name exclusivo e, em seguida, configure os scopes e parâmetros adicionais.
O exemplo abaixo adiciona prompt=login, que solicita ao OpenID Provider externo que volte a autenticar o utilizador. O valor custom_scope mostra onde pode ser adicionado um scope específico do fornecedor. Substitua-o por um scope suportado pelo fornecedor ou omita-o se não for necessário um scope adicional.

Num registo de aplicação, o próprio método de autenticação e cada perfil estão disponíveis como seleções separadas. Pode permitir o método base, um ou mais perfis ou ambos. Quando o método base é selecionado, não são aplicadas definições de perfil. Quando um perfil é selecionado, o FoxIDs combina os respetivos scopes e parâmetros adicionais com a configuração base.
Definições avançadas do fornecedor
As seguintes definições estão disponíveis em Show advanced:
- Optional custom SP client ID substitui o nome do método de autenticação utilizado como client ID. Utilize esta opção quando o fornecedor emitir ou exigir um client ID específico.
- Edit issuers substitui o issuer obtido através da discovery por uma lista explícita. Isto suporta fornecedores que emitem tokens de vários issuers com as mesmas chaves de assinatura.
*aceita qualquer issuer e só deve ser utilizado quando essa confiança for intencional. O issuer aceite é adicionado à reivindicaçãoauth_method_issuer. - Party binding pattern altera o formato do URL de callback do FoxIDs para interoperabilidade com o fornecedor. O FoxIDs utiliza por predefinição o padrão de parênteses
.../(auth-method)/...; os padrões com til.../~auth-method~/...e pontos.../.auth-method./...também são suportados. - Response type, response mode, o intervalo de atualização da discovery e as definições de logout e confiança fornecem controlo adicional do protocolo.
O issuer e as chaves de assinatura apresentados após a criação permanecem só de leitura enquanto o issuer detetado é utilizado. Ative Edit issuers apenas quando o fornecedor exigir uma configuração de issuer diferente da discovery.
Guias práticos
- Ligar o IdentityServer
- Ligar o Microsoft Entra ID
- Ligar o Azure AD B2C
- Ligar o Amazon Cognito
- Ligar o Google
- Ligar o Facebook
- Ligar o Signicat
- Ligar o Nets eID Broker