Inicio de sesión externo - API

Con el inicio de sesión externo puede autenticar usuarios en una base de usuarios existente mediante una llamada API. Usted implementa la API; FoxIDs la llama con un nombre de usuario y contraseña, y la API valida la combinación y devuelve éxito o fallo.
Use un método de autenticación de inicio de sesión externo cuando quiera aprovechar un almacén de usuarios existente como fuente de autenticación en FoxIDs. Después de un inicio de sesión exitoso puede crear usuarios externos y opcionalmente mostrar un diálogo para capturar, por ejemplo, nombre o correo electrónico.

Con el tiempo puede migrar usuarios a FoxIDs y eliminar gradualmente la API externa y el almacén de usuarios.

Para una visión general de los conceptos de usuarios (usuarios internos, usuarios externos y almacenes de usuarios externos) consulte el resumen de usuarios.

El inicio de sesión externo admite dos tipos de identificador de usuario (nombre de usuario):

  • Email - el correo del usuario
  • Texto - un nombre de usuario de texto libre

Si elige el tipo texto, el formato no se valida en FoxIDs (se permiten formatos mixtos, incluidos correos).
La home realm discovery (HRD) basada en dominio solo está disponible con el tipo email.

UI predeterminada de inicio de sesión externo con un nombre de usuario basado en texto:
External login UI

La UI se puede personalizar.

Implementar API

Debe implementar una API simple que FoxIDs llama para cada solicitud de autenticación (ver ejemplo).

La API tiene una URL base; la funcionalidad se agrupa en carpetas. Actualmente solo se admite la carpeta authentication (validar usuario/contraseña).
Las carpetas para cambio de contraseña y creación de usuario pueden añadirse más adelante.

Si la URL base es https://somewhere.org/mystore, el endpoint de autenticación es: https://somewhere.org/mystore/authentication

FoxIDs Cloud llama a su API desde la IP 57.128.60.142.
Las IP pueden cambiar o ampliarse.

Solicitud

Protegida con HTTP Basic auth: nombre de usuario external_login, contraseña = secreto configurado.

La llamada es HTTP POST con un cuerpo JSON.

Puede configurar parámetros adicionales; se incluyen en la carga JSON.

Solicitud tipo email:

{
  "usernameType": 100,
  "username": "user1@somewhere.org",
  "password": "testpass1"
}

Solicitud tipo nombre de usuario de texto:

{
  "usernameType": 200,
  "username": "user1",
  "password": "testpass1"
}

Códigos de tipo de nombre de usuario:

  • email = 100
  • text = 200

Respuesta

Éxito
En caso de éxito, la API debe devolver el código HTTP 200 y opcionalmente una lista de claims para el usuario autenticado.

Por ejemplo, el sub del usuario (ID único / nombre de usuario), nombre, apellido, email y quizá un rol:

{
  "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" }
  ]
}

Error
La API debe devolver el código HTTP 401 (Unauthorized) y un error (requerido) si se rechaza la autenticación Basic. Opcionalmente agregue una descripción del error en ErrorMessage.

{
  "error": "invalid_api_id_secret",
  "ErrorMessage": "Invalid API ID or secret"
}

La API debe devolver el código HTTP 400, 401 o 403 y un error (requerido) si se rechaza la combinación de usuario y contraseña. Opcionalmente agregue una descripción del error en ErrorMessage.

{
  "error": "invalid_username_password",
  "ErrorMessage": "Invalid username or password."
}

Si se producen otros errores, la API debe devolver el código HTTP 500 u otro código de error apropiado.
Se recomienda agregar un mensaje de error técnico ErrorMessage para diagnóstico (solo se registra; nunca se muestra al usuario final).

Ejemplo de API

El ejemplo ExternalLoginApiSample muestra cómo implementar la API en ASP.NET Core.

Colección Postman external-login-api.postman_collection.json para llamar y probar su API con Postman.

Configurar

Configure un método de autenticación de inicio de sesión externo por API en FoxIDs Control Client.

  1. Vaya a la pestaña Authentication
  2. Haga clic en New authentication
  3. Seleccione Show advanced
  4. Seleccione External API Login
  5. Agregue el Name
  6. Seleccione Username type (por ej. Text)
  7. Agregue la URL base de la API sin la carpeta authentication en API URL
  8. Agregue el API secret Configure an external login authentication method
  9. Haga clic en Create

Opcionalmente haga clic en Show advanced en la esquina superior derecha de la sección de configuración para personalizar la UI de inicio de sesión.

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