.NET Samples

Los ejemplos .NET de FoxIDs muestran:

  • Inicio y cierre de sesión de usuario con OpenID Connect 1.0 y SAML 2.0
  • Client credential grant con secreto y certificado
  • Llamadas a API protegidas con OAuth 2.0
  • Intercambio de tokens de access token a access token y de SAML 2.0 a access token

Encuentra el código fuente de los ejemplos en el repositorio FoxIDs.Samples.

Los ejemplos están preconfigurados en el tenant de prueba en línea de FoxIDs test-corp y pueden ejecutarse inmediatamente en local en Visual Studio en los puertos localhost preconfigurados.

Echa un vistazo a la configuración de prueba de FoxIDs en FoxIDs Control: https://control.foxids.com/test-corp Obtén acceso de lectura con el usuario reader@foxids.com y la contraseña gEh#V6kSw

También puedes configurar los ejemplos en tu entorno FoxIDs.

Índice de ejemplos

Puedes usar la herramienta JWT y la herramienta SAML 2.0 para decodificar tokens y crear certificados autofirmados con la herramienta de certificados.

Aplicaciones de ejemplo

Los ejemplos muestran diferentes aplicaciones que confían en FoxIDs como un IdP.

AspNetCoreOidcAuthCodeAllUpPartiesSample

Ejemplo (enlace de código) de aplicación que muestra inicio y cierre de sesión de usuario con OpenID Connect (OIDC) usando el flujo de authorization code como proveedor de servicios y solicitando inicio de sesión con todos los métodos de autenticación.

Puedes probar este ejemplo en línea.

¡Este ejemplo es un buen punto de partida!

Los posibles métodos de autenticación se configuran en el registro de aplicación como métodos de autenticación permitidos. Se pueden configurar uno o varios métodos de autenticación permitidos. Todos los métodos de autenticación configurados se seleccionan con una estrella en lugar de un nombre de método de autenticación.

Soporta inicio/cierre de sesión con la página de login de FoxIDs, Identity Server, ejemplo de IdP SAML 2.0 y todos los demás métodos de autenticación.

Llamadas a API:

  • Muestra cómo llamar al ejemplo API1 asegurado con un access token.
  • Muestra cómo llamar al ejemplo API1 asegurado con un access token que a su vez llama al ejemplo API2 usando token exchange a través de API1.
  • Muestra cómo obtener un access token mediante token exchange, el cliente usa el método de autenticación client_secret_post. Luego llama al ejemplo API2 asegurado con el access token obtenido.

Dominio y puerto de desarrollo local: https://localhost:44349

AspNetCoreOidcAuthorizationCodeSample

Ejemplo (enlace de código) de aplicación que muestra inicio y cierre de sesión de usuario con OpenID Connect (OIDC) usando el flujo de authorization code como proveedor de servicios.

Soporta inicio/cierre de sesión con la página de login de FoxIDs, Identity Server, ejemplo de IdP SAML 2.0 y, si está configurado, AD FS usando SAML 2.0.

Muestra cómo llamar al ejemplo API1 asegurado con un access token.

Dominio y puerto de desarrollo local: https://localhost:44340

AspNetCoreOidcImplicitSample

Ejemplo (enlace de código) de aplicación que muestra inicio y cierre de sesión de usuario con OpenID Connect (OIDC) usando el flujo implícito como proveedor de servicios.

Soporta inicio/cierre de sesión con la página de login de FoxIDs, Identity Server, ejemplo de IdP SAML 2.0 y, si está configurado, AD FS usando SAML 2.0.

Dominio y puerto de desarrollo local: https://localhost:44341

AspNetCoreSamlSample

Ejemplo (enlace de código) de aplicación que muestra inicio y cierre de sesión de usuario con SAML 2.0 como relying party.

Soporta inicio/cierre de sesión con la página de login de FoxIDs, Identity Server, ejemplo de IdP SAML 2.0 y, si está configurado, AD FS usando SAML 2.0.

Muestra cómo obtener un access token a partir de un token portador SAML 2.0 con token exchange, el cliente usa el método de autenticación private_key_jwt (certificado). Luego llama al ejemplo API1 asegurado con el access token obtenido.

Dominio y puerto de desarrollo local: https://localhost:44343

NetCoreClientCredentialGrantConsoleSample

Ejemplo (enlace de código) de aplicación de consola (backend) que muestra autenticación de cliente con OAuth 2.0 Client Credentials Grant usando un secreto (método de autenticación client_secret_post).

