Security SAML 2.0-通过自定义属性而不是NameId对用户进行身份验证

Security SAML 2.0-通过自定义属性而不是NameId对用户进行身份验证,security,authentication,single-sign-on,saml-2.0,Security,Authentication,Single Sign On,Saml 2.0,我们有一个多客户端(内部称为“corporates”),即基于web的软件,我们通过SAML2.0实现了SSO。每个客户端都是一个公司,每个公司都有自己的用户 目前,用户由SAML响应的NameId属性识别(与应用程序中的用户名字段相匹配),而Issuer字段的值允许我们知道用户来自哪个公司 现在,我们的一个大客户将该解决方案贴上了白色标签,并在内部使用它,为其所有客户提供了一个单一的身份提供商。这意味着所有SAML消息都有一个唯一的颁发者值,我们不能再依赖该值来识别用户的公司身份。幸运的是,他

我们有一个多客户端(内部称为“corporates”),即基于web的软件,我们通过SAML2.0实现了SSO。每个客户端都是一个公司,每个公司都有自己的用户

目前,用户由SAML响应的NameId属性识别(与应用程序中的用户名字段相匹配),而Issuer字段的值允许我们知道用户来自哪个公司

现在,我们的一个大客户将该解决方案贴上了白色标签,并在内部使用它,为其所有客户提供了一个单一的身份提供商。这意味着所有SAML消息都有一个唯一的颁发者值,我们不能再依赖该值来识别用户的公司身份。幸运的是,他们的SAML消息提供了我们需要的所有信息,格式如下:

  • NameId值的格式为“公司:用户名”
  • 有一个特定的“companyId”属性,值为“corporate”
  • 有一个特定的“operatorId”属性,值为“username”
我想识别公司是很简单的:我们需要检查自定义“companyId”属性的值,并将其与公司名称进行比较。很简单

但是用户名呢?检查“运算符ID“属性而不是NameID属性?或者我们应该在所有情况下始终依赖于NameId,因此设置自定义解析逻辑,从NameId中提取公司和用户名吗

你会怎么做?我找不到类似的案例


谢谢

它似乎没有遵循您公司的最佳实践:),但一旦您确认了请求,您就可以决定您是否同意客户的意见了。因为它是一个例外,所以人们会认为它更难维护