我试图遵循这个答案:https://stackoverflow.com/a/46000524/13925339
我可以签署SAML响应消息:
String saml = "...";
String pubKeyBytes = "...";
String privKeyBytes = "...";
Document documentResponse = Util.loadXML(saml); //loads string to document
X509Certificate cert = null;
cert = Util.loadCert(pubKeyBytes);
PrivateKey privateKey = Util.loadPrivateKey(privKeyBytes);
//sign saml assertion:
String stringSignedResponse = Util.addSign(documentResponse, privateKey, cert, null);
我可以拿出SAML断言并签名:
NodeList nodelist = documentResponse.getElementsByTagName("saml2:Assertion");
Node nodeSamlAssertion = nodelist.item(0);
String stringSignedSamlAssertion = Util.addSign(nodeSamlAssertion, privateKey, cert, null);
但是,我如何将这两者结合起来(使用OneLogin的https://www.samltool.com/sign_response.php在线工具处于“签名消息和断言”模式)?
通过以下方式解决此问题
>
将从Util.add符号返回的字符串(nodeSamlAssertion,...)返回到节点
将该节点导入回SAML响应Document对象。
使用元素。replaceChild方法将无符号SAML断言节点切换为有符号SAML断言节点
元素nodeSignedSamlAssertion=DocumentBuilderFactory. newInstance(). newDocumentBuilder(). parse(new ByteArrayInputStream(stringSignedSamlAssertion.getBytes())). getDocumentElement();
Node copiedNode = documentResponse.importNode(nodeSignedSamlAssertion, true);
documentResponse.getDocumentElement().replaceChild(copiedNode, documentResponse.getElementsByTagName("saml2:Assertion").item(0));
我正在尝试使用谷歌办公套件设置SAML。但是我得到了这个错误 我已经配置断言应该在我的SP中签名。我可以在其他IDP(如onelogin、okta)中看到签署响应断言的选项。该配置适用于其他IDP,但看不到在谷歌办公套件SAML中唱响应断言的选项。 在Gsuite中,我只能看到签名响应的选项,而不能看到断言。 如何正确设置此设置? SP元数据如下所示:
我发现,要将OneLogin Protect与saml断言一起使用,您需要调用SAML verify factor,而不提供OTP,并在这里阅读类似的问题,但是如果我简单地将它放入一个带有sleep的循环中,用户会受到OTP调用的轰炸,直到他们点击“Accept”。如果用户花了10-20秒拿出手机,而我睡了20秒,这意味着那些可以立即使用手机并在2-3秒内响应的用户,必须等待20秒来弥补较慢的呼叫
Signing messages can be used for various method of authentication and off-chain operations, which can be put on-chain if necessary. 字符串签名 By allowing a user to sign a string, which can be verified on-
我正在尝试为服务实现SSO,并将ADF和PingFederate用作IDP。 当我避免签署AuthRequest(使用ADFS和平联邦)时,SSO工作,但失败并出现以下错误“SAML消息签名错误。签名AuthRequest时发行者:“My SP entityID”。 我已经用SP的证书更新了相应的依赖信任部分。我想,我在IDP配置中做错了什么。非常感谢您的帮助。 我尝试了这个答案,但没有任何运气:
我一直在Eclipse中使用JUnit创建单元测试,我很清楚JUnit的基本原理。测试按应有的方式运行,现在是时候找到一种报告失败测试的好方法了。我在web上遇到的大多数例子都是使用某种构建的系统,如Ant、Maven或Hudson,在构建项目的同时运行测试,但在构建过程中不需要这种集成。测试应该能够独立于构建系统运行。最后,这些系统只需从JUnit获取信息,并将其放入一个漂亮的HTML布局中。
我想知道如何用电子邮件数字证书签名,然后使用CURL发送这个签名的电子邮件消息。 下面是一个简单的文本/普通电子邮件的例子,我想签署。 我将整个消息放在一个名为的文件中,然后使用CURL发送它。 砰。仅此而已。 下面的链接描述了如何使用OpenSSL对mime消息进行签名。 https://www.misterpki.com/openSSL-smime/ RFC8551第3.5、3.5.1和3.5