Actuellement, j'ai créé une application Web Identity Server 4 avec des fournisseurs de connexion externes avec un identifiant client et des secrets par défaut. Mais mon objectif est d'enregistrer les fournisseurs d'authentification comme Azure, Google, Facebook en fonction du locataire.
J'ai utilisé l' assembly multi-locataires SaasKit , ici j'ai essayé le middleware app.usepertenant () . Mais la méthode UseGoogleAuthentication () est obsolète, je n'ai donc pas pu obtenir d'authentification multi-locataire à l'aide de ce middleware usepertenant.
Code actuel,
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddMicrosoftAccount(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
Le code attendu est comme ci-dessous,
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);
});