Attualmente, ho creato un'applicazione Web di Identity Server 4 con provider di accesso esterni con ID client e segreti predefiniti. Ma il mio obiettivo è quello di registrare i provider di autenticazione come Azure, Google, Facebook in base al tenant.
Ho usato l' assemblaggio multi-tenancy SaasKit , qui ho provato il middleware app.usepertenant () . Ma il metodo UseGoogleAuthentication () è obsoleto, quindi non ho potuto ottenere l'autenticazione multi-tenant utilizzando questo middleware per uso permanente.
Codice attuale,
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddMicrosoftAccount(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
Il codice previsto è come di seguito,
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);
});