在没有挑战的情况下调用IdP授权

时间:2017-11-30 11:26:36

标签: c# asp.net-core identityserver4 openid-connect

我们已将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;
            });

0 个答案:

没有答案