推荐的 NameIdFormat 用于在 SAML 中使用用户主体名称 (UPN) 作为 NameId
Posted
技术标签:
【中文标题】推荐的 NameIdFormat 用于在 SAML 中使用用户主体名称 (UPN) 作为 NameId【英文标题】:Recommended NameIdFormat for using User Principle Name (UPN) as NameId in SAML 【发布时间】:2021-01-04 12:56:01 【问题描述】:我们有以下名称 ID 格式可供选择。
未指定 电子邮件地址 X509SubjectName WindowsDomainQualifiedName kerberos 实体 持久 瞬态如果我需要我的 IDP(比如 Azure 或 ADFS 等)返回用户的 UPN 值,我应该选择哪种 nameid 格式?我应该将 IDP 配置为使用“未指定”作为 nameid 格式发送 UPN 值,还是应该选择持久化?或者是否有其他推荐的 nameid 格式用于发送/请求 UPN?
【问题讨论】:
您不能使用transient
,因为当您使用非透明值填充它时,它会违反 SAML 规范。但是大多数 SP 实现不会对 NameId 的值执行数据验证(可能是因为它没有在处理规则中指定)
【参考方案1】:
了解作为 SP,您通常定义使用您的服务所需的合同。很少有理由不使用未指定的,除非您的联合工具支持针对格式定义对属性进行某种自动验证。
即使您的工具确实支持该验证,也不能免除您自己验证数据的责任。
因此,我会选择未指定。它提供了最大的灵活性。
【讨论】:
以上是关于推荐的 NameIdFormat 用于在 SAML 中使用用户主体名称 (UPN) 作为 NameId的主要内容,如果未能解决你的问题,请参考以下文章
是否有用于将 SAML 与 Spring Boot 应用程序集成的 Spring Boot SAML 客户端?
基于 SAML 的 SSO 用于身份验证和 LDAP 用于授权 - Spring Boot Security