|
|
system=manager root=root |
ユーザーの権限を管理しているのは groups.properties ファイルだ。このファイルはリスト2のように「グループ名=ユーザー名のリスト」の書式で記述されている。
リスト2●groups.properties
admin=system、root |
これらのファイルを直接編集しても同様の作業が行えるが、編集ミスをなくすためにもユーザー管理に限らず、管理コンソールから行えることは管理コンソールから行うべきだろう。
管理コンソールアプリケーションは実際には直接これらファイルを参照している訳ではない。管理コンソールアプリケーションは、Geronimoが提供する JAAS(Java Authentication and Authorization Service)の機能を用いている。その定義内でレルム geronimo-properties-realm 内に定義されている admin ロールをもったユーザーのみがアプリケーションにアクセス可能であるように定義しているのだ(リスト3)。
リスト3●管理コンソールアプリケーションのWebデプロイメントディスクリプタ(抜粋)
<security-constraint>
<web-resource-collection>
<web-resource-name></web-resource-name>
<url-pattern>/portal/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name></web-resource-name>
<url-pattern>/secure/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>geronimo-properties-realm</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginerror.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
|
レルムとはユーザー名とパスワード、グループなどのリソースである。このレルムの管理は、管理コンソールの[Security Realms]メニューを選択すればよい。初期状態では管理コンソールアプリケーション用のレルムである geronimo-properties-realm と、ldap-realmが定義されている。前者は先ほどのpropertiesファイルを用いたユーザー管理、後者は LDAP によるユーザー管理が行われている。
ではこのGeronimoのLDAPレルムを試してみよう。このLDAPレルムが参照しているLDAPサーバーは Pure Java のLDAPサーバーApache Directory Serverだ。
このサーバーは Geronimo に組み込まれているためGeronimo起動と共に起動され有効になる。初期状態ではこのLDAP内には管理ユーザー以外のユーザーは登録されていない。今回は新しいユーザーを追加するのに、GeronimoのLDAPデモ用に用意されている LDIFファイル(LDAP Data Interchange File )をインポートした。このファイルは http://localhost:8080/ldap-demo/geronimo-realm.ldif にアクセスすることで入手可能だ。
インポートすると systemとuser1とuser2 という3ユーザーが インポートされる。筆者はインポートにJavaで記述されているLDAPクライアントLDAP Browser/Editorを用いて行ったが、OpenLDAPが配布しているクライアントツールを用いてもよい。写真2は、LDAP Browserでインポート後の状態を表示している。いずれの方法にせよ、写真3の設定で Geronimo が内蔵する LDAP サーバーに管理アカウントで接続することができる。
インポートが完了したら LDAP 認証のデモプログラムのURL http://localhost:8080/ldap-demo/protect/hello.html にアクセスすれば、LDAPレルムを用いた認証が成功する(写真4)。
後半では、実際にEJBをデプロイし、デモ・アプリケーションを動かすまでを解説する。
(後編に続く)
|
■著者紹介 黒住幸光(くろずみ ゆきみつ)氏
|