Wednesday Apr 19, 2006

とっても簡単 Sun Java System Portal Server 7 のインストール

Sun Java System Portal Server 7 のインストールの Flash デモが出ています。


百聞は一見に如かず、ですね。Java ES で共通のインストーラを使ってインストールする様子が英語版ですがよくわかります。本当に簡単ですので是非ダウンロードしてインストールして使ってみてください。

私がブログを始めたころは誰も Portal Server (というか Java ES 全体) に関しては書く人がいなかったと思うのですが、この The Portal Zone そして日本では Takemura さんが書き始めましたね。今後の話を楽しみにしています。

Wednesday Feb 15, 2006

Java Enterprise System 2005Q4 HPUX/Windows 日本語版がリリース

Java Enterprise System 2005Q4 の HPUX 版と Windows 版がリリースされました。
からダウンロードできます。このページで「Sun Java Enterprise System」のチェックボックスを選択し、オレンジ色の「Get Downloads & Media」をクリックしてください。上側にプラットフォームが表示されますからそこから HPUX か Windows 版を選んでください。もちろん日本語を含む7言語にローカライズされています。

以前 Solaris/Linux 版が出たときに 書いたのが 10月5日でしたから、ええとそれから数えて…約4ヶ月後のリリースとなりました。Windows 版をダウンロードして試したのですがインストール方法は前回とまったく同じでした。インストールは非常に簡単ですので是非ダウンロードして試してみてください。
が参考になるかと思います。

Tuesday Jan 17, 2006

これが Portal Server 7 日本語版だ!!



ようこそ、Portal Server 7 へ! 昨年に アナウンス された Sun Java System Portal Server 7 ですが、ダウンロードは今年になってからできるようになったようですね。
上のサンのダウンロードサイトからダウンロードできるようになっています。

が、ひとつ残念なことにここに言語が English とだけ表 示されてしまっています。ちゃんと日本語にローカライズされていますのでダウンロードして日本語のものを評価できるようになっています。「なんだ~まだ英語だけじゃ~ん」とダウンロードをやめてしまったみなさん、 ぜひダウンロードして試してみてください。



Portal Server 6.x から久々のメジャーアップデートです。

ブログに何か書くときはできれば最初に自分で試してみてから書きたいと思っていたのでなかなかインストールする時間がなく書けませんでした。ようやくインストールだけしてみたのでそのトップ画面だけ載せておくことにします。まだ実際に使ってみてはいません....使ってみたらまたいろいろ書いてみたいと思います。

Thursday Nov 17, 2005

「Java ES を使ってみよう」シリーズ

ということでしばらくここ数年仕事をしてきた Java ES と N1 SPS については「持っているものはすべて書いた」のでここでまとめておきたいと思います。これらの製品はサーバー側のおく~のほうで動くものばかりですので、普通のコンピュータユーザーがダウンロードして簡単に使えるというものではありませんよね。私のメモを見て「ダウンロードして使ってみようかな♪」なんて方が少しでもいてくれたららうれしいです。

インストール&設定編:

Portal Server 編:

Policy Agent 編:

その他:
私はしばらく NetBeans 5.0 に集中しま~す。

Thursday Oct 20, 2005

JES: Providing language links to switch Portal Desktop language

JES: Creating multi-lingual Portal Desktop on Java ES Portal Server からの続きです。

ConditionalProperties を使えば日本語と英語のポータルデスクトップを作ることができます!と書きたかったところですがここでひとつ問題がありました。残念なことにこの ConditionalProperties での切り替えが authlessanonymous ユーザーでうまくいきませんでした。これはバグ 5059646 という既知バグなのですがこのことをす~っかり忘れていました。portal/dt のページが場合によって日本語と英語の混在したチャネルが表示されてしまいます。このページをホームページにしたかったのですがこのバグのため断念 せざるおえませんでした。

自前で作ろう

ConditionalProperties をあきらめて自前でポータルデスクトップの日/英の切り替えを作ることにしました。日本語のチャネルを日本語のタブに入れてそれをまとめた日本語のタブコンテナを作り、またそれぞれを英語のタブコンテナを作り、タブコンテナごとリンクで切り替える仕組みを入れてみましょう。ポータルデスクトップを作る方法については以 前のブログを参照してください。ほとんど同じです。

日本語と英語のチャネルを作る

ひとつのチャネルで日本語/英語を表示するチャネルはあきらめて日本語のコンテンツを表示するチャネルと英語のコンテンツを表示するチャネルを別々に作り ましょう。少し面倒なような気もしますがディスプレイプロファイルですべて設定できますので非常に簡単です。日本語のものはそのままの名前がついていま す。英語のものは後ろに EN とつけています。

    <Channel name="TGCNews1" provider="URLScraperProvider">
        <Properties>
            <String name="title" value="TGC ニュース"/>
            <String name="inputEncoding" value="EUC-JP"/>
            <ConditionalProperties condition="client" value="HTML">
                <String name="url" value="file:///var/web/ja/news1.html"/>
            </ConditionalProperties>
        </Properties>
    </Channel>

英語のは次のようになります。

    <Channel name="TGCNews1EN" provider="URLScraperProvider">
        <Properties>
            <String name="title" value="TGC News 1"/>
            <ConditionalProperties condition="client" value="HTML">
                <String name="url" value="file:///var/web/en/news1.html"/>
            </ConditionalProperties>
        </Properties>
    </Channel>

コンテナを作る

