小编Liz*_*rtu的帖子

用于 ASP.NET Core WebAPI 的 Sustainsys SAML2 示例,没有标识

有没有人有适用于 ASP.NET Core WebAPI 项目(无 Mvc)的 Sustainsys Saml2 库的工作示例,如果没有 ASP Identity,什么更重要?github 上提供的示例强烈依赖于我不需要也不想使用的 MVC 和 SignInManager。

我添加了 Saml2 身份验证,起初它在我的 IdP 上运行良好(我还检查了 Sustainsys 提供的 StubIdP)的前几个步骤,因此:

  • IdP 元数据被正确加载
  • 我的 API 正确重定向到登录页面
  • 登录页面重定向到 /Saml2/Acs 页面,我在日志中看到它成功解析了结果

但是我不知道如何从那里继续并提取用户登录名和其他声明(我的 IdP 还提供了一封电子邮件,它包含在我在日志中确认的 SAML 响应中)。

遵循在网络上找到的一些示例并稍微修改来自 GitHub 的 MVC 示例,我执行了以下操作:

在 Startup.cs 中:

...
.AddSaml2(Saml2Defaults.Scheme,
                       options =>
                       {
                           options.SPOptions.EntityId = new EntityId("...");
                           options.SPOptions.ServiceCertificates.Add(...));
                           options.SPOptions.Logger = new SerilogSaml2Adapter();
                           options.SPOptions.ReturnUrl = new Uri(Culture.Invariant($"https://localhost:44364/Account/Callback?returnUrl=%2F"));

                           var idp =
                               new IdentityProvider(new EntityId("..."), options.SPOptions)
                               {
                                   LoadMetadata = true,
                                   AllowUnsolicitedAuthnResponse = true, // At first /Saml2/Acs …
Run Code Online (Sandbox Code Playgroud)

docker asp.net-core asp.net-core-webapi sustainsys-saml2

7
推荐指数
2
解决办法
4444
查看次数