
企業システムの常識をJBossで身につける(10)
内部統制に効く!
ID管理・シングルサインオンの常識
株式会社ビーブレイクシステムズ
相原 淳、多田 丈晃、上川 伸彦
2010/7/16
■ Identity Management Frameworkの設定
次に、Identity Management Frameworkの設定を行います。 「C:\workspace_jboss\.metadata\.plugins\org.jboss.ide.eclipse.as.core\JBoss_4.2_Runtime_Server\deploy\jboss-sso.sar\conf\」の「sso.cfg.xml」を開いて、以下の個所を修正してください。
コード2 sso.cfg.xmlファイルの修正個所<identity-management>
<!-- Login Provider that works with an LDAP repository such as Red Hat Directory Server, OpenLDAP etc -->
<login>
<provider
id="si:jboss-sso:ldap:login" class="org.jboss.security.idm.ldap.LDAPIdentityProvider">
<property name="connectionURL">
jdbc:ldap://localhost:389/o=JBossAdmin,c=com?SEARCH_SCOPE:=s
ubTreeScope&secure:=false&concat_atts:=true&size_limit:=10000000……接続先の設定
</property>
<property name="username">cn=admin,o=JBossAdmin,c=com</property>……ユーザー名の設定
<property name="password">admin</property>……パスワードの設定
<property name="identityOu">admin</property>……identityグループの設定
<property name="roleOu">JBossAdmin</property>……権限グループの設定
</provider>
</login>
:
:
【省略】
:
:
<sso-processor>
<processor class="org.jboss.security.saml.JBossSingleSignOn">
<property name="trustServer">http://localhost:8080/federate/trust </property>……trust serverの接続URLの設定
</processor>
</sso-processor>
</jboss-sso>
「C:\workspace_jboss\.metadata\.plugins\org.jboss.ide.eclipse.as.core\JBoss_4.2_Runtime_1_Server\deploy\jboss-sso.sar\META-INF」直下の「jboss-service.xml」に以下のコードを追加してください。
コード3 jboss-service.xmlの編集<!-- Bind a remote LDAP server -->
<mbean code="org.jboss.naming.ExternalContext"
name="jboss.jndi:service=ExternalContext,jndiName=external/ldap/jboss">
<attribute name="JndiName">external/ldap/jboss</attribute>
<attribute name="Properties">
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
java.naming.provider.url=ldap://localhost:389/o=ssosample,c=com
java.naming.security.principal=cn=admin
java.naming.security.authentication=none ……【1】
java.naming.security.credentials=admin
</attribute>
<attribute name="InitialContext"> javax.naming.ldap.InitialLdapContext </attribute>
<attribute name="RemoteAccess">true</attribute>
</mbean>
上記、コード3はリモートでLDAPサーバに接続するための設定です。ただし、LDAPサーバへの接続はJBoss SSOが行います。
今回この設定を行った理由は、「デプロイ時にJNDIの設定が行われていない」というエラーを回避するためだけです(LDAPサーバへの接続を有効にするときは、【1】の「none」の個所に「simple」と表記してください)。
sampleSX\WebContent\WEB-INF直下にcontext.xmlを作成してください。
![]() |
| 図10 sampleSX内階層 |
context.xml内は以下の通りです。
コード4 context.xml<?xml version="1.0"?>
<Context>
<!--
logoutURL - URL for performing logout/signout function in your application
-->
<Valve className="org.jboss.security.valve.SSOAutoLogout"
logoutURL="http://localhost:8080/sampleSX/home.seam"></Valve>……ログアウトURLの設定
<!--
assertingParty - this is the partnerId of this application as a part of a federation of multiple partner sites
-->
<Valve className="org.jboss.security.valve.SSOTokenManager"
assertingParty="admin"></Valve>……統合されたときにWebアプリケーションを特定するためのIDを設定
<!--
tomcat built-in AuthenticationTypes: FORM,BASIC,DIGEST,CLIENT-CERT
-->
<Valve className="org.jboss.security.valve.SSOAutoLogin"
authType="FORM"></Valve>
</Context>
同様にssoTestプロジェクト内にも、context.xmlを作成します。ssoTestプロジェクトのcontext.xmlは以下の通りです。
コード5 context.xml<?xml version="1.0"?>
<Context>
<!--
logoutURL - URL for performing logout/signout function in your application
-->
<Valve className="org.jboss.security.valve.SSOAutoLogout"
logoutURL="http://localhost:8080/ssoTest/home.seam"></Valve>
<!--
assertingParty - this is the partnerId of this application as a part of a federation of multiple partner sites
-->
<Valve className="org.jboss.security.valve.SSOTokenManager"
assertingParty="admin"></Valve>
<!--
tomcat built-in AuthenticationTypes: FORM,BASIC,DIGEST,CLIENT-CERT
-->
<Valve className="org.jboss.security.valve.SSOAutoLogin"
authType="FORM"></Valve>
</Context>
■ JBossのアプリケーションサーバにプロジェクトを追加
JBossのアプリケーションサーバにプロジェクトを追加します。JBoss 4.2 Runtime Serverを右クリックして、[Add and Remove Projects]を選択してください。
![]() |
| 図11 プロジェクトの追加 |
sampleSX、sampleSXのリソースファイル、ssoTest、ssoTestのリソースファイルを選択してAddボタンをクリックしてください。以下の図12のようになるはずです。
![]() |
| 図12 プロジェクトの追加 |
■ 試してみよう
それでは、サーバを起動してみましょう。「JBoss 4.2 Runtime Server」を右クリックして、[Start]を選択してください。
![]() |
| 図13 サーバの起動 |
Eclipseのコンソールに、以下のようなメッセージが表示されたら起動成功です。
18:29:30,593 INFO [Federation] Federation service successfully started...............
シングルサインオン実装は、ぜひ挑戦すべき
以上、今回はID管理やシングルサインオンの常識について説明しましたが、いかがでしたでしょうか。
さまざまな環境構築を必要とするため、慣れるまではシングルサインオンをアプリケーションに組み込むことは決して簡単ではありません。しかし、本連載で説明したようにシングルサインオンは非常に有効な技術であるため、ぜひとも覚えておきたい技術の1つです。本稿が、シングルサインオンに挑戦するきっかけになれば幸いです。
■ @IT関連記事
| Webアプリにおける11の脆弱性の常識と対策 Webアプリの常識をJSPとStrutsで身につける(11) Webアプリと切っても切れない関係にある脆弱性。11の代表的な攻撃手法を紹介しつつ、その対策も示します 「Java Solution」フォーラム 2009/9/1 |
| アイデンティティ管理の新しい教科書 OpenIDにSAML、Liberty AllianceにInformation Card ……。ここでもう一度、アイデンティティ管理をイチから学んでみませんか。ID管理の周辺情報をまとめ、新しい教科書として使える連載をスタートします 「Security&Trust」フォーラム |
||
| プロフィール |
| 相原 淳(あいはら じゅん) 株式会社ビーブレイクシステムズ開発部所属 専門分野:Webシステム開発・保守 2008年よりビーブレイクシステムズに在籍。 前職では、Javaを用いたWEB系のシステム開発や保守作業に従事。Javaの開発を行っていく中で、オープンソースに興味を持ち、その分野で活躍できるビーブレイクシステムズに転職し、現在に至る。 |
| プロフィール |
| 多田 丈晃(ただ たけあき) 2008年より、株式会社ビーブレイクシステムズに在籍。 システム開発の様々な工程を経験し、果ては新人研修まで担当したが、さらなる高みを目指してJavaとOSSに強いビーブレイクシステムズの門をたたく。 同僚の知識量と能力の高さに驚きつつ、日々研鑽を続けている。 |
| プロフィール |
| 上川 伸彦(かみかわ のぶひこ) 株式会社ビーブレイクシステムズ技術担当取締役。 RDB製品の開発、各種業界団体におけるXML/EDI標準の策定やSOA基盤の設計などに従事。最近は、ITコンサル業よりも、業務システムの構築に携わることが多く、お客さまからの無理難題と向き合う日々を送っている。 |
| Index | ||||||||||
|
||||||||||
企業システムの常識をJBossで身につける バックナンバー 連載インデックスへ»
- 第1回 企業向けアプリの常識を学び、JBossの環境構築
- 第2回 “全部入り”のEclipseで学ぶ統合開発環境の常識
- 第3回 DI(依存性の注入)×AOP(アスペクト指向)の常識
- 第4回 企業でも情報整理で利用が進む「ポータル」の常識
- 第5回 非同期処理と疎結合ができる「メッセージング」の常識
- 第6回 いまさら聞けない「Webサービス」の常識
- 第7回 クラウドで再注目の「分散コンピューティング」の常識
- 第8回 悲観もあれば楽観もある「トランザクション」の常識
- 第9回 社内システムのセキュリティとアクセス制御の常識
- 第10回 内部統制に効く! ID管理・シングルサインオンの常識
- 第11回 「全体を見る」ためのビジネスプロセス・BPMの常識
- 最終回 急速なビジネスの変化に対応できる「BRMS」の常識
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




