如何在Java或节点中为SAML创建自己的IDP

时间:2019-06-13 16:11:50

标签: saml saml-2.0 spring-saml opensaml

我想创建一个供多个应用程序使用的SSO,这是最好的方法。我当时正在使用SAML2.0,但由于找不到用于创建自己的/自定义SAML IDP的文章而感到困惑。

1。创建自己的IDP是多么可行。
2.什么是实施SSO的最佳方法

3 个答案:

答案 0 :(得分:0)

不要尝试自己动手-使用受支持的解决方案。

在客户端,您需要一个SAML stack

其中一些带有可以安装的IDP。

看看:

  • Shibboleth
  • Azure AD-云中的SAML IDP
  • SaaS,例如Auth0,Okta-云中的SAML IDP
  • 带有SAML插件的Identityserver4
  • ComponentSpace-同时具有客户端和服务器端
  • Sustainsys-同时具有客户端和服务器端

所有这些都将提供SAML IDP。

它们还提供了很好的文档来帮助您入门和运行。

答案 1 :(得分:0)

问题1 :创建自己的IDP有多可行?

答案
GitHub存储库上的How to build and run Shibboleth SAML IdP and SP using Docker container提供了有关使用Shibboleth SAML IdP和OpenLDAP为Java中的SAML构建自己的IDP的说明。

  • Shibboleth SAML IdP负责身份联合。

  • OpenLDAP负责身份验证。

问题2 :实施SSO的最佳方法是什么?

答案
Shibboleth IdP已为已与SAML SP集成的企业应用程序实施了SSO。

(I)我已验证了由Docker运行的Shibboleth SAML IdP(身份提供程序)和OpenLDAP为以下企业应用程序提供的SAML单一登录(SSO)。换句话说,我利用运行Docker的Shibboleth SAML IdP和OpenLDAP成功登录到以下企业应用程序。

Microsoft Office 365
Google G Suite
Salesforce
Dropbox
Box
Amazon AWS
OpenStack
Citrix NetScaler
VMware vCloud Director
Oracle NetSuite

(II)我们用 Java 开发了先前的Zero-Password Authentication and Authorization System版本,并利用Shibboleth IdP为企业应用程序提供了SAML SSO。

我们在 Scala 中开发了具有扩展性和高可用性的Zero-Password Authentication and Authorization System当前版本,以为没有Shibboleth IdP的企业应用程序本机提供SAML SSO。

为了在您的生产环境中快速部署SAML IdP,强烈建议利用第三方SAML IdP(例如Shibboleth IdP)。这样您就有足够的时间来用Java或其他编程语言开发自己的SAML IdP。

(III)另一个StackOverflow问题"How to implement or integrate single sign on with SAML and Shibboleth"提供了有价值的信息和讨论。

答案 2 :(得分:0)

问题1:创建自己的IDP有多可行?

是的,可以,但是需要大量的努力。

此存储库可以帮助您弄清楚如何构建自己的IDP:A mock IDP and SP using the OpenSAML library

此存储库可以帮助您如何将自己的IDP集成到Spring Boot应用程序:Spring Boot, SAML, and Okta

问题2:实施SSO的最佳方法是什么?

在我看来,实现SSO的最佳方法是使用即付即用身份服务。它可以帮助您节省精力和金钱。亚马逊,谷歌,苹果,Okta,Auth0,geetoPod等都有许多此类服务。