Tag: saml

如何实施SAML SSO

SAML SSO通常如何实施? 我已经阅读了关于将SAML与Google Apps结合使用以及SAML上的维基百科条目(nb废弃)。 维基百科条目将讨论如何使用包含SAMLRequest和SAMLResponse的详细信息的表单进行回复。 这是否意味着用户必须实际提交表单才能继续进行单点login? 谷歌条目谈到使用redirect,这对我来说似乎更加无聊。 但是,它也谈论了使用表单来提交用户必须提交的响应(尽pipe它的确谈到了使用JavaScript来自动提交表单)。 这是做这个的标准方式吗? 使用redirect和JavaScript的表单提交? 有没有人知道如何去实现Windows域和J2EE Web应用程序之间的SSO的任何其他良好的资源。 Web应用程序位于单独的networking/域上。 我的客户想要使用CA Siteminder (使用SAML)。

ADFS,WIF,WS Federation,SAML和STS有什么区别?

这些是用于Microsoft服务单点login的众多技术和stream行语。 有人可以解释ADFS,WIF,WS联邦,SAML和STS(安全令牌服务),包括何时何地被使用。

如何从文件加载RSA私钥

我正在开发一个SAML 1.1声明消费者服务的testing工具。 testing必须生成一个签名的SAMLResponse并将其提交给Base64中编码的ACS。 ACS必须能够使用X509公共证书validation签名的消息。 我能够构buildSAMLResponse,添加必要的断言等。但是当我尝试签署对象时,我遇到了问题。 这是我现在的代码片段: String certPath = "mycert.pem"; File pubCertFile = new File(certPath); BufferedInputStream bis = null; try { bis = new BufferedInputStream(new FileInputStream(pubCertFile)); } catch(FileNotFoundException e) { throw new Exception("Could not locate certfile at '" + certPath + "'", e); } CertificateFactory certFact = null; Certificate cert = null; try { certFact […]

SAML:为什么签名中的证书?

我必须使用SAML为我公司的网站(作为依赖方)实施SSO。 一个关键的部分是validation签名。 以下是来自我们合作伙伴公司(断言方)的示例SAML的签名部分: <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/> <ds:Reference URI="#_2152811999472b94a0e9644dbc932cc3" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:Transforms xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ec:InclusiveNamespaces PrefixList="ds saml samlp xs" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/> <ds:DigestValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">bW1Os7+WykqRt5h0mdv9o3ZF0JI=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> cgrAN4T/UmobhrkkTi3miiRfbo0Z7aakSZjXuTWlZlu9jDptxPNbOFw8ZbYKZYyuW544wQqgqpnG gr5GBWILSngURjf2N45/GDv7HMrv/NRMsRMrgVfFsKbcAovQdLAs24O0Q9CH5UdADai1QtDro3jx nl4x7HaWIo9F8Gp/H1c= </ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MIIElzCCA3+gAwIBAgIQNT2i6HKJtCXFUFRB8qYsZjANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQG EwJGUjEOMAwGA1UEBxMFUGFyaXMxDDAKBgNVBAoTA3BzYTEgMB4GA1UECxMXY2VydGlmaWNhdGUg YXV0aG9yaXRpZXMxKDAmBgNVBAMTH0FDIFBTQSBQZXVnZW90IENpdHJvZW4gUHJvZ3JhbXMwHhcN MDkwODE5MDcxNTE4WhcNMTEwODE5MDcxNTE5WjCBhjELMAkGA1UEBhMCZnIxHzAdBgkqhkiG9w0B CQEWEHBhc3NleHRAbXBzYS5jb20xGDAWBgoJkiaJk/IsZAEBEwhtZGVtb2IwMDEMMAoGA1UEChMD cHNhMREwDwYDVQQLEwhwcm9ncmFtczEbMBkGA1UEAxMSVGVzdCAtIFBBU1NFWFQgREVWMIGfMA0G CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuY1nrepgACvDSTLWk5A1cFOJSwDbl6CWfYp3cNYR0K3YV e07MDZn+Rv4jo3SusHVFds+mzKX2f8AeZjkA3Me/0yiS9UpS9LQZu9mnhFlZRhmUlDDoIZxovLXN […]

如何成为SAML服务提供商

大家早上好, 我公司目前正在开发一个Java Web应用程序。 我们的几个客户有内部的SAML服务器(身份提供者?),并要求我们与他们进行整合。 所以最近我一直在读它,并与OpenAM玩耍。 大约三天之后,我对此有了一个大概的了解,但是我的知识还有一些差距。 我希望有人能为我解决这个问题。 所以这里是我如何想象用户login的工作stream程。让我们将我们的客户SAML服务器定义为https://their.samlserver.com 。 因此,用户来到我们的Web应用程序的受保护的资源。 假设这个URL是http://my.app.com/something 。 所以如果我是正确的,“my.app.com”就是SAML定义的“服务提供者”。 我们的应用程序意识到这个用户需要login。然后,我们向用户展示这样一个页面… <script>JQuery Script to auto submit this form on ready</script> <form method="post" action="https://their.samlserver.com/Post/Servlet"> <input type="hidden" name="SAMLRequest" value="someBase64Data" /> <input type="submit" value="Submit" /> </form> 那someBase64Data应该是base64编码的版本… <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="identifier_1" Version="2.0" IssueInstant="2004-12-05T09:21:59Z" AssertionConsumerServiceIndex="0"> <saml:Issuer>http://my.app.com</saml:Issuer> <samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/> </samlp:AuthnRequest> 所以我的第一个问题。 假设“ID”值是多less? 为什么我可以宣布自己是“发行人”? 身份提供者知道我吗? 也许这就是我在OpenAM上看到的“信任圈”。 如果它知道我的话,它是如何知道我的,它需要知道什么? […]

OpenID和SAML有什么区别?

OpenID和SAML有什么区别?

SAML与联合使用OAuthlogin

SAML和联合login与OAuth有什么区别? 哪个解决scheme更有意义,如果一家公司想要使用第三方Web应用程序,而且还希望单点login并成为身份validation权威?