2

adfsをIDプロバイダーとして構成し、openamをサービスプロバイダーとして構成しましたが、ログインがadfsthroghtopenamで正常に機能しているかどうかをテストする方法。

誰かがJavaアプリケーションを使用してopenamを介してadfsサーバーにログインするのを手伝ってくれますか?

ありがとう、

4

1 に答える 1

3

OpenAM と ADFS2 の構成を参照してください。

この記事では、すべての質問をカバーしています。

アップデート:

私が通常これを行う方法は、OpenSSO / OpenAM Java Fedlet を使用することです。

Java Web アプリケーションでの Fedlets の使用(第 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>");
于 2012-10-23T18:04:03.333 に答える