Obecnie utworzyłem aplikację internetową serwera tożsamości 4 z zewnętrznymi dostawcami logowania z domyślnym identyfikatorem klienta i kluczami tajnymi. Ale moim celem jest zarejestrowanie dostawców uwierzytelniania, takich jak Azure, Google, Facebook w oparciu o najemcę.
Użyłem zestawu wielodostępnego SaasKit , tutaj wypróbowałem oprogramowanie pośrednie app.usepertenant () . Ale metoda UseGoogleAuthentication () jest przestarzała, więc nie mogłem uzyskać uwierzytelnienia dla wielu dzierżawców przy użyciu tego oprogramowania pośredniego.
Aktualny kod,
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddMicrosoftAccount(option =>
{
option.ClientId = "clientid";
option.ClientSecret = "clientsecret";
option.SaveTokens = true;
});
Oczekiwany kod jest jak poniżej,
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);
});