Muestra cómo llamar al ejemplo API1 y al ejemplo API con dos IdPs asegurados con un access token.

NetCoreClientCredentialGrantAssertionConsoleSample

Ejemplo (enlace de código) de aplicación de consola (backend) que muestra autenticación de cliente con OAuth 2.0 Client Credentials Grant usando un certificado (método de autenticación private_key_jwt).

Muestra cómo llamar al ejemplo API1 y al ejemplo API con dos IdPs asegurados con un access token.

NetFramework4.7ClientCredentialGrantAssertionConsoleSample

Ejemplo (enlace de código) de aplicación de consola .NET Framework 4.7 (backend) que muestra autenticación de cliente con OAuth 2.0 Client Credentials Grant usando un certificado (método de autenticación private_key_jwt).

Muestra cómo llamar al ejemplo API1 y al ejemplo API con dos IdPs asegurados con un access token.

BlazorBFFAspNetCoreOidcSample

Ejemplo (enlace de código cliente y servidor) de aplicación que muestra inicio y cierre de sesión de usuario con OpenID Connect (OIDC) usando el flujo authorization code en una aplicación Blazor BFF (Backend For Frontend) con un backend ASP.NET Core. En una arquitectura BFF el backend maneja OIDC, los tokens nunca se comparten con el cliente Blazor. En su lugar, una sesión basada en una cookie de identidad asegura la aplicación tras una autenticación exitosa.

El ejemplo muestra cómo llamar al ejemplo API1 desde el cliente Blazor a través de un proxy API backend que agrega el access token a la llamada API saliente.

Dominio y puerto de desarrollo local: https://localhost:44348

BlazorOidcPkceSample

Ejemplo Blazor (enlace de código) de aplicación que muestra inicio y cierre de sesión de usuario con OpenID Connect (OIDC) usando el flujo authorization code y PKCE como proveedor de servicios.

Muestra cómo llamar al ejemplo API1 asegurado con un access token.

Dominio y puerto de desarrollo local: https://localhost:44345

BlazorServerOidcSample

Ejemplo Blazor Server (enlace de código) de aplicación que muestra inicio y cierre de sesión de usuario con OpenID Connect (OIDC) usando el flujo authorization code como proveedor de servicios.

Muestra cómo llamar al ejemplo API1 asegurado con un access token.

Dominio y puerto de desarrollo local: https://localhost:44347

AspNetCoreApi1Sample

Ejemplo (enlace de código) de API que muestra cómo asegurar una API con un access token y cómo restringir el acceso por scopes.

Puedes llamar a este ejemplo en línea.

La API llama al ejemplo API2 asegurado con un access token obtenido por token exchange donde el cliente usa el método de autenticación private_key_jwt (certificado).

Dominio y puerto de desarrollo local: https://localhost:44344

AspNetCoreApi2Sample

Ejemplo (enlace de código) de API que muestra cómo asegurar una API con un access token y cómo restringir el acceso por un scope.

Puedes llamar a este ejemplo en línea.

Dominio y puerto de desarrollo local: https://localhost:44351

AspNetCoreApiOAuthTwoIdPsSample

Ejemplo (enlace de código) de API que muestra cómo crear una API que puede aceptar access tokens de dos IdPs diferentes. Cada relación IdP - API puede configurarse con IDs de recursos y scopes individuales.

Este escenario ocurre con mayor frecuencia durante un período de transición al pasar de un IdP a otro. Tener APIs con soporte dual de IdP permite mover clientes de un IdP a otro independientemente de las APIs.

El ejemplo de API puede llamarse cambiando el código comentado en los ejemplos NetCoreClientCredentialGrantConsoleSample o NetCoreClientCredentialGrantAssertionConsoleSample.

Dominio y puerto de desarrollo local: https://localhost:44350

Ejemplos de métodos de autenticación

Los ejemplos de métodos de autenticación muestran diferentes IdPs conectados a FoxIDs, donde FoxIDs confía en los ejemplos de IdP.

AspNetCoreSamlIdPSample

Ejemplo (enlace de código) de aplicación que implementa un proveedor de identidad SAML 2.0 (IdP) conectado como método de autenticación SAML 2.0 en FoxIDs. El ejemplo también muestra cómo hacer inicio de sesión iniciado por IdP.

Puedes probar este ejemplo en línea.

Dominio y puerto de desarrollo local: https://localhost:44342

