jjzjj

java - 为了实现 SAML,我是否需要在我的主机上安装 Shibboleth SP?

coder 2024-03-26 原文

我有几个 SAML 实现问题来澄清我的困惑......

我需要在 Java Web 应用程序中实现 SSO。

  • 为此,我是否需要在我的主机上安装 Shibboleth SP like so ,或者我可以通过 OpenSAML 提供 SP 功能吗?
  • 我假设 shibboleth 的功能与 OpenSAML 相同,但只是在网络服务器级别,而 OpenSAML 将在软件方面进行。这个假设正确吗?

  • EDIT: So shibboleth (according to Scott Cantor) is build with OpenSAML ... does my assumption still hold though?


  • 使用 OpenSAML 需要什么?只是 IdP 网址和向 idP 的注册?
  • 我是否需要提供一个 SP 目录,例如 Activity 目录/LDAP?

  • EDIT: Thanks for the answers, but can someone directly answer the questions above and elaborate on them ...

    最佳答案

    更新以解决您的编辑问题:

    以下是您可以使用的一些 SAML 2 选项。

  • PingFederate https://www.pingidentity.com/帮助您理解 SAML 和 SSO 的好东西。商业并被许多公司使用。
  • JOSSO 全 java http://www.josso.org/confluence/display/JOSSO1/JOSSO+-+Java+Open+Single+Sign-On+Project+Home , LGPL 2.1 或更高版本
  • 基于 native 实现的 LASSO Java API。 http://lasso.entrouvert.org/双重许可(仅限非商业用途免费)。
  • OpenAM 全 Java http://java.net/projects/opensso/ , CDDL 1.0
  • Shibboleth SP C++,http://shibboleth.internet2.edu/ , Apache 许可证,版本 2.0。
  • OpenSAML 库 Java 或 C++,https://wiki.shibboleth.net/confluence/display/OpenSAML/Home/ Apache 许可证,版本 2.0。
  • 已失效的 OpenSSO(成为 OpenAM)全 Java http://java.net/projects/opensso/ , CDDL 1.0
  • Shibboleth IdP All-Java 这不是 SP,只是 IdP,可用于测试您的 SP。

  • Shibboleth SP 是一种为您实现 SAML 2.0 的产品,但 OpenSAML 只是一个库,您可以使用它来实现 SAML 2.0 解决方案。该库本身是低级的,甚至还不是 SSO 解决方案。 OpenSAML 本身并不是 SAML 2.0 解决方案。

    要使用 OpenSAML 或任何 SAML 2.0 解决方案,您需要按如下所述交换元数据。使用 OpenSAML,您还必须为您自己的元数据手动生成 XML 文件。如下所述,这将是大量工作。 SAML 2.0 产品将为您生成该 XML 元数据文件,并生成用于加密和签署 SAML 2.0 断言所需的 RSA key 。使用 OpenSAML,您将获得用于加载部分 XML 文件和 API 以生成和解析断言的 API 支持,但您将编写实际构建 SSO 交互的 Java 代码。

    SP 不一定需要 ActiveDirectory/LDAP,但您需要在 Web 应用程序中使用某种类型的目录来跟踪用户。如果您的 Web 应用程序已经有用户的概念,并且您可以使用一些识别信息将这些信息与 IdP 的用户概念相关联,那么您只需根据 SAML 2.0 断言中的属性值在您的 Web 应用程序中映射这些信息。 (如果您的 Web 应用程序不关心用户是谁,那么您可以简单地根据用户是否“有效”来允许访问该应用程序。)

    ——

    将 Shibboleth2 SSO 与 Java Web 应用程序集成并不太困难。使用 OpenSAML 来实现 SSO 是可行的,但与将 Apache 服务器与 Shibboleth 集成相比,它会花费更多的精力。

    使用 Shibboleth 要求您拥有启用了 Shibboleth 模块的 Apache2 并安装了 Shibboleth SP 守护程序。通常,它们会放在同一个盒子上。如果您使用 Tomcat 来托管 Java Web 应用程序,那么我建议您使用 mod_proxy_ajp 在 Apache2 HTTP 服务器和 Tomcat 之间进行通信。这样您就可以选择 Shibolleth 提供的变量作为 servlet 请求属性。 (您必须在 shibboleth2.xml 中将变量前缀设置为“AJP_”。)

    Shibboleth SP 包已经处理了您可能会遇到的所有标准 SAML SSO 场景,但是尝试在您的 Java 应用程序中直接使用 OpenSAML 实现其中一个场景,无论是使其正常工作还是使其安全,都充满了危险.如果您使用 OpenSAML,您还将增加 Web 应用程序的大小。值得注意的是,Shibboleth SP 不是用 Java 编写的,因此您不会有使用 OpenSAML 的示例,但您可以通过查看 Shibboleth IdP 代码(一个 Java Web 应用程序)获得一些见解。

    在任何一种情况下,您都需要与您的身份提供者交换您的 SP 元数据(使用 Shibboleth SP 包轻松创建),并在您的 SP 上获取身份提供者的元数据(使用 Shibboleth SP 包也很容易,因为您只需设置一个元数据提供者)。

    一旦您习惯使用 Shibboleth 在线文档,它将对您有很大帮助。

    我认为,如果您可以使用 Shibboleth SP 包而不是使用 OpenSAML 库实现 SAML 2 SSO 解决方案,那么您将有更大的成功机会。我无法谈论其他全 Java SAML 2 SSO 解决方案,但与简单的 Shibboleth 2 SP 相比,它们看起来都很大而且过于企业化。

    关于java - 为了实现 SAML,我是否需要在我的主机上安装 Shibboleth SP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807477/

    有关java - 为了实现 SAML,我是否需要在我的主机上安装 Shibboleth SP?的更多相关文章

    1. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

      当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

    2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

      我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

    3. ruby - 完全离线安装RVM - 2

      我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

    4. ruby-on-rails - rails 目前在重启后没有安装 - 2

      我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

    5. ruby - 如何为 emacs 安装 ruby​​-mode - 2

      我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

    6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

      我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

    7. ruby - rspec 需要 .rspec 文件中的 spec_helper - 2

      我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只

    8. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

      我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

    9. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

      我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

    10. ruby - Fast-stemmer 安装问题 - 2

      由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

    随机推荐