Atualmente, criei um aplicativo Web do servidor de identidade 4 com provedores de login externos com ID e segredos de cliente padrão. Mas meu objetivo é registrar os provedores de autenticação como Azure, Google, Facebook com base no inquilino.
Eu usei o conjunto de multilocação do SaasKit , aqui tentei o middleware app.usepertenant () . Mas o método UseGoogleAuthentication () é obsoleto, portanto, não foi possível obter a autenticação de vários inquilinos usando esse middleware de uso frequente.
Código atual,
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddMicrosoftAccount(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
O código esperado é como abaixo,
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);
});