使用 SAML (SSO) 实现 Web 服务安全 - 如何?
问题:
我想实现一组受SAML保护的Web服务。我需要对用户进行身份验证,并且还需要根据用户角色进行授权。 我发现了一些与此类似的问题,但没有一个有令人满意的答案。
场景:
- 仅使用Webservices访问Java Webapp;
- SOAP——地铁;
- 客户使用他们将开发的一些桌面应用程序。
我需要的主要功能:
- 免费软件;
- SAML 2.0;
- LDAP(或类似解决方案)来管理用户信息;
- 消息级安全性 (SOAP)。
问题:
我研究了一些 SAML (SSO) 解决方案(例如 Shibboleth、opemAM、JOSSO...);
- 我可以在不影响任何关键功能的情况下使用其中任何一个吗?
- 或者我是否需要实现自己的方式来处理 SAML 令牌?
- 怎么做呢?
谢谢你!
以下是我发现的一些结果和/或答案中的一些提示:
Shibboleth:
http://shibboleth.1660669。 n2.nabble.com/Web-Service-End-to-End-Security-td5526934.html
Shiboleth 不做端到端,只是点对点。http://www.predic8.com/shibboleth-web-services- sso-en.htm
在 SP 之前需要一个代理模块进行身份验证。
OpenAM:
WSO2:
仍在寻找,请贡献!!
The Problem:
I want to implement a set of Webservices, protected with SAML. I need to authenticate the users, and also need to authorize based on the user role.
I found some questions similar to this one, but none with satisfactory answers.
The scenario:
- Java Webapp accessed only using Webservices;
- SOAP - metro;
- Clients use some Desktop application that they will develop.
Key features that I need:
- Free software;
- SAML 2.0;
- LDAP(or similar solution) to manage users information;
- Message level security (SOAP).
The question:
I study some SAML (SSO) solutions (e.g. Shibboleth, opemAM, JOSSO...);
- Can I use any of those, without compromise any of the key features?
- Or do I need to implement my own way to handle the SAML tokens?
- How to do it?
Thank you!
Here are some results that I found, and/or some tips from the answers:
Shibboleth:
http://shibboleth.1660669.n2.nabble.com/Web-Service-End-to-End-Security-td5526934.html
Shiboleth doesn't do ent-to-end, just point-to-point.http://www.predic8.com/shibboleth-web-services-sso-en.htm
Requires a proxy module for authentication, before the SP.
OpenAM:
- https://wikis.forgerock.org/confluence/display/openam/Web+Services
Doesn't present a service provider (SP). Define an architecture based on client-server, where client explicitly ask for tokens, when use web methods to authenticate.
- https://wikis.forgerock.org/confluence/display/openam/Web+Services
WSO2:
- http://wso2.org/library/articles/2010/07/saml2-web-browser-based-sso-wso2-identity-server
Doesn't provide SP, you need to implement it using OpenSAML.
- http://wso2.org/library/articles/2010/07/saml2-web-browser-based-sso-wso2-identity-server
Still searching, please contribute!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我是 WSO2 的一名建筑师。 WSO2 生成支持您所需的所有功能的 WSO2 Identity Server。您可以在现有 LDAP 用户存储上部署 WSO2 Identity Server 并使其充当 SAML2 IdP。我们在我们的平台即服务 [PASS] 产品中使用 Identity Server 的此功能 - https://stratoslive.wso2.com< /a> 用于 SAML2 单点登录。
这是一个很好的起点,您可以从此处下载 WSO2 Identity Server。
I am an architect at WSO2. WSO2 produces WSO2 Identity Server supporting all the features you required. You can deploy WSO2 Identity Server over an existing LDAP user store and make it act as an SAML2 IdP. We are using this functionality of Identity Server in our Platform as a Service [PASS] offering - https://stratoslive.wso2.com for SAML2 single sign on.
This is a good starting point and you can download WSO2 Identity Server from here.
因为没有人回答有效的选项。我决定使用 Metro SAML 保护服务,并尝试使用 OpenAM 提供令牌。
Since no one answered with a valid option. I decide to secure the services with metro SAML, and try to provide the tokens using OpenAM.
为此,您可以查看 jasig CAS。
我们尚未使用 SAML,但它应该按所述工作
For this you could have a look at jasig CAS.
We don't use SAML yet, but it should work as described here