title や url の値が違うのがわかりますね。日本語用、英語用のそれぞれのチャネルを作ったらコンテナに追加します。これも英語用、日本語用で別々に作るようにします。 TGCNewsContainer に他のチャネルを追加します。(ディスプレイプロファイル内の <Available> は省略して書いています)

    <Container name="TGCNewsContainer" provider="PredefinedSamplesTabPanelContainerProvider">
        <Properties>
            <String name="title" value="ニュース"/>
        </Properties>
        <Selected>
            <Reference value="TGCNews1"/>
            <Reference value="TGCNews2"/>
            <Reference value="TGCNewsIndex"/>
        </Selected>
        <Channels>
        </Channels>
    </Container>

    <Container name="TGCNewsContainerEN" provider="PredefinedSamplesTabPanelContainerProvider">
        <Properties>
            <String name="title" value="News"/>
        </Properties>
        <Selected>
            <Reference value="TGCNews1EN"/>
            <Reference value="TGCNews2EN"/>
            <Reference value="TGCNewsIndexEN"/>
        </Selected>
        <Channels>
        </Channels>
    </Container>

タブコンテナを作る

作ったコンテナをタブコンテナに入れます。EN のタブコンテナには英語のチャネルを入れます。

    <Container name="TGCTabContainer" provider="JSPTabContainerProvider" merge="replace">
        <Properties>
        </Properties>
        <Selected>
            <Reference value="TGCTopContainer"/>
            <Reference value="TGCProjectContainer"/>
            <Reference value="TGCNewsContainer"/>
            <Reference value="TGCSharingContainer"/>
            <Reference value="TGCGallaryContainer"/>
        </Selected>
        <Channels>
        </Channels>
    </Container>

    <Container name="TGCTabContainerEN" provider="JSPTabContainerProvider" merge="replace">
        <Properties>
        </Properties>
        <Selected>
            <Reference value="TGCTopContainerEN"/>
            <Reference value="TGCProjectContainerEN"/>
            <Reference value="TGCNewsContainerEN"/>
            <Reference value="TGCSharingContainerEN"/>
            <Reference value="TGCGallaryContainerEN"/>
        </Selected>
        <Channels>
        </Channels>
    </Container>

これでチャネルの部分は出来上がりました。

ディスプレイプロファイルを変更する

これを dpadmin で追加します。authlessanonymous ユーザーの DN を指定して次のようにします。

      % /opt/SUNWps/bin/dpadmin modify -m \\
                               -u "uid=amadmin,ou=people,dc=xyz,dc=com" \\
                               -w passwd \\
                               -d "uid=authlessanonymous,ou=people,dc=xyz,dc=com" \\
                               ファイル名

特定のタブコンテナを表示するには

/etc/opt/SUNWps/desktop/anonymous_ja に TGCTabContainer と TGCTabContainerEN ディレクトリを作ります。それぞれ JSPTabContainerProvider からファイルをコピーしてカスタマイズします。次のような日本語と英語の切り替えのリンクをページのヘッダー、右上に追加します。

Japanese | English

次の URL を使うと特定のタブコンテナとその選ばれるタブを指定することができます。英語のページを表示したいのであれば次のようにします。setSelected =TGCTopContainerEN でどのタブが表示されるかを指定します。

TGCTabContainer/header.jsp:

<a href="/portal/dt?action=content&provider=TGCTabContainer&TGCTabContainer.setSelected=TGCTopContainer">
Japanese
</a>
|
<a href="/portal/dt?action=content&provider=TGCTabContainerEN&TGCTabContainerEN.setSelected=TGCTopContainerEN">
English
</a>

完成しました!

ということで無事に完成しました! header.jsp、menubar.jsp 、selectedTab.jsp、tab.jsp、tabs.jsp などを変更してルック&フィールもサンの新しいものに合わせてみました。それぞれの右上のヘッダに切り替えのリンクがあります。実際には日本語のページを見ている時には英語に切り替えるリンクしか必要ありませんから、HomeEnglish リンクがあります。英語のページを見ているときには Japanese のリンクを表示しています。






Wednesday Oct 19, 2005

JES: Creating multi-lingual Portal Desktop on Java ES Portal Server

社内向けの部署のホームページをリニューアルしようという話があり、せっかくだから Sun Java System Portal Server を使ってみることにしました。以前に紹介したメールアーカイブのシステムInstant Messaging Server もカレンダーももともとは部署のホームページを提供しているサーバーにインストールしてあって部署の人には使ってもらっていたのですが、Java ES の 2005Q1 にアップグレードするときに Portal Server も一緒にインストールしてみました。これを部署のホームページのかわりにならないかといろいろ考えていたのですが…

コンテンツ
URL スクレーパーチャネルXML チャネル を使えばいろいろなコンテンツが集約できますし、ページ全体のデザインは気にせずコンテンツだけに集中できますよね。 ホームページの枠組みを提供する Portal Server と、コンテンツは切り離して考えられますから更新する人が見えるところにファイルを置いてあげてればよいですよね。単にファイルを変更するだけの作業になります。面倒なファイル転送なんてしなくてすみます。

英語と日本語の切り替え
このホームページのもうひとつ重要な点として同じページを日本語と英語で提供するということでした。日本語のページは日本の社内向け、日本以外の社内向け には英語のページを提供する必要がありました。これも Portal Server では簡単に実現できそうです。Portal Server では以前紹介したように ConditionalProperties というのがあり言語ごとにリソースを切り替えることができます。

