OpenSSO build 5 上で WSS agent を試してみた

先日、OpenSSO のダウンロードサイト にある Web Services Security Agent のサンプルプログラムのセットアップに関して、質問を受けたのですが、自分で実際にやってなかったので、付属の README などを参考にしてちょっと試してみることにしました。 ここでは、Glassfish 上に domain2 と domain3 を作成し、それぞれに、OpenSSO と WSS Agent を別々に配備しました。

  • OpenSSO: build 5
  • Glassfish: V2UR2 for sparc platform
    • domain2(port:5080) : OpenSSO を配備
    • domain3(port:6080) : WSS Agent を配備
  • まずは、OpenSSO を配備する domain2 の domain.xml を編集。jvm-options の -client を -server に、-Xmx512m を -Xmx1024m に置き換え。(OpenSSO Release Note p.11 参照。これをやらなくてもうまく動くこともあるんですが、OpenSSO の configurator がうまく動かない人はこれを忘れずにやってください。)
  • opensso.war を domain2 に配備。
  • domain2 を再起動して、http://host:5080/opensso にアクセスし、設定画面を表示。

  • カスタム設定を選択し、データストアには組み込みの DS を指定して設定開始。

  • Build 5 の時点だと、Configurator の左サイドが英語のままだったり、設定中のログメッセージが化けて??になってたりしますが、これは Build 6 で修正されます。(最新の Nightly を使うと問題は修正されています。)

  • しばらくすると、以下のような画面が表示されて設定完了。OpenSSO の管理ログイン画面へと移動できます。

  • 次に、domain3 に WSS agent を配備します。ダウンロードした openssowssproviders.zip を展開すると、サンプルファイルとともに設定手順を説明する README も解凍されるのでそれに沿って設定していきます。ここでは、/sample ディレクトリに展開したものとして先を進めます。
  • resources ディレクトリに移動し、AMConfig.properties を編集します。
    com.iplanet.services.debug.level=message
    com.iplanet.services.debug.directory=/tmp/wssclient
    
    com.iplanet.am.naming.url=http://testhost.japan.sun.com:5080/opensso/namingservice
    
    com.sun.identity.agents.app.username=amadmin
    com.iplanet.am.service.password=password
    am.encryption.pwd=
    
    com.iplanet.am.server.protocol=http
    com.iplanet.am.server.host=testhost.japan.sun.com
    com.iplanet.am.server.port=5080
    com.iplanet.am.services.deploymentDescriptor=opensso
    
    com.iplanet.am.cookie.name=iPlanetDirectoryPro
    com.sun.identity.saml.xmlsig.keystore=/sample/resources/keystore.jks
    com.sun.identity.saml.xmlsig.storepass=/sample/resources/.storepass
    com.sun.identity.saml.xmlsig.keypass=/sample/resources/.keypass
    com.sun.identity.liberty.ws.trustedca.certaliases=test:testhost.japan.sun.com
     com.sun.identity.liberty.interaction.wspRedirectHandler=http://testhost.japan.sun.com:5080/opensso/WSPRedirectHandler
    com.sun.identity.loginurl=http://testhost.japan.sun.com:5080/opensso/UI/Login
    com.sun.identity.liberty.authnsvc.url=http://testhost.japan.sun.com:5080/opensso/Liberty/authnsvc
    
  • README.glassfish の手順 V を元にファイルをコピーします。さらに、domain3 の管理コンソールにログインして、openssowssproviders.jar のパスを Glassfish の JVM 設定 の classpath に追加します。

  • domain3 を再起動します。
  • OpenSSO の管理コンソールにログインして、レルムを選択し、エージェントタブに移動します。
  • Web サービスクライアントと Web サービスプロバイダのエージェントプロファイルを作成します。(すでに作成されているものがあれば編集します。)
    • Web サービスクライアント
      • 名前:StockService
      • セキュリティメカニズム:ここでは、SAML2-HolderOfKey を選択。
      • メッセージにセキュリティーヘッダーを保存する:はい
      • リクエストには署名が必要:はい
    • Web サービスプロバイダ
      • 名前:wsp
      • すべてのセキュリティメカニズムを選択。
      • リクエストの署名の確認が必要:はい
  • 次に WSS Agent を配備します。まず、samples/glassfish に移動し、glassfish.properties を設定します。
    glassfish.home=/opt/SUNWappserver9
    glassfish.host=testhost.japan.sun.com
    glassfish.passwordfile=/export/password.txt
    glassfish.adminport=34848
    build.class.path=/opt/SUNWappserver9/lib/webservices-tools.jar:/opt/SUNWappserver9/lib/javaee.jar
    jaxws.endorsed.dir=/opt/SUNWappserver9/lib
    
    注:パスワードファイルには以下の書式でパスワードを記述します。
    AS_ADMIN_PASSWORD=(パスワード文字列)
    
    
  • StockQuoteClient/src/java/com/samples/GetQuote.java の次の箇所を修正します。
        @WebServiceRef(wsdlLocation =
            "http://localhost:8080/StockService/StockService?wsdl")
    
    修正後:
    
        @WebServiceRef(wsdlLocation =
            "http://testhost.japan.sun.com:6080/StockService/StockService?wsdl")
    
  • StockQuoteClient/web/WEB-INF/wsdl/client/StockService/StockService.wsdl も修正します。
    <soap:address location="http://localhost:8080/StockService/StockService"/>
    ↓
    <soap:address location="http://testhost.japan.sun.com:6080/StockService/StockService"/>
    
  • StockQuoteClient ディレクトリにて、ant -f build.xml を実行。
  • StockService ディレクトリにて、ant -f build.xml を実行。
  • これで、StockQuoteClient と StockService が domain3 に配備されました。
  • domain3 の管理コンソールにログインして、設定→セキュリティ→メッセージセキュリティに移動して、新規をクリックし、以下のように設定します。
    • 認証層:HttpServlet
    • プロバイダタイプ:server
    • プロバイダID:FAMHttpProvider
    • クラス名:com.sun.identity.wssagents.common.provider.FAMHttpAuthModule
  • 「プロパティを追加」をクリックし、名前に「providername」値に「StockService」を設定し、保存します。

  • domain3 を再起動します。
  • http://testhost.japan.sun.com:6080/StockQuoteClient にアクセスしてみます。以下のような画面が表示されるはずです。(User authentication を enabled にしてる場合は、いったん OpenSSO のログインページにリダイレクトされるので、そこで amadmin などの既存のユーザーでいったんログインしてください。)

  • ここで Stock Symbol に値を入れて、「GetQuote」をクリックし、次のような株価情報の画面が表示されればOKです。(デフォルトで記入されている JAVA を入れた場合、Sun の情報が表示されます。)

投稿されたコメント:

コメント
  • HTML文法 不許可
About

hanaki

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今日