1

带有 SustainSys.SAML 的 IdentityServer4 在 ExternalLoginCallback 之后丢失了原始客户端重定向。

我使用 IdentityServer4 示例应用程序作为 SustainSys.SAML netstandard 分支的指南

我遇到的唯一问题是,当我在https://stubidp.sustainsys.com登录并重定向回我的 IdentityServer4 ExternalLoginCallback() 方法时,我丢失了原始客户端重定向(这是原始客户端的一部分)授权重定向网址。当此代码返回时:

var result = await HttpContext.AuthenticateAsync(IdentityServerConstants.ExternalCookieAuthenticationScheme);

Properties.Items 中的 returnUrl 和值是相同的,并且通过 IdentityServer /authorize 端点返回到我的客户端应用程序(Angular 应用程序)的原始 redirectUrl 已经消失。

我已经尝试过它的行为方式相同的示例应用程序。

4

1 回答 1

1

原来我将我的 ExternalProvider 的 AuthenticationScheme 设置为不正确的值。在 IdP 登录过程中调用的 BuildLoginViewModelAsync() 方法中,此处使用了不正确的值:

return new LoginViewModel
            {
                EnableLocalLogin = false,
                ReturnUrl = returnUrl,
                Username = context.LoginHint,
                ExternalProviders = new[] { new ExternalProvider { AuthenticationScheme = **context.IdP** } }
            };
于 2018-04-17T17:24:13.347 回答