【问题标题】:ITFoxtec SAML2 Authentication, Blazor gets the authenticated user, but the MVC part are notITFoxtec SAML2 身份验证,Blazor 获取经过身份验证的用户,但 MVC 部分没有
【发布时间】:2022-10-23 18:38:55
【问题描述】:

今天是个好日子

我的应用程序发生了这种奇怪的情况,我有一个 Blazor 服务器端应用程序,它有一个 ITFoxtec 作为我们的 SAML2 身份验证,我们的全球公司作为提供者,然后我添加了一个控制器,身份验证将开始。

我们有 2 个 SAML2 提供者,一个用于我们的生产环境,一个用于我们的舞台环境,去年,我们在我们的舞台上测试了 SAML2 并且它正在工作,然后当我们将它部署到我们的生产环境时它也可以工作,它提供了授权在 MVC 和 Blazor 组件上,它工作正常

然后对于我们的 staging 我们将身份验证切换为简单登录,以便我们测试不同的用户和角色,然后几个月后,当我们将 SAML2 用于我们的 staging 环境时,发生了一件奇怪的事情,Blazor 组件可以获取经过身份验证的用户但 MVC 不是,身份验证为真,但 User.Identity.Name 为空

我们没有更改 SAML2 编码设置的任何内容,仅更改了 appsettings.json 上的 IdPMetadata、Isser 和 Saml2 配置

这很奇怪,因为它在我们的生产中正常工作,但在舞台上却不是。

有人在 SAML2 和 ITFoxtec 中遇到过这个奇怪的事情吗?

谢谢并恭祝安康

【问题讨论】:

  • 您能确定更改后的 IdPMetadata 和 Issuer 是正确的吗?如果正确,您可能没有与默认名称声明类型匹配的声明。您有 NameIdentifier 声明(这是 idp 默认提供的)。但是您没有默认 NameClaimType 的声明。
  • 可以参考this link

标签: asp.net-core itfoxtec-identity-saml2 itfoxtec-identity-blazor


【解决方案1】:

我认为这是因为 IdP 不返回在 .NET 中被解释为 ClaimTypes.NameIdentifier = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" 的 NameID 值。

您可以将 ClaimTypes.NameIdentifier 参数更改为您在 ClaimsTransform.cs 中返回的声明,请参阅: https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/blob/master/test/TestWebAppCore/Identity/ClaimsTransform.cs#L31

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2020-11-15
    • 2016-01-17
    相关资源
    最近更新 更多