External Login - API
External Login - API é obsoleto e será descontinuado. Use Directory Connector para novas integrações com diretórios externos e planeie mover integrações existentes de External Login API para Directory Connector sempre que possível.
Com external login pode autenticar utilizadores numa base de dados de utilizadores existente através de uma chamada API. Implementa a API; o FoxIDs chama-a com username e password, e a API valida a combinação e devolve sucesso ou falha.
Use um método de autenticação External login quando quiser aproveitar uma store de utilizadores existente como fonte de autenticação no FoxIDs.
Depois de um login bem-sucedido, pode criar utilizadores externos e opcionalmente mostrar um diálogo para recolher, por exemplo, nome ou email.
Se quiser que os utilizadores permaneçam utilizadores internos no ambiente FoxIDs enquanto a autenticação por palavra-passe e o ciclo de vida da palavra-passe são delegados para um diretório externo, use Directory Connector.
Integrações existentes de External Login API devem ser movidas para Directory Connector sempre que possível. Com o tempo, pode migrar utilizadores para o FoxIDs e descontinuar a API externa e a store de utilizadores externa.
Para uma visão geral dos conceitos de utilizador (utilizadores internos, utilizadores externos e stores de utilizadores externas), veja a visão geral de utilizadores.
External login suporta dois tipos de identificadores de utilizador (username):
- Email - o email do utilizador
- Text - um username em texto livre
Se escolher o tipo texto, o formato não é validado no FoxIDs (formatos mistos são permitidos, incluindo uso de emails).
Home realm discovery (HRD) com base no domínio só está disponível com o tipo email.
UI predefinida de external login com username baseado em texto:

A UI pode ser personalizada.
Implementar API
Tem de implementar uma API simples que o FoxIDs chama para cada pedido de autenticação (veja o sample).
A API tem um URL base; a funcionalidade é agrupada em pastas. Atualmente, apenas a pasta authentication (validar username/password) é suportada.
Pastas para alteração de palavra-passe e criação de utilizador poderão ser adicionadas mais tarde.
Se o URL base for https://somewhere.org/mystore, o endpoint de autenticação é: https://somewhere.org/mystore/authentication
O FoxIDs Cloud chama a sua API a partir do IP
57.128.60.142.
O(s) IP(s) podem mudar ou ser expandidos.
Pedido
Protegido com HTTP Basic auth: username external_login, password = secret configurado.
A chamada é HTTP POST com um body JSON.
Pode configurar parâmetros adicionais; eles são incluídos no payload JSON.
Pedido do tipo email:
{
"usernameType": 100,
"username": "user1@somewhere.org",
"password": "testpass1"
}
Pedido do tipo username em texto:
{
"usernameType": 200,
"username": "user1",
"password": "testpass1"
}
Códigos do tipo de username:
- email = 100
- text = 200
Resposta
Sucesso
Em caso de sucesso, a API deve devolver código HTTP 200 e, opcionalmente, uma lista de claims para o utilizador autenticado.
Por exemplo, o sub do utilizador (ID único / username), nome, email e talvez, por exemplo, um role:
{
"claims": [
{ "type": "sub", "value": "somewhere/user2" },
{ "type": "given_name", "value": "Joe" },
{ "type": "family_name", "value": "Smith" },
{ "type": "email", "value": "user2@somewhere.org" },
{ "type": "role", "value": "some_access" }
]
}
Erro
A API tem de devolver código HTTP 401 (Unauthorized) e um error (obrigatório) se o Basic auth for rejeitado. Opcionalmente, adicione uma descrição do erro em ErrorMessage.
{
"error": "invalid_api_id_secret",
"ErrorMessage": "Invalid API ID or secret"
}
A API tem de devolver código HTTP 400, 401 ou 403 e um error (obrigatório) se a combinação username e password for rejeitada. Opcionalmente, adicione uma descrição do erro em ErrorMessage.
{
"error": "invalid_username_password",
"ErrorMessage": "Invalid username or password."
}
Se ocorrerem outros erros, a API deve devolver código HTTP 500 ou outro código de erro apropriado.
Recomenda-se adicionar uma mensagem técnica de erro em ErrorMessage para diagnóstico (é apenas registada em log; nunca mostrada ao utilizador final).
Sample da API
O sample ExternalLoginApiSample mostra como implementar a API em ASP.NET Core.
Postman collection external-login-api.postman_collection.json para chamar e testar a sua API com Postman.
Configurar
Configure um método de autenticação de login via API externa no FoxIDs Control Client.
External API Login só deve ser usado para integrações existentes. Use Directory Connector para novas integrações com autenticação de palavra-passe e ciclo de vida da palavra-passe em diretórios externos, e considere mover integrações existentes de External API Login para Directory Connector.
- Navegue para o separador Authentication
- Clique em New authentication
- Selecione Show advanced
- Selecione External API Login
- Adicione o Name
- Selecione o Username type (por exemplo Text)
- Adicione o URL base da API sem a pasta
authenticationem API URL - Adicione o API secret

- Clique em Create
Opicionalmente, clique em Show advanced no canto superior direito da secção de configuração para personalizar a UI de login.