Inicio de sesión único (SSO) de ASP.NET Core SAML
El módulo brinda la capacidad de habilitar el inicio de sesión único SAML para sus aplicaciones principales ASP.NET. Al utilizar el inicio de sesión único, puede utilizar solo una contraseña para acceder a sus aplicaciones y servicios principales de ASP.NET. Nuestro módulo es compatible con todos los proveedores de identidad compatibles con SAML. Aquí repasaremos una guía paso a paso para configurar el inicio de sesión único (SSO) entre ASP.NET Core y PingFederate considerando a PingFederate como IdP. Para saber más sobre las funciones que ofrecemos para ASP.NET Core SSO, haga clic en
esta página.
Soporte de plataforma: El middleware ASP.NET Core SAML es compatible con ASP.NET Core 2.1 y versiones posteriores. Es compatible con todas las plataformas ASP.NET Core, incluidas Windows, Linux y macOS.
Requisitos previos: descarga e instalación
-
Descargar
el middleware ASP.NET Core SSO SAML 2.0.
-
Para configurar el módulo, extraiga asp-net-core-saml-middleware-xxx.zip, encontrará un archivo DLL miniorange-saml-sso.dll
-
Agrega la referencia miniorange-saml-sso.dll archivo en su solicitud.
using miniorange.saml
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseStaticFiles();
app.UseminiOrangeSAMLSSOMiddleware();
app.Run();
}
}
using Microsoft.AspNetCore.Authentication.Cookies;
using miniOrange.saml;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = "SSO_OR_Admin";
options.DefaultScheme = "SSO_OR_Admin";
options.DefaultChallengeScheme = "SSO_OR_Admin";
})
.AddCookie("moAdmin", options =>
{
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
})
.AddPolicyScheme("SSO_OR_Admin", "SSO_OR_Admin", options =>
{
options.ForwardDefaultSelector = context =>
{
foreach (var cookie in context.Request.Cookies)
{
if (cookie.Key.Contains(".AspNetCore.Cookies"))
{
return CookieAuthenticationDefaults.AuthenticationScheme;
}
}
return "moAdmin";
};
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseStaticFiles();
app.UseminiOrangeSAMLSSOMiddleware();
app.Run();
Pasos para configurar el inicio de sesión único (SSO) de ASP.NET Core usando PingFederate como IDP
1. Agregar módulo en la aplicación ASP.NET Core
-
Después de la integración, abra su navegador y explore el panel del conector con la siguiente URL:
https://<your-application-base-url>/?ssoaction=config
-
Si aparece la página de registro o la página de inicio de sesión, ha agregado exitosamente el conector SAML SSO de autenticación de middleware ASP.NET miniOrange a su aplicación.
-
Regístrese o inicie sesión con su cuenta haciendo clic en Registro Botón para configurar el módulo.
2. Configure PingFederate como proveedor de identidad
-
Bajo la Ajustes Plugin seleccione Federación de ping como su proveedor de identidad de la lista que se muestra.
Hay dos formas que se detallan a continuación con las que puede obtener los metadatos de SAML SP para configurarlos en el extremo de su proveedor de identidad.
A] Usando la URL de metadatos SAML o el archivo de metadatos:
-
En Menú de configuración del complemento, buscar
Configuración del proveedor de servicios. Debajo, puede encontrar la URL de los metadatos, así como la opción para descargar los metadatos SAML.
-
Copie la URL de metadatos o descargue el archivo de metadatos para configurarlo en el extremo de su proveedor de identidad.
- Puede consultar la captura de pantalla a continuación:
B] Cargar metadatos manualmente:
-
Desde el Configuración del proveedor de servicios sección, puede copiar manualmente los metadatos del proveedor de servicios como
ID de entidad de SP, URL de ACS, URL de cierre de sesión único
y compártalo con su proveedor de identidad para su configuración.
- Puede consultar la captura de pantalla a continuación:
- Inicie sesión en su panel de administración de usuarios de Ping Federate.
-
Haga clic en el Proveedor de identidad en el menú de navegación izquierdo.
-
under CONEXIÓN SP, haga clic en
Crear nuevo formulario del botón.
-
Seleccione Perfiles SSO del navegador plantilla de conexión en el Tipo de conexión pestaña y clic
Siguiente.
-
Seleccione SSO del navegador en la Opciones de conexión pestaña y clic
Siguiente.
-
Seleccione Archive como método para importar metadatos y haga clic Elige archivo para elegir los metadatos del complemento miniOrange SSO en el Importar metadatos lengüeta. Hacer clic
Siguiente.
-
Revisa la información sobre el Resumen de metadatos pestaña y haga clic Siguiente.
-
En Pestaña Información general asegurar que el
ID de entidad del proveedor de servicios, nombre de conexióny
URL base Los campos se rellenan previamente en función de los metadatos. Hacer clic Siguiente.
-
Navegue hasta la SSO del navegador pestaña y haga clic en el
Configurar SSO del navegador. Serás redirigido al asistente de configuración de SSO del navegador.
-
Seleccione SSO iniciado por IdP y
SSO iniciado por SP opciones en el Perfiles SAML pestaña y clic
Siguiente.
-
Ingrese el tiempo de validez de su afirmación deseada desde el
Vida útil de la aserción pestaña y clic Siguiente. Por defecto viene configurado 5 minutos para ambos.
-
Navegue hasta Creación de aserción y haga clic en Configurar creación de aserción. Serás redirigido al asistente de configuración de creación de afirmaciones.
- En la pestaña Mapeo de identidad, seleccione ESTÁNDAR y haga clic en Siguiente.
-
Seleccione un formato de nombre de sujeto para SAML_SUBJECT en la página
Contrato de atributos y haga clic en Siguiente.
-
Haga clic en Asignar nueva instancia de adaptador en la asignación de origen de autenticación.
-
Seleccione un Instancia de adaptador y haga clic
Siguiente. El adaptador debe incluir la dirección de correo electrónico del usuario.
-
Seleccione
Utilice solo los valores del contrato del adaptador en la aserción SAML opción en el Método de mapeo pestaña y clic
Siguiente.
-
Seleccione su instancia de adaptador como
Fuente y el correo electrónico como Valor
en Cumplimiento del contrato de atributos pestaña y haga clic Siguiente.
-
(Opcional) Seleccione las condiciones de autorización que desee en la página
Criterios de emisión pestaña y clic
Siguiente.
- Haga Clic en Terminado en Resumen.
-
Haga Clic en Siguiente en
Asignación de fuentes de autenticación .
- Haga Clic en Terminado en la pestaña Resumen.
-
Haga Clic en Siguiente en
Creación de afirmaciones
-
Navegue a la pestaña Configuración de protocolo del asistente SSO del navegador y haga clic en Configurar configuración de protocolo.
-
Seleccione PUBLICAR para Encuadernación y especifique el inicio de sesión único URL del punto final en el campo URL del punto final en la
URL del servicio al consumidor de aserciones Haga Clic en
Siguiente.
-
Seleccione PUBLICAR en
Enlaces SAML permitidos pestaña y clic
Siguiente.
-
Seleccione las políticas de firma que desee para las afirmaciones en el
Política de firma pestaña y clic Siguiente.
-
Seleccione la política de cifrado que desee para las afirmaciones en el
Política de cifrado pestaña y clic Siguiente.
-
Haga Clic en Terminado en
Resumen de configuración de protocolo .
-
Navegue hasta la Referencias y haga clic en el
Configurar credenciales. Será redirigido a la
Referencias asistente de configuración.
-
Seleccione el certificado de firma para usar con el servicio de inicio de sesión único y seleccione Incluir el certificado en el elemento de firma en la pestaña Configuración de firma digital. Haga clic en Listo.
- Haga Clic en Terminado en Resumen.
-
Haga Clic en Siguiente en Referencias.
-
Seleccione Active para
Estado de la conexión en
Activación y resumen pestaña y clic
Guardar.
-
Ahora, navegue hasta el panel de administración de usuarios de Ping Federate, proveedor de identidad.
-
Haga Clic en Gestionar todo bajo Conexiones SP.
-
Haga Clic en Exportar metadatos para la conexión del proveedor de servicios deseado.
-
Haga Clic en Exportar en
Exportación y resumen pestaña y clic
Hecho.
3. Configurar el módulo ASP.NET SAML como proveedor de servicios
Hay dos formas que se detallan a continuación con las que puede configurar los metadatos de su proveedor de identidad SAML en el módulo.
A] Cargue metadatos usando el botón Cargar metadatos IDP:
-
Si su proveedor de identidad le ha proporcionado la URL de metadatos o el archivo de metadatos (solo formato .xml), simplemente puede configurar los metadatos del proveedor de identidad en el módulo usando el
Cargar metadatos de IDP .
- Puede consultar la captura de pantalla a continuación:
-
Puedes elegir cualquiera de las opciones según el formato de metadatos que tengas disponible.
B] Configure los metadatos del proveedor de identidad manualmente:
-
Después de configurar su Proveedor de identidad, te proporcionará ID de entidad de IDP, URL de inicio de sesión único de IDP y
Certificado SAML X509 campos respectivamente.
- Haga Clic en Guardar para guardar los datos de su IDP.
4. Prueba de SSO de SAML
-
Haga clic en el Configuración de prueba para probar si la configuración SAML que ha realizado es correcta.
-
La siguiente captura de pantalla muestra un resultado exitoso. Haga clic en
Integración SSO para continuar con la integración SSO.
-
Si experimenta algún error al final del módulo, se le mostrará una ventana similar a la siguiente.
- Para solucionar el error, puede seguir los pasos a continuación:
-
under
Solucionar problemas
pestaña, habilite la opción para recibir los registros del complemento.
-
Una vez habilitado, podrá recuperar los registros del complemento navegando a
Ajustes Plugin pestaña y haciendo clic en Configuración de prueba.
-
Descargue nuestra archivo de registro del desplegable Solucionar problemas pestaña para ver qué salió mal.
-
Puedes compartir el archivo de registro con nosotros en
aspnetsupport@xecurify.com
y nuestro equipo se comunicará con usted para resolver su problema.
5. Mapeo de atributos
-
Después de probar la configuración, asigne los atributos de su aplicación a los atributos del proveedor de identidad (IdP).
-
Nota: Todos los atributos asignados se almacenarán en la sesión para que pueda acceder a ellos en su aplicación.
6. Código de integración
-
Estos pasos le permiten recuperar la información del usuario SSO en su aplicación en forma de reclamos de usuario.
-
También puedes mirar el recorrido de instalación para comprender cómo funcionaría la integración SSO en su aplicación de middleware asp.net.
-
Simplemente copie y pegue ese fragmento de código donde quiera acceder a los atributos del usuario.
-
Nota: Este middleware de prueba solo admite información del usuario en reclamos; la recuperación de información del usuario en la sesión y los encabezados está disponible en el complemento premium
- También puede copiar el código de integración a continuación:
string name="";
string claimtype="";
string claimvalue="";
if(User.Identity.IsAuthenticated)
{
foreach( var claim in User.Claims)
{
claimtype = claim.Type;
claimvalue = claim.Value;
}
var identity = (ClaimsIdentity)User.Identity;
IEnumerable claims = identity.Claims;
string mobileNumber = identity.FindFirst("mobileNumber")?.Value;
}
Nota: Todos los atributos asignados se almacenarán en los reclamos a los que se accederá en su aplicación.
Si desea ayuda con el código de integración, póngase en contacto con nosotros en
aspnetsupport@xecurify.com
7. Configuración de inicio de sesión
- Hover en Seleccionar acciones y haga clic en Copiar enlace SSO.
-
Utilice la siguiente URL como enlace en la aplicación desde donde desea realizar SSO:
https://asp.net-middleware-base-url/?ssoaction=login
-
Por ejemplo, puedes usarlo como:
<a href=”https://asp.net-middleware-base-url/?ssoaction=login”>Log
in</a>
7. Configuración de inicio de sesión
- Hover en Seleccionar acciones y haga clic en Copiar enlace SSO.
-
Utilice la siguiente URL como enlace en la aplicación desde donde desea realizar SSO:
https://base-url/?ssoaction=login
-
Por ejemplo, puedes usarlo como:
<a href=”https://asp-net-middlewarebase-url/?ssoaction=login”>Log
in</a>
8. Configuración de cierre de sesión
-
Utilice la siguiente URL como enlace a su aplicación desde donde desea realizar SLO:
https://asp-net-middleware-base-url/?ssoaction=logout
-
Por ejemplo, puedes usarlo como:
<a href=”https://asp-net-middleware-base-url/?ssoaction=logout”>Log
out</a>
Para configurar su IDP, puede encontrar los metadatos del proveedor de servicios en el archivo appsetting.json. Para los metadatos de SP, puede consultar la siguiente captura de pantalla:
Desde mininaranja sección, copie gastatyid, acsurl y proporciónelo al equipo de su proveedor de identidad.
-
Una vez que los metadatos del proveedor de servicios estén configurados en el extremo del IdP, se le proporcionará el archivo de metadatos del IdP o la URL de metadatos o URL de metadatos como el ID de entidad del IdP, la URL de SSO del IdP, etc.
-
Para configurar los metadatos de su IDP, navegue hasta
configuración de aplicaciones.json archivo. Encontrarás las siguientes configuraciones en la sección JSON del mininaranja.
-
Para configurar su IDP directamente, navegue hasta
configuración de aplicaciones.json archivo.
-
Configure los metadatos proporcionados apropiados y guarde la configuración.
idp_cert |
Ingrese el certificado de IDP en este campo |
agrio |
Ingrese la URL de SSO en este campo |
idp_emisor |
Ingrese el emisor de IDP en este campo |
Asignación de atributos
-
Asigne los atributos de su aplicación a los atributos del proveedor de identidad (IDP).
-
Nota: Todos los atributos asignados se almacenarán en la sesión para que pueda acceder a ellos en su aplicación.
Código de integración
-
Simplemente copie y pegue el fragmento de código donde desee acceder a los atributos del usuario.
-
Nota: Todos los atributos asignados se almacenarán en la sesión para que pueda acceder a ellos en su aplicación.
string name="";
string claimtype="";
string claimvalue="";
if(User.Identity.IsAuthenticated) {
name= User.Identity.Name;
foreach( var claim in User.Claims) {
claimtype = claim.Type;
claimValue = claim.Value;
}
}
Puede configurar el módulo de inicio de sesión único (SSO) de ASP.NET Core SAML 2.0 con cualquier proveedor de identidad, como
ADFS, Azure AD, Bitium, centrify, G Suite, JBoss Keycloak, Okta, OneLogin, Salesforce, AWS Cognito, OpenAM, Oracle, PingFederate, PingOne, RSA SecureID, Shibboleth-2, Shibboleth-3, SimpleSAML, WSO2 o incluso con tu propio proveedor de identidad personalizado. Consulte la lista de proveedores de identidad
esta página.
Recursos adicionales
¿Necesitas ayuda?
¿No puedes encontrar tu proveedor de identidad? Envíenos un correo electrónico a
aspnetsupport@xecurify.com
y lo ayudaremos a configurar SSO con su IDP y para obtener orientación rápida (por correo electrónico/reunión) sobre sus requisitos y nuestro equipo lo ayudará a seleccionar la mejor solución/plan adecuado según sus requisitos.