Actualmente, he creado una aplicación web Identity server 4 con proveedores de inicio de sesión externos con identificación de cliente y secretos predeterminados. Pero mi objetivo es registrar los proveedores de autenticación como Azure, Google, Facebook en función del inquilino.
He utilizado el ensamblaje multiusuario SaasKit , aquí he probado el middleware app.usepertenant () . Pero el método UseGoogleAuthentication () está obsoleto, por lo que no pude lograr la autenticación de múltiples inquilinos utilizando este middleware usepertenant.
Código actual,
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddMicrosoftAccount(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
El código esperado es el siguiente,
var authentication = services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme);
if (tenant.hasMicrosoft)
{
authentication.AddMicrosoftAccount(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
}
if (tenant.hasGoogle)
{
authentication.AddGoogle(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
}
authentication.AddCookie( options =>
{
options.SlidingExpiration = true;
options.ExpireTimeSpan = new TimeSpan(7, 0, 0, 0);
});