面向初学者的 SAML 简单示例

2022-09-01 02:10:19

我是SAML v2.0技术的初学者,我获得了理论知识,但我在Google上没有找到任何例子。任何人都可以为我提供一个简单的“SAML for v2.0”的分步示例。

  1. 到目前为止,我已经了解了理论部分,即它支持单点登录
    并且我还了解了服务提供商身份提供商
  2. 目前我正在研究Linux环境
  3. 我需要一步一步的基本示例,说明请求如何从用户 ->身份提供程序->服务提供程序以及如何配置环境。
  4. 是否可以执行 SAML v2.0 的示例
  5. 他们有没有机会用Java语言执行SAML的例子,如果可能的话,也可以
    在Java上提供例子。

答案 1

使用 SAML 的典型 SSO 称为 Web SSO 配置文件。市场上有许多产品支持这一点,例如OpenAM,Shibboleth,OpenSAML和Oracle Identity Federation。具体配置取决于您选择使用的产品。我在书中使用的OpenSAML的一个工作示例可以在这里找到。

在 SAML 级别,SP 和 IDP 交换元数据,其中包含有关 SP 和 IDP 希望如何通信的配置信息。

然后,通过四个步骤完成 SSO:

  1. SP 看到用户没有经过身份验证的会话。
  2. SP 将用户重定向到 IDP,并将 SAML AutnRequest 作为 URL 参数。
  3. IDP 对用户进行身份验证,并使用 URL 参数中的项目将其重定向回 SP。
  4. SP 使用 ArtifactResolveRequest 向 IDP 交换对 SOAP 的断言。

如果你想自己用Java编写代码,你可以使用OpenSAML。在我的博客上,我有很多关于如何使用它的例子。

在我的书《A Guide to OpenSAML》中,我写了很多关于这个的文章。

编辑 本书的新版本已经出版,涵盖了OpenSAML v3


答案 2

您只需按照本手册中的步骤操作,这将帮助您在本地服务提供商和公共身份提供商之间创建简单的 SAML 2.0 联合身份验证。

完成此设置后,您可以使用它来跟踪IDP / SP之间发送的消息,也可以作为使用Java + OpenSAML + Spring构建的SAML组件的示例。

关于SAML还有许多其他好的信息来源,比如上面提到的Stefan的博客。