2
我已经配置ADFS身份提供者和openam作为服务提供商,但如何测试登录是否工作正常与ADFS throght openam通过openam ADFS。登录到使用Java应用程序
谁能帮我用java应用程序通过openam做登录到ADFS服务器。
感谢,
我已经配置ADFS身份提供者和openam作为服务提供商,但如何测试登录是否工作正常与ADFS throght openam通过openam ADFS。登录到使用Java应用程序
谁能帮我用java应用程序通过openam做登录到ADFS服务器。
感谢,
参考OpenAM and ADFS2 configuration。
文章涵盖了所有的问题。
更新:
的方式,我通常做,这是使用的OpenSSO/OpenAM的Java Fedlet添加。
参见Using Fedlets in Java Web Applications(第8章)。
的代码(按照Fedlet添加)显示令牌的内容是这样的:
Response samlResp = (Response) map.get(SAML2Constants.RESPONSE);
Assertion assertion = (Assertion) map.get(SAML2Constants.ASSERTION);
Subject subject = (Subject) map.get(SAML2Constants.SUBJECT);
String entityID = (String) map.get(SAML2Constants.IDPENTITYID);
String spEntityID = (String) map.get(SAML2Constants.SPENTITYID);
NameID nameId = (NameID) map.get(SAML2Constants.NAMEID);
String value = nameId.getValue();
String format = nameId.getFormat();
out.println("<br><br><b>Single Sign-On successful with IDP "
+ entityID + ".</b>");
out.println("<br><br>");
out.println("<table border=0>");
if (format != null) {
out.println("<tr>");
out.println("<td valign=top><b>Name ID format: </b></td>");
out.println("<td>" + format + "</td>");
out.println("</tr>");
}
if (value != null) {
out.println("<tr>");
out.println("<td valign=top><b>Name ID value: </b></td>");
out.println("<td>" + value + "</td>");
out.println("</tr>");
}
String sessionIndex = (String) map.get(SAML2Constants.SESSION_INDEX);
if (sessionIndex != null) {
out.println("<tr>");
out.println("<td valign=top><b>SessionIndex: </b></td>");
out.println("<td>" + sessionIndex + "</td>");
out.println("</tr>");
}
Map attrs = (Map) map.get(SAML2Constants.ATTRIBUTE_MAP);
if (attrs != null) {
out.println("<tr>");
out.println("<td valign=top><b>Attributes: </b></td>");
Iterator iter = attrs.keySet().iterator();
out.println("<td>");
while (iter.hasNext()) {
String attrName = (String) iter.next();
Set attrVals = (HashSet) attrs.get(attrName);
if ((attrVals != null) && !attrVals.isEmpty()) {
Iterator it = attrVals.iterator();
while (it.hasNext()) {
out.println(attrName + "=" + it.next() + "<br>");
}
}
}
out.println("</td>");
out.println("</tr>");
}
out.println("</table>");
他们说只是在浏览器中打开的网址,但如果我通过邮寄方法打开的网址我得到异常“处理AuthnRequest.Null输入错误”,那么这意味着什么需要传递额外的参数到这个URL? – pbhle
您试图访问哪个网址?配置调试日志http://lists.forgerock.org/pipermail/openam/2012-March/005339.html,看看是否给你任何线索。 – nzpcmad
,当我在sp.xmlerror改变AuthnRequestsSigned =“假” 和WantAssertionsSigned =“假”走了,并与SAMLrequest令牌其显示的URL。 – pbhle