我必须使用identitiserver4(OAuth服务器)实现SSO。 我非常了解身份验证标准,因此在开始使用身份验证标准之前,我在互联网上进行了一些研究,发现SSO基本上是一种社交登录,其中提供者不是社交网络。
我了解到Identityserver4实现了使用SSO的 oidc 。
在 Startup.cs 文件中,我添加了以下内容:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
})
.AddOpenIdConnect("oidc", options =>
{
//options.SignInScheme = "Cookies";
options.Authority = "<url-sso-server>";
options.ClientId = "<client-id>";
options.SaveTokens = true;
});
此设置足够吗?每当我必须添加新的SSO提供程序时,我只需要询问他们的 url 和 clientId ?当然,他们将必须将我的重定向网址 / signin-oidc
列入白名单除此之外,我在拦截重定向回调时遇到麻烦,我无法读取任何提供程序信息:
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
return RedirectToAction(nameof(Login));
}
这总是提供一个空信息。 有什么建议吗?