SAML SSO通常如何实施?
我已经读过这个(nb已过时)关于在Google Apps上使用SAML以及在SAML上使用维基百科条目.
维基百科条目讨论了使用包含SAMLRequest和SAMLResponse详细信息的表单进行响应.这是否意味着用户必须以物理方式提交表单才能继续进行单点登录?
谷歌条目谈到使用重定向,这对我来说似乎更无聊.但是,它还讨论了如何使用用户必须提交的响应表单(尽管它确实讨论了使用JavaScript自动提交表单).
这是标准的做法吗?使用重定向和JavaScript进行表单提交?
有没有人知道如何在Windows域和J2EE Web应用程序之间实现SSO的任何其他好资源.Web应用程序位于单独的网络/域中.我的客户想要使用CA Siteminder(使用SAML).
我已经看到了一系列关于如何通过重定向在身份提供商(IdP),服务提供商(SP)和浏览器之间传递的流程图.但是现在我似乎没必要,所以我知道我错过了什么.
有人可以为我提供一个用例,与不使用SAML工件相比,需要(或非常有用)SAML工件?
谢谢.
我正在尝试使用纯.NET(没有外部类,控件,帮助程序)来创建SAML消息.我在互联网上找到了一些代码; 这就是我所拥有的:
private static SamlAssertion createSamlAssertion()
{
// Here we create some SAML assertion with ID and Issuer name.
SamlAssertion assertion = new SamlAssertion();
assertion.AssertionId = "AssertionID";
assertion.Issuer = "ISSUER";
// Create some SAML subject.
SamlSubject samlSubject = new SamlSubject();
samlSubject.Name = "My Subject";
//
// Create one SAML attribute with few values.
SamlAttribute attr = new SamlAttribute();
attr.Namespace = "http://daenet.eu/saml";
attr.AttributeValues.Add("Some Value 1");
//attr.AttributeValues.Add("Some Value 2");
attr.Name = "My ATTR Value";
//
// Now create the SAML statement containing …Run Code Online (Sandbox Code Playgroud) 我正在实施SAML 2.0服务提供商,需要安装SAML 2.0身份提供程序进行测试.鉴于这种需要,身份提供商理想情况下应该是免费的(或具有试用期)并且易于设置和配置.
我正在寻找基本的单点登录和单点注销功能.
我试过Sun Opensso Enterprise.价格是正确的,但到目前为止,配置是一场噩梦.此外,它的错误消息和日志记录还有很多不足之处,我经常在解决一个基本上归结为错误配置或违反直觉的默认设置的问题.
我正在开始为项目添加SAML SSO支持,我正在寻找专门针对PHP的有用资源.我理解了基本的概念,并且已经开始探索任何可以提供帮助但却空洞的库.我发现的唯一的东西是simpleSAMLphp,它似乎是一个完整的堆栈.
有关将SAML集成到现有项目的任何提示吗?Zend-Framework相关建议的奖励积分!
我在字符串中有一个SAML令牌:
<saml:Assertion xmlns:saml="..." ...> ..etc... </>
Run Code Online (Sandbox Code Playgroud)
在HttpModule中,我想将其转换为ClaimsPrincipal,以便我的服务可以将通常的Thread.CurrentPrincipal作为IClaimsPrincipal来完成.
我找到了一些诱人的网页/博客/等...看起来很有帮助:
我实际上试图将SAML令牌转换为ClaimsPrincipal(通过SecurityToken中间步骤或直接...以任何方式开心).Cibrax的想法中的示例代码使用以下内容进行关键验证和反序列化步骤:
SecurityTokenSerializer securityTokenSerializer
= new SecurityTokenSerializerAdapter(
FederatedAuthentication.SecurityTokenHandlers,
MessageSecurityVersion.Default.SecurityVersion,
false, new SamlSerializer(), null, null);
SecurityToken theToken
= WSFederationAuthenticationModule.GetSecurityToken(
theSamlTokenInStringForm, securityTokenSerializer);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,WIF的RTM版本没有公开GetSecurityToken的这个重载...它只暴露:
WSFederationAuthenticationModule fam = new WSFederationAuthenticationModule();
SecurityToken theToken = fam.GetSecurityToken(HttpRequest theRequest);
SecurityToken theToken = fam.GetSecurityToken(SignInResponseMessage message);
Run Code Online (Sandbox Code Playgroud)
谢谢你帮我搞砸了!
泰勒
我正在使用新的4.5 WIF内容来验证网站用户并确保我的MVC网站和WCF服务之间的通信.
我将网站配置为保存引导上下文,以便我可以为服务层的所有请求重用相同的安全令牌.
在正常情况下,一切正常,每个网站请求都经过身份验证,并且SecurityToken通过上下文可用来保护WCF调用.
但是,如果网站应用程序域被重置(例如,在开发时构建应用程序),对网站的任何请求仍将被认证,但在上下文中不再提供SecurityToken以传递给WCF调用.
调试BootstrapContext它有4个有用的属性:
SecurityToken
SecutiryTokenHandler
Token
TokenBytes
Run Code Online (Sandbox Code Playgroud)
预应用程序域重置SecurityToken和SecurityTokenHandler具有值,并且重置后Token具有值.
在重置之后注意Token的值,它看起来像是原始的SAML XML,所以我可以从它中重新整合一个完整的SecutiryToken,但这似乎是奇怪的行为,我找不到任何文档.
任何想法,我可以做什么来确保SecurityToken始终可以保存我乱码令牌XML?
更新
使用dotPeek来查看框架源代码中发生了什么,我可以看到导致这种行为的执行路径,但我无法确定为什么需要这样做以及如何进行avioded的任何原因.
最后我放弃了尝试解决它现在使用以下代码来确保我有一个令牌
if (context.SecurityToken != null)
{
token = context.SecurityToken;
}
else if (context.Token.IsNotEmpty())
{
var handlers = FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers;
token = handlers.ReadToken(new XmlTextReader(new StringReader(context.Token)));
}
Run Code Online (Sandbox Code Playgroud)
我现在担心的是我错过了这个behaiour背后的一些推理,我上面的解决方案会在某些时候爆发.
我正在尝试实施另一个网站提供的SSO.
说明书要求我输入"发行人"信息.事实证明,这相当于EntityDescriptor中的EntityID URL.
我假设我需要那个URL设置为我的服务器上的一些网址,但我似乎无法弄清楚,是什么,URL实际上做.
我假设需要将一个文件放在该URL上并提供一些信息,但我似乎无法弄清楚该信息是什么.
那么EntityID URL需要哪些信息才能使其正常工作?
问题:
我想实现一组Web服务,以保护SAML.我需要对用户进行身份验证,还需要根据用户角色进行授权.我发现了一些与此类似的问题,但没有一个问题得到满意答案.
场景:
我需要的主要功能:
问题:
我研究了一些SAML(SSO)解决方案(例如Shibboleth,opemAM,JOSSO ......);
谢谢!
以下是我发现的一些结果,和/或答案中的一些提示:
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:
还在搜索,请贡献!!