次のディスプレイプロファイルを見てください。TripInfoChannel と名付けました。このチャネルではユーザーのブラウザの設定言語が日本語の時には http://contents:8080/docs/ja/trip_info.html のコンテンツを、英語の時は http://contents:8080/docs/en/trip_info.html のコンテンツを取得して表示します。チャネルのタイトルも英語の時は「Trip Info」、日本語の時は「出張情報」になります。

        <Channel name="TripInfoChannel" provider="URLScraperProvider" merge="replace">
            <Properties>
                <ConditionalProperties condition="client" value="HTML">
                    <ConditionalProperties condition="locale" value="en">
                        <String name="url" value="http://contents:8080/docs/en/trip_info.html"/>
                    </ConditionalProperties>
                    <ConditionalProperties condition="locale" value="ja">
                        <String name="url" value="http://contents:8080/docs/ja/trip_info.html"/>
                    </ConditionalProperties>
               </ConditionalProperties>
               <ConditionalProperties condition="locale" value="ja">
                    <String name="title" value="出張情報"/>
                </ConditionalProperties>
                <ConditionalProperties condition="locale" value="en">
                    <String name="title" value="Trip Info"/>
                </ConditionalProperties>
            </Properties>
        </Channel>

これらのチャネルやタブコンテナを authlessanonymous ユーザー (portal/dt にアクセスしたときに表示されるまだログインしていない状態のページ)に対して作ってあげればうまくいきそうです。authlessanonymous ユーザーは自身では言語の設定を持たないように設定しておけばアクセスした人のブラウザの言語設定で表示が自動的に切り替わるはずです!

(なぜか続く…)

Tuesday Oct 18, 2005

JES: Zero Page Login using Java ES Access Manager

Access Manager のログイン URL には IDToken というパラメーターがあります。これを使うと ユーザーID、パスワードを入力なしで Access Manager を認証として使っているアプリケーションに直接ログインすることができます。

http://am.japan.sun.com/amserver/UI/Login?module=LDAP&IDToken1=ユーザー名&IDToken2=パスワード

以前 Java ES 製品の Access Manager を使った SSO の設定 をしましたよね。Calendar Server や Messaging Server、Portal Server 、Communication Express も Access Manager を使っていることになります。したがってそれらの製品に使うことができます。たとえば Messaging Express の URL が http://ms.japan.sun.com:8100 とするとここに直接ログインするには

http://am.japan.sun.com/amserver/UI/Login?module=LDAP&IDToken1=ユーザー名&
              IDToken2=パスワード&goto=http://ms.japan.sun.com:8100

のように goto パラメーターでアプリケーションの URL を指定してあげます。また Communication Express が http://ce.japan.sun.com/uwc とすると

http://am.japan.sun.com/amserver/UI/Login?module=LDAP&IDToken1=ユーザー名&
              IDToken2=パスワード&goto=http://ce.japan.sun.com/uwc

となりますね。

もちろん URL パラメーターにパスワードが含まれるわけですから注意して使わないといけないわけですが、繰り返しログインの操作を行わないといけないようなソフトウェア の試験やパフォーマンスの計測、また匿名アクセスなど用途には使えますよね。私はこれを Portal Server のポータルデスクトップの編集の時に使っていたのですがとっても便利でした。

Sun Java System Access Manager 6 2005Q1 管理ガイド :「ユ—ザーインタフェースのログイン URL」 に説明が載っていますので参考にして下さい。

Wednesday Oct 12, 2005

JES: Java ES を使ってみよう(8): 各製品の起動と停止

Java ES の各サーバーの起動方法と停止方法を表にしておきます。

Sun Java System Access Manager や Portal Server などは Web コンテナ上に配備されるので Web Server や Application Server の起動・停止と同じです。依存関係のある製品、例えば Access Manager は Directory Server を必要としますが、その場合は Directory Server から起動します。また逆に Access Manager から停止します。

製 品
ディ レクトリ
起 動
停 止
補 足
Sun Java System Directory Server
/var/opt/mps/serverroot/slapd -<ホスト名>
start-slapd
stop-slapd

Sun Java System Directory Proxy Server
/var/opt/mps/serverroot/dps -<ホスト名>
start-dps
stop-dps

Sun Java System Administration Server
/var/opt/mps/serverroot/
start-admin
stop-admin

Sun Java System Web Server
/opt/SUNWwbsvr/https-<ホ スト名>
start
stop

Sun Java System Web Server 管理サーバー
/opt/SUNWwbsvr/https-admin start
stop

Sun Java System Application Server
/opt/SUNWappserver/appserver/bin asadmin start-domain --user admin domain1 asadmin stop-domain domain1 start-domain ではパスワードを入力
Sun Java System Access Manager
/etc/init.d/
amserver start
amserver stop
Web コンテナを起動・停止
Sun Java System Messaging Server
/opt/SUNWmsgsr/sbin start-msg stop-msg
Sun Java System Calendar Server
/opt/SUNWics5/cal/sbin
start-cal
stop-cal

Sun Java System Instant Messaging Server
/opt/SUNWiim/sbin
imadmin start
imadmin stop

Sun Java System Portal Server
-
-
-
Web コンテナを起動・停止
Sun Java System Portal Server Secure Remote Access
/etc/init.d
rwproxyd start
netletd start
gateway start
rwproxyd stop
netletd stop
gateway stop
Web コンテナを起動・停止
Sun Java System Delegated Administrator Server
-
-
-
Web コンテナを起動・停止
Sun Java System Communication Express
-
-
-
Web コンテナを起動・停止

