我们已将IdP设置为在.NET Core 2上使用IdentityServer4.IdP用于由多个MVC客户端进行身份验证,这些客户端依赖于IdP提供的SSO来无间地在站点之间进行身份验证。
步骤1.用户导航到MVC Site 1主页(不受限制的访问)。点击"登录"在顶部链接,用于验证用户并显示"用户名" /"注销"相反,链接。
步骤2.用户导航到MVC站点2主页(不受限制的访问),希望看到登录的用户名,但仍显示"登录"链接直到他导航到站点2上的安全页面,此时授权路由启动并根据站点1的登录信息对用户进行SSO。
站点2主页不能标记为[授权],因为它意味着可以不受限制地访问,但同时通过正确说明用户是否登录来维护用户旅程。
有没有办法实现这一点,其中用户被指示"授权"如果尚未经过身份验证,端点但没有质疑?
Startup上的标准客户端代码段是:
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ClientId = "mvc";
options.ResponseType = OpenIdConnectResponseType.IdToken;
options.SaveTokens = true;
});