ASP.NET Core 2上的SustainSys.Saml2-GetExternalLoginInfoAsync()返回null

时间:2019-03-11 05:42:09

标签: asp.net-core-2.0 sustainsys-saml2 gluu

我正在将SustainSys.Saml2与Gluu服务器作为我的IdP集成。我开箱即用了脚手架的身份页面。当我在localhost中运行时,并且查看控制台日志时,一切似乎都可以与SAML通信一起使用,甚至看到几行显示为:

Sustainsys.Saml2.AspNetCore2.Saml2Handler[0]
Successfully processed SAML response Microsoft.IdentityModel.Tokens.Saml2.Saml2Id and authenticated
Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler[10]
AuthenticationScheme: Identity.External signed in.

除非我弄错了,否则表明在SAML方面一切都很好。但是我不明白的是为什么在ExternalLogin.OnGetCallbackAsync中使用该命令

var info = await _signInManager.GetExternalLoginInfoAsync();

info设置为null

作为记录,在Startup.cs中,我有:

services.AddAuthentication()
  .AddSaml2(options =>
  {
    options.SPOptions.EntityId = new EntityId("{entityId}");
    options.IdentityProviders.Add(
      new IdentityProvider(new EntityId("{entityId}"), options.SPOptions)
      {
        Metadatalocation = "{metadataURL}",
      });
    options.Validate();
  });

1 个答案:

答案 0 :(得分:1)

我能够根据this GitHub issue和其中的Anders注释来弄清楚这一点。

我将在此处链接到我的评论。阅读上面的安德斯评论以获取解释。 https://github.com/Sustainsys/Saml2/issues/1030#issuecomment-616842796