SAML 2.0 到 OpenID Connect 缺少 SUB 声明

问题描述

我已在 FoxID 上将 AD FS 连接为 SAML 2.0 上行方,而我的应用程序作为下行方与 OpenID Connect 连接。

我的申请中没有收到 SUB 索赔,可能是什么问题?

解决方法

FoxID 在 SAML 2.0 和 JWT 声明之间进行转换。其中 sub 声明是从 SAML 2.0 NameID 属性/声明转换而来的。 NameID 声明的声明类型为 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

您需要更新 AD FS 配置以同时发出 NameID 声明。这会导致具有 sub 声明值的 NameID 声明。

或者,如果 AD FS 例如正在发出 UPN (http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn) 声明,您可以在 FoxIDs 中定义声明转换,将 UPN (http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn) 声明映射到 NameID ({{1 }}) 宣称。这会导致 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier 声明具有 sub 声明值。

要进行调试,您可以临时添加具有常量值的 UPN (NameID) 声明,这会导致子声明。