IdentityServerOidcOpSample

Identity Server (enlace de código) implementa OpenID Connect (OIDC) y expone un OpenID Provider (OP) / Identity Provider (IdP) conectado como método de autenticación OpenID Connect en FoxIDs.

Dominio y puerto de desarrollo local: https://localhost:44346

ExternalLoginApiSample

Ejemplo (enlace de código) de aplicación que implementa una API de login externa que está conectada como método de autenticación de login externo en FoxIDs.

Dominio y puerto de desarrollo local: https://localhost:44352

ExternalClaimsApiSample

Ejemplo (enlace de código) de aplicación que implementa una API de claims externa que puede configurarse y llamarse desde una transformación de claims. La API de claims externa puede añadir claims externos a los claims emitidos.

Dominio y puerto de desarrollo local: https://localhost:44353

ExternalExtendedUiApiSample

Ejemplo (enlace de código) de aplicación que implementa una API externa de UI extendida que puede configurarse y llamarse para validar elementos UI dinámicos y, opcionalmente, devolver claims adicionales.

Dominio y puerto de desarrollo local: https://localhost:44354

ExternalPasswordApiSample

Ejemplo (enlace de código) de aplicación que implementa una API externa de contraseña que se conecta como una API externa de contraseña en un entorno FoxIDs.

Dominio y puerto de desarrollo local: https://localhost:44355

FoxIDsControlApiSample

Ejemplo (enlace de código) de aplicación de consola que muestra cómo llamar a FoxIDs Control API.

Configurar ejemplos en un entorno FoxIDs

Los ejemplos pueden configurarse en un entorno FoxIDs con el sample seed tool o manualmente a través de FoxIDs Control Client.

El sample seed tool se encuentra en la solución de ejemplos: tools/SampleSeedTool.

Configurar el sample seed tool

El sample seed tool se configura en el archivo appsettings.json.

Agrega los endpoints de FoxIDs y FoxIDs Control API a la configuración del sample seed tool. Se pueden agregar actualizando los nombres de instancia https://foxids.com y https://control.foxids.com/api. Si ejecutas FoxIDs localmente en Visual Studio, los endpoints se configuran en FoxIDs localhost https://localhost:44330/ y FoxIDs Control API localhost https://localhost:44331/.

"SeedSettings": {
    "FoxIDsEndpoint": "https://foxids.com",
    "FoxIDsConsolApiEndpoint": "https://control.foxids.com/api"
}

El acceso para crear la configuración de los ejemplos en un entorno se concede en el entorno master. La configuración de los ejemplos no debe añadirse al entorno master.

Crea un cliente OAuth 2.0 del sample seed tool en el FoxIDs Control Client:

  1. Selecciona el entorno master y crea un registro de aplicación OAuth 2.0, haz clic en OAuth 2.0 - Client Credentials Grant.
  2. Establece el client id en sample_seed.
  3. Recuerda el client secret.
  4. En la sección resource and scopes, concede al cliente sample seed acceso al recurso FoxIDs Control API foxids_control_api con el scope foxids:tenant.
  5. Haz clic en show advanced.
  6. En la sección issue claims, agrega un claim con el nombre role y el valor foxids:tenant.admin. Esto otorgará al cliente el rol de administrador.

El cliente del sample seed tool obtiene así acceso para actualizar el tenant.

FoxIDs Control Client - sample_seed client

Crea un nuevo entorno FoxIDs para las aplicaciones de ejemplo o selecciona un entorno existente.

Cambia el tenant, el entorno y el client secret del sample seed tool en la configuración del sample seed tool.

"SeedSettings": {
  "Tenant": "xxx",
  "Track": "xxx",
  "DownParty": "sample_seed",
  "ClientSecret": "xxx"
}

Cambia la configuración del tenant y del entorno para todos los ejemplos.

Ejecutar el sample seed tool

Ejecuta el ejecutable SampleSeedTool.exe del sample seed tool o ejecuta el seed tool directamente desde Visual Studio.

  • Haz clic en 'c' para crear la configuración de los ejemplos
  • Haz clic en 'd' para eliminar la configuración de los ejemplos

El sample seed tool creará y eliminará configuraciones para todos los ejemplos.

Las aplicaciones de ejemplo requieren un método de autenticación login con el nombre login (maneja el inicio de sesión de usuario). Se crea por el sample seed tool si no existe. El método de autenticación login no se elimina si se elimina la configuración de los ejemplos.

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