有什么方法可以查询用户是否存在于基于 SAML 的身份提供者中?

is there any way to query if user is exist or not in SAML based identity provider?

我只想检查用户是否存在于连接到 SAML 身份提供商的 Active Directory 或 LDAP 中,而无需通过浏览器执行完整的 SSO。 SAML IDP 是否在不实际执行 SSO 的情况下为用户查找提供任何 API?

这是您要找的吗? SAML Token Validator。验证令牌后,您可以使用 userService.findUserByXXX() 方法检查 SAML 令牌中的给定用户是否存在。

其实SAML是没办法解决的。发生在 IdP 的身份验证实际上超出了 SAML 规范的范围。事实上,IdP 不需要自己执行身份验证,而是可以将其委托给某个身份验证机构。

如果您与单一身份提供商合作,您可以使用 SAML 作为传输工具来执行此操作,该工具仅验证用户是否存在。没有人说合作伙伴如何决定在他们之间实施该标准。 IdP 不必实际让用户登录,SP 可以根据合作伙伴关系使用他们认为合适的数据。让律师解决这个问题。

从流程的角度来看,我可以看到它是这样工作的...

作为服务提供商,您从您希望验证的用户处收集帐户信息。您向 IdP 发送一个 AuthnRequest,其中包含您的应用程序捕获的身份。

IdP 只是验证帐户是否在其存储库中作为“身份验证过程”。 (眨眼眨眼)如果该帐户存在,IdP 会将主题和状态“成功”的 SamlResponse 发送回 SP。如果没有,则发回主题和状态“错误”。

作为 SP,您现在知道用户是否存在(好吧,至少您知道 IdP 声称的内容),并且您可以对信息做任何您想做的事。

哎呀,你甚至可以埋葬对不起?什么?是的,您可以 在 iF​​rame 中嵌入 重定向过程,并向用户展示一个可爱的微调器,一个有趣的猫 gif...或者可能只是做一个条形图来说明它在做什么,因为你应该对你的潜在用户诚实。

你知道,虽然我们变得疯狂和疯狂,但实际上你可能最好只使用安全令牌服务 WS-Trust。但是你没有问这个。因此,只需研究一下,然后将其与我的建议和您的用例进行比较,看看什么是满足您要求的最佳选择。

推出一个令人愉快的新用户体验,围绕一个令人愉快的身份协议主力,将实施过程中发生的事情留给我们所有的建设者。