.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.comy la contraseñagEh#V6kSw
También puedes configurar los ejemplos en tu entorno FoxIDs.
Índice de ejemplos
ASP.NET Core - OpenID Connect - registro de aplicación
- AspNetCoreOidcAuthCodeAllUpPartiesSample (online) ← ¡Buen punto de partida!
- AspNetCoreOidcAuthorizationCodeSample
- AspNetCoreOidcImplicitSample
ASP.NET Core - SAML 2.0 - registro de aplicación
Blazor - OpenID Connect - registro de aplicación
App de consola - OAuth 2.0 Client credential grant - registro de aplicación
ASP.NET Core API - OAuth 2.0 - registro de aplicación
ASP.NET Core - OpenID Connect - método de autenticación
ASP.NET Core - SAML 2.0 - método de autenticación
ASP.NET Core - APIs externas
App de consola - FoxIDs Control API
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 entornomaster.
Crea un cliente OAuth 2.0 del sample seed tool en el FoxIDs Control Client:
- Selecciona el entorno
mastery crea un registro de aplicación OAuth 2.0, haz clic enOAuth 2.0 - Client Credentials Grant. - Establece el client id en
sample_seed. - Recuerda el client secret.
- En la sección resource and scopes, concede al cliente sample seed acceso al recurso FoxIDs Control API
foxids_control_apicon el scopefoxids:tenant. - Haz clic en show advanced.
- En la sección issue claims, agrega un claim con el nombre
roley el valorfoxids:tenant.admin. Esto otorgará al cliente el rol de administrador.
El cliente del sample seed tool obtiene así acceso para actualizar el tenant.

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.