同じマシンにこれらの製品をインストールした場合にはこの表の上の製品から起動し下の製品から停止していくという順番で全製品の起動・停止が安全に行えます。このあたりの話は Sun Java Enterprise System 2005Q1 インストールガイド : コンポーネントの起動と停止 に詳しく載っていますので参考にしてください。

Tuesday Oct 11, 2005

JES: Instant Messenger を使ってカレンダリマインダーを受け取る

Sun の今までのデスクトップ環境の CDE (Common Desktop Environment) や OpenWindows のデスクトップ環境ではカレンダーマネージャというのがあってそれだとリマインダーをポップアップで表示してくれる機能がありました。CDE から JDS に切り替えて Sun Java System Calendar Server を使い始めた同僚からは「カレンダーのリマインダーをポップアップできないの??」とよく聞かれます。

Sun Java System Calendar Server のリマインダーの通知はメールなのですが Sun Java System Instant Messenging Server のクライアントを起動しておくと連携してポップアップで受け取ることができます。MSN は私はわからないのですが Yahoo! Messenger でも同様の機能はありますよね。

設定の詳しい説明は


を参照してください。ほとんどの設定をデフォルトのままでインストール、設定した場合には次の方法で確認することができますので是非試してみて下さい。

1. Calendar Server の設定

/opt/SUNWics5/cal/config/ics.conf ファイルの次の行の ! をはずしてコメントアウトします。

! Custom alarm url.  Use this to get xml or calendar mime type contents
caldb.serveralarms.url = "enp:///ics/customalarm"
!
! Custom alarm url contenttype.  (text/xml or text/calendar)
caldb.serveralarms.contenttype = "text/xml"

2. Instant Messaging Server の設定

/opt/SUNWiim/config/iim.conf ファイルに次の行を付け足します。jms.provider.ens.broker には Calendar Server のホストを指定します。ポートはデフォルトのままでかまいません。

! JMS Consumers
jms.consumers=cal_reminder
jms.consumer.cal_reminder.destination=enp:///ics/customalarm
jms.consumer.cal_reminder.provider=ens
jms.consumer.cal_reminder.type=topic
jms.consumer.cal_reminder.param="eventtype=calendar.alarm"
jms.consumer.cal_reminder.factory=com.iplanet.im.server.JMSCalendarMessageListener

! JMS providers jms.providers=ens jms.provider.ens.broker=cs.japan.sun.com:57997 jms.provider.ens.factory=com.iplanet.ens.jms.EnsTopicConnFactory

3. Calendar Server を再起動します

# cd /opt/SUNWics5/cal/sbin
# ./stop-cal
# ./start-cal

4. Instant Messaging Server を再起動します

# cd /opt/SUNWiim/sbin
# ./imadmin refresh
Calendar エージェントが動いているか確認します。

# ./imadmin check agent-calendar
Agent:calendar                                                            [UP]
#

動いていない場合には refresh してみます。

# ./imadmin refresh agent-calendar
Stopping agent-calendar                                                    [OK]
Starting agent-calendar                                                    [OK]
# 

5. Instant Messaging のクライアントを再起動します

6. カレンダーの通知を受け取るかどうかを設定します

設定ダイアログの「アラート」で「カレンダーリマインダーを表示」にチェックを入れて「適用」します。



リマインダーを受け取ってみましょう。メールを受け取る時間になると次のようなダイアログが表示されるはずです


Monday Oct 10, 2005

JES: Access Manager の amadmin を使いこなそう

サーバー製品の管理ツールというとブラウザ上で管理コンソールを使うもの、特別なクライアントプログラムを使うもの、あとはコマンドラインの管理ツールを使うものがありますね。Portal Server のディスプレイプロファイルを管理するコマンドは dpadmin でした。Access Manager の場合は amadmin コマンドです。このようなコマンドラインの管理コマンドはとっても便利です。テンプレートなどをファイルにとっておいてそれを引数にできます。複数のマシンに同じ設定をしたい場合やソフトウェアを再設定する場合には短時間に間違いなく設定をすることができます。Portal Server のディスプレイプロファイルを設定する方法をいくつか書きましたがこれを管理コンソールでやろうとしたらとても面倒ですよね。ブラウザで管理者が毎回設定を行うのはどうしても間違いが起こりやすく設定ミスの原因になります。ブラウザのインターフェースはできるだけ確認用のみに使ってコマンドラインの管理コマンドを有効活用してみましょう。

今回は Access Manager のコマンドライン管理ツール amadmin を使ってみましょう。

テンプレートを活用しよう

/opt/SUNWam/samples/admin/cli/ ディレクトリには amadmin で使うファイルの例がいろいろ置いてあります。amadmin にこれらのファイルを引数として渡してあげます。では例えば組織に割り当てられているサービスを取得するにはどうしたらよいでしょうか。実際にやってみますね。

組織のサービスを取得する - orgGetRegisteredServiceRequests.xml

このファイルを開いてみて下さい。次のような内容になっています。組織の DN は変更して dc=japan,dc=sun,dc=com にしてあります。GetRegisteredServiceNames でその組織のサービスを取得できることがわかりますね。

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE Requests

    PUBLIC "-//iPlanet//Sun Java System Identity Server 2004Q2 Admin CLI DTD//EN"

    "jar://com/iplanet/am/admin/cli/amAdmin.dtd"

>


<!--  CREATE REQUESTS -->


<Requests>


  <OrganizationRequests DN="dc=japan,dc=sun,dc=com">

    <GetRegisteredServiceNames/>

  </OrganizationRequests>


</Requests>

amadmin には amadmim ユーザーID とパスワード、-t の次にファイル名を書きます。

# /opt/SUNWam/bin/amadmin -u uid=amadmin,ou=people,dc=japan,dc=sun,dc=com \\
-w passwd -t orgGetRegisteredServiceRequests.xml

実際に実行してみましょう。次のような結果が得られます。
組織: dc=japan,dc=sun,dc=com

登録されたサービスの取得:

  SunPortalNetMailService

  iPlanetAMAdminConsoleService

  iPlanetAMAuthMembershipService

  SunPortalSubscriptionsService

  srapProxyletService

  SunMobileAppMailService

  iPlanetAMProviderConfigService

  SunPortalWSRPProducerService

  iPlanetAMAuthLDAPService

  SunPortalDesktopService

  srapGatewayAccessService

  iPlanetAMAuthenticationDomainConfigService

  iPlanetAMAuthService

  iPlanetAMPolicyConfigService

  iPlanetAMPolicyService

  iPlanetAMUserService

  SunSSOAdapterService

  SunPresence

  SunMobileAppABService

  SunPortalWSRPConsumerService

  srapNetFileService

  iPlanetAMAuthConfiguration

  SunMobileAppCalendarService

  srapNetletService

  SunIM

成功 0: 完了しました

#

ユーザーにサービスを追加する - userRegisterServiceRequests.xml


ユーザーを追加したときにサービスを追加するプログラムを書いてみましょう。GetRegisteredServiceNames で組織のサービスを取得したのでこれらの値を使って今度はユーザーにサービスを割り当てればよいですよね。

userRegisterServiceRequests.xml というファイルを今度は参考にしてください。対象ユーザーの DN を指定して、RegisterServices の Service_Name でサービスを列挙すれば OK です。


<Requests>

<UserRequests DN="uid=user02,ou=people,dc=japan,dc=sun,dc=com">

    <RegisterServices>

  <Service_Name>SunIM </Service_Name>

  <Service_Name>SunMobileAppABService </Service_Name>

  <Service_Name>SunMobileAppCalendarService </Service_Name>

  <Service_Name>SunMobileAppMailService </Service_Name>

  <Service_Name>SunPortalDesktopService </Service_Name>

  <Service_Name>SunPortalNetMailService </Service_Name>

  <Service_Name>SunPortalSubscriptionsService </Service_Name>

  <Service_Name>SunPresence </Service_Name>

  <Service_Name>SunSSOAdapterService </Service_Name>

  <Service_Name>iPlanetAMAuthConfiguration </Service_Name>

  <Service_Name>iPlanetAMUserService </Service_Name>

  <Service_Name>srapGatewayAccessService </Service_Name>

  <Service_Name>srapNetFileService </Service_Name>

  <Service_Name>srapNetletService </Service_Name>

  <Service_Name>srapProxyletService </Service_Name>

    </RegisterServices>

</UserRequests>

</Requests>
このように amadmin では現在の設定値を取得したり、設定したりすることができますので、これを使っていろいろなスクリプトを用意できますよね。いくつか例���あげて������ます。


組織にサービスを追加する


myorg という組織にサービスを追加します。この段階ではまだテンプレートは作成されていません。

<Requests>

  <OrganizationRequests DN="o=myorg,dc=japan,dc=sun,dc=com">

    <RegisterServices>

      <Service_Name>iPlanetAMPolicyConfigService</Service_Name>

    </RegisterServices>

   </OrganizationRequests>

</Requests>

テンプレートを作成する


追加したサービスをテンプレートを amadmin でつくってみましょう。CreateServiceTemplate で作成することができます。

<Requests>

  <OrganizationRequests DN="o=myorg,dc=japan,dc=sun,dc=com">

    <CreateServiceTemplate>

      <Service_Name>iPlanetAMPolicyConfigService</Service_Name>

    </CreateServiceTemplate>

   </OrganizationRequests>

</Requests>


組織に Membership 認証モジュールを使うように設定する



<Requests>

   <SchemaRequests serviceName="iPlanetAMAuthService" SchemaType="Organization">

     <AddDefaultValues>

       <AttributeValuePair>

         <Attribute name="iplanet-am-auth-allowed-modules"/>

         <Value>Membership</Value>

       </AttributeValuePair>

     </AddDefaultValues>

   </SchemaRequests>

</Requests>


ユーザープロファイル設定を「動的」にする


<Requests>

   <SchemaRequests serviceName="iPlanetAMAuthService" SchemaType="Organization">

     <AddDefaultValues>

       <AttributeValuePair>

         <Attribute name="iplanet-am-auth-allowed-modules"/>

         <Value>Membership</Value>

       </AttributeValuePair>

     </AddDefaultValues>

   </SchemaRequests>

</Requests>

Friday Oct 07, 2005

JES: 共有フォルダでメールアーカイブを作ろう

IMAP の共有フォルダ (Shared Folder) というのをご存じでしょうか。本来、メールサーバー上のメールフォルダは自分しか見ることができませんが共有フォルダとして設定しておけば他の人から見えるようにすることができます。

みなさんもメールで仕事をしているとわかると思いますが、自分しか受け取っていないメールでも他のチームメンバーと共有したい情報などの内容が含まれている場合が多くあります。こういう場合はおそらくみなさんはチームメンバーにそのメールを「転送」するのではないかと思います。これはこれでいいのですが転送されたメールはまたチームメンバー各人が管理する個人フォルダへと吸い込まれていってしまいます。チームに新しいメンバーが入ってきた場合、あるいは過去のメールを検索したいとき、そのような情報が一つにまとまっていると便利ですよね。こういう場合、メールフォルダを共有にしておいてチームメンバーが参照できるところに置いておいてあげればそれだけで十分重要な情報源になりますし、検索の手間も省けますよね。

今回は Sun Java System Messaging Server で共有フォルダを使ったメールアーカイブシステムを紹介します。実際このシステムは私の部署で動いていて現在はさまざまなプロジェクトのメールをアーカイブしています。今調べてみたのですが 12万 通、1.5G 程度のメールをアーカイブしています。メールアーカイブは IMAP として参照できますし、ウェブベースの閲覧も eyebrowse を使って行っています。

メールの整理もとっても楽になりました。今までは必要と思われるメールはメールエイリアスごとのフォルダを作ってそこに移動して取っておきましたが、今はざっと読んで何も考えずにどんどん削除していっています。必要な時にこの共有フォルダを見にいけばいいだけです。
共有フォルダとして設定する

Sun Java System Communication Express でフォルダを作成して「選択したフォルダの共有」ボタンを押します。



次のようなダイアログが表示されます。

フォルダの権限は注意して設定してください。この例ではすべての人に読み込み権があります。私に読み込み、書き込みの権限を設定してあります。つまり私以外の人はこのフォルダは参照できますが書き込むことはできません、私がこのフォルダにメールを移動したり削除したりできます。


メール配信アドレス

ユーザー名が mailsrv、フォルダは TEST/test、メール配信アドレスが mailsrv+TEST/test@mini.japan.sun.com となっていることがわかります。本来であれば mailsrv@mini.japan.sun.com がメールアドレスですが、ユーザーのメールアドレスのあとに + を付けてフォルダ名を書くことで直接のそのフォルダに配信することができます。メーリングリストであればこの

mailsrv+TEST/test@mini.japan.sun.com

を追加してあげれば勝手にメールが配信されることになります。これを利用してメールアーカイブを実現しています。

共有フォルダを閲覧する

IMAP で提供されているので IMAP をサポートするメールクライアントであれば簡単に読むことができます。もちろん Sun Java System Messenger Express や Communication Express などの Web クライアントでも読むことは可能です。

Communication Express から共有フォルダを読むには「登録」を押します。共有フォルダを検索して「登録」することができます。



Mozilla Mail では「購読」することで読めるようになります。



Mozilla Mail では Shared Folders -> User -> ユーザー名 -> フォルダ名 に共有フォルダを見つけることができます。



普段使っているメーラで見れるので便利ですよね。検索も出来ますし必要なフォルダだけ登録しておけばいいです。

コマンドで共有フォルダを設定する

共有フォルダの作成、設定は Communication Express などの Web からもできますが、コマンドラインからももちろん管理することができます。

フォルダを作成する

    ここでのユーザー名はどのユーザーのフォルダに作成するかということです。

    # cd /opt/SUNWmsgsr/sbin
    # ./mboxutil -c user/ユーザー名/フォルダ名

権限の設定

    権限の設定には readership コマンドを使用します。

    すべてのユーザーに読み込み可にするには次のようにします。

    # ./readership -s user/ユーザー名/フォルダ名 anyone lrp

    特定のユーザー(オーナー)に読み込み、書き込み、管理権限を付けるには次のようにします。

    # ./readership -s user/ユーザー名/フォルダ名 オーナー名 lrswipcda

共有フォルダの詳細については
を参照してください。

Thursday Oct 06, 2005

JES: Policy Agent を使ってみよう(5): ポータルデスクトップで使う

Policy Agent をウェブサーバーで使うことで簡単に Web リソースがプロテクトできました。アプリケーションサーバー上で使う J2EE ポリシーエージェントでも同様に Web アプリケーションのプロテクトが出来ます。ポリシーは Access Manager で一括管理されます。では、ここで少し応用をしてこれらのプロテクトされた Web リソースと Portal Server を連携してみましょう。Policy Agent と Portal Server が参照している Access Manager によって SSO が実現します。Policy Agent と Access Manager によってプロテクトされているコンテンツがポータルデスクトップにログイン後表示されます。チャネルのコンテンツを表示するために再度ログインする必要は ありませ ん。ポータルデスクトップにログインしたことにより表示することができます。

実際に私は Java ES 製品の試験ということで複数の Policy Agent をインストールしそれらを一つのポータルデスクトップに表示させていました。今回はこれをやってみます。

Web コンテンツを Policy Agent でプロテクトする

前回までの手順で必要な Web コンテンツをプロテクトしてください

URL スクレーパーチャネルでチャネルを作る

ス クレーパーチャネルでこのコンテンツを表示するように新しく作成します。例えば次のように jesws.japan.sun.com の sunweb/sol10/ 以下をチャネル内に表示するには次のようなディスプレイプロファイルになります。これを dpadmin で設定します。


   <Channel name="sunweb-ws-sol10-UTF-8" provider="URLScraperProvider" merge="replace">

     <Properties>

       <String name="width" value="thick"/>

       <String name="description" value="Policy Agent の試験"/>

       <String name="inputEncoding" value="UTF-8"/>

       <String name="title" value="Sun ウェブ - sol10 - (JES WS,UTF-8)"/>

       <String name="url" value="http://jesws.japan.sun.com/sunweb/sol10/index.html"/>

       <ConditionalProperties condition="client" value="HTML">

         <ConditionalProperties condition="locale" value="ja">

           <String name="url" value="http://jesws.japan.sun.com/sunweb/sol10/index.html"/>

         </ConditionalProperties>

       </ConditionalProperties>

     </Properties>

   </Channel>


コンテナを作成する

URL スクレーパーチャネルが出来上がったらそれを格納するコンテナを作成します。今回は PredefinedSamplesTabPanelContainerProvider をプロバイダにして MyPortalPAJWSContainer というコンテナを作成し Web Server からのコンテンツを表示する URL スクレーパーチャネルを4つ作成しました。エンコーディングごとに、UTF-8、EUC、Shift_JIS、charset タグなしの Shift_JIS を作成しました。


        <Container name="MyPortalPAJWSContainer"provider="PredefinedSamplesTabPanelContainerProvider">

           <Properties>

               <String name="title" value="JES WS"/>

           </Properties>

           <Available>

               <Reference value="sunweb-ws-sol10-UTF-8"/>

               <Reference value="sunweb-ws-sunray-EUC-JP"/>

               <Reference value="sunweb-ws-software-Shift_JIS"/>

               <Reference value="sunweb-ws-studio-Shift_JIS"/>

           </Available>

           <Selected>

               <Reference value="sunweb-ws-sol10-UTF-8"/>

               <Reference value="sunweb-ws-sunray-EUC-JP"/>

               <Reference value="sunweb-ws-software-Shift_JIS"/>

               <Reference value="sunweb-ws-studio-Shift_JIS"/>

           </Selected>

           <Channels>

           </Channels>

        </Container>


タブコンテナを作成する

ひとつひとつのコンテナが作成されたところでタブを作成しましょ う。それぞれのタブにひとつのコンテナをはりつけています。ディスプレイプロファイルは次のようになります。プロバイダは JSPTabContainerProvider を指定しています。MyFrontPageTabPanelContainer はポータルデスクトップのデフォルトで表示されるタブです。MyPortalTabContainer をユーザーのデフォルトのコンテナに指定します。

このように Sun Java System Web Server、Application Server、Apache、IIS、Tomcat、WebLogic などの Policy Agent の製品を一度に確認することの出来るポータルデスクトップが完成します。


        <Container name="MyPortalTabContainer" provider="JSPTabContainerProvider" merge="replace">

           <Properties>

           </Properties>

           <Available>

               <Reference value="MyPortalPAJWSContainer"/>

               <Reference value="MyPortalPAJASContainer"/>

               <Reference value="MyPortalPATomcatContainer"/>

               <Reference value="MyPortalPAApacheContainer"/>

               <Reference value="MyPortalPAIISContainer"/>

               <Reference value="MyPortalPAWLContainer"/>

               <Reference value="MyPortalPADominoSolarisContainer"/>

               <Reference value="MyPortalPADominoWindowsContainer"/>

               <Reference value="MyFrontPageTabPanelContainer"/>

           </Available>

           <Selected>

               <Reference value="MyPortalPAJWSContainer"/>

               <Reference value="MyPortalPAJASContainer"/>

               <Reference value="MyPortalPATomcatContainer"/>

               <Reference value="MyPortalPAApacheContainer"/>

               <Reference value="MyPortalPAIISContainer"/>

               <Reference value="MyPortalPAWLContainer"/>

               <Reference value="MyPortalPADominoSolarisContainer"/>

               <Reference value="MyPortalPADominoWindowsContainer"/>

               <Reference value="MyPortalPAJWSContainer"/>

               <Reference value="MyFrontPageTabPanelContainer"/>

           </Selected>

           <Channels>

           </Channels>

        </Container>


ログインしてみた

ポリシーを設定してポータルサーバーにログインしてみましょう。ポリシーの評価が行われ表示が許可されていれば左の画面のようにコンテンツが表示されるは ずです。ここで再度ログインする必要はありません。

右の図ではポリシーをわざと失敗するようにしてみました。表示を許可されていない場合はこのようにエラーが表示されます。

コンテンツは表示される


ポリシーの評価に失敗した場合はコンテンツは表示されない


Policy Agent についての詳しい説明は docs.sun.com の Sun ONE Identity Server Policy Agent 2.1 を参照して下さい。

Wednesday Oct 05, 2005

Sun Java Enterprise System 2005Q4 download is available!

Sun Java Enterprise System 2005Q4 がダウンロード可能になりました!

http://www.sun.com/software/javaenterprisesystem/get.xml

前回のリリースからの大きな変更点は
  • Sun Java System Access Manager がバージョン 7.0 に
  • Sun Java System Web Proxy Server の追加
  • Service Registry の追加
でしょうか。ドキュメントも docs.sun.com で参照可能になっています。プラットフォームは Solaris と Linux です。Windows 版と HP-UX 版は後からのリリースです。

インストールの方法などは前回のリリースとほとんど変わっていませんので是非ダウンロードして試してみて下さい。次の私のブログが参考になるでしょう

インストール&設定編:

JES: Policy Agent を使ってみよう(4): Web アプリケーションでの URL プロテクト

単純に Web のコンテンツをプロテクトしたい場合には前 回の手順で Policy Agent を設定することができます。これらは Web ポリシーエージェント と呼ばれる機能で次のようなウェブサーバー製品で使うことが出来ます。
  • Sun Java System Web Server
  • Apache Web Server
  • IBM HTTP Server
  • Microsoft IIS
では次のようなアプリケーションサーバー上に配備された Web アプリケーションや EJB などはどうしたらよいでしょうか。この場合は J2EE ポリシーエージェントと呼ばれる機能を使用します。
  • Sun Java System Application Server
  • BEA WebLogic Application Server
  • IBM WebSphere Application Server
  • Tomcat Application Server

J2EE ポリシーエージェントを使った Web アプリケーションの単純な URL プロテクト

J2EE ポリシーエージェントの複雑な設定をしなくても単純に Web アプリケーションに含まれる Web リソースをプロテクトしたい場合があります。Web アプリケーションに認証機能や複雑なポリシーの管理すを実装するよりも簡単に管理・設定ができますよね。

実は私はこれを実現しようといろいろドキュメントを読んだのですが読み方がおかしかったのかドキュメントの不備なのかなかなか成功しませんでしたが、 Policy Agent 担当の US のエンジニアなどにいろいろ聞いてようやく実現することができました。

詳しくは Sun ONE Identity Server Policy Agent 2.1 J2EE Agents Guide Enabling Web-Tier Declarative Security を参照して下さい。

J2EE ポリシーエージェントはインストールしただけでは有効にならず Web アプリケーションの web.xml を編集します。

私が間違っていたのは次の3点です。
  • <security-constraint> が web.xml には必要
  • ログインページを持ってない Web アプリケーションでは <login-conf> は必要ない

ただしダミーな login ページの URL を AMAgent.properties に設定しておく必要がある

com.sun.am.policy.amFilter.login.formList[0] = /sunweb/login.jsp
  • Access Manager でリソースを設定する場合には次のような形式で指定する必要がある
http://host.../<webapp URL>/\*

これを正しく修正した web.xml で再度アプリケーションサーバーに配備したところ無事に Web ポリシーエージェントと同様に動いてくれました。参考までに私の使っている web.xml を載せておきます。

<?xml version="1.0" encoding="UTF-8"?>

<!--

 Copyright 2004-2005 Sun Microsystems, Inc.  All rights reserved.

 Use is subject to license terms.

-->

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <session-config>

    <session-timeout>30</session-timeout>

  </session-config>

  <security-constraint>

    <web-resource-collection>

      <web-resource-name>Protected Area</web-resource-name>

      <url-pattern>/\*</url-pattern>

      <http-method>PUT</http-method>

      <http-method>DELETE</http-method>

      <http-method>GET</http-method>

      <http-method>POST</http-method>

    </web-resource-collection>

  </security-constraint>

  <filter>

    <filter-name>Agent</filter-name>

    <filter-class>com.sun.identity.agents.filter.AmAgentFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>Agent</filter-name>

    <url-pattern>/\*</url-pattern>

    <dispatcher>REQUEST</dispatcher>

    <dispatcher>INCLUDE</dispatcher>

    <dispatcher>FORWARD</dispatcher>

    <dispatcher>ERROR</dispatcher>

  </filter-mapping>

</web-app>

Policy Agent についての詳しい説明は docs.sun.com の Sun ONE Identity Server Policy Agent 2.1 を参照して下さい。

Tuesday Oct 04, 2005

JES: Policy Agent を使ってみよう(3): ポリシーの設定

今回は実際にポリシーを作って簡単な URL プロテクトをしてみましょう。ポリシーは Access Manager 上で作成します。

http://am.japan.sun.com/amconsole

から amadmin とパスワードで Access Manager 管理コンソールにログインします。「アイデンティティ管理」タブをクリックし、「表示」メニューから「ポリシー」を選択します。「新規...」ボタンを押して新しいポリシーを 作っていきます。まず適用に名前を 入れて「標準」ポリシーを作 成します。その後にいろいろ設定していき ます。作成されたポリシーを右側の区画に表示し「表示」 メニューから 「ルール」、「サブジェクト」、「条件」を設定していきます。

ポリシーはこの「サブジェクト」 と「条件」によって評価され ます。

ルール

ルールには次のようなものがあります。この場合は「URL ポリシーエージェント」 を選択しましょう。



リソース名

URL ポリシーエージェントを選択すると次の画面ではリソース名を入力する人があります。ルール名は適当でかまいません。リソースにはプロテクトしたい URL を書きます。\* を使うことができますのでここでは対象となる URL を

http://policyagent.japan.sun.com/protected/\*

のように書くことが出来ます。GET、POST で許可するかどうかを指定できます。



サブジェクト

サブジェクトには次のようなものがあります。誰を対象としているかというのを設定します。ここでは単純に LDAP ユーザーを許可することにしましょう。許可したいユーザーを指定します。


条件

さらに IP アドレスや時刻などの条件を加えることができます。今回の例では条件は作成しませんでした。



Access Manager にログイン

さて実際に動かして見ましょう。プロテクトされた URL にアクセスするとどうなるでしょうか。次のように Access Manager のログインページにリダイレクトされます。



ログインが成功した後要求したページの表示が許可されているか拒否されているかが評価されます。

成功

評価が成功すると要求されたページが表示されます。



失敗

ポリシーが拒否されていると評価された場合には次のようなページが表示されます。このエ ラーは Web コンテナに Apache を使った時のものです。




このように Policy Agent は Web コンテナと同じホストにインストールされプロテクトされた URL への要求を Access Manager にリダイレクトします。その後ポリシーの評価を行い許可されているか拒否されているかの判断を行います。多数の Web コンテナが参照する Access Manager 上でポリシーは一元管理されることになります。

次回は Web ��プリケーションでのプロテクトをしてみます。

Policy Agent についての詳しい説明は docs.sun.com の Sun ONE Identity Server Policy Agent 2.1 を参照して下さい。
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
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
   
       
Today