WebOTX PortalのMO定義については以下のリンクを参照してください。
本章では、WebOTX Portalの認証を外部の認証サーバに委譲する場合の手順について説明します。
WebOTX Portalでは、自身で認証処理を行わずに外部の認証サーバに委譲することが出来ます。 対応している認証サーバは以下の通りです。
本機能を利用することで、SECUREMASTERやActive Directoryで認証されたユーザ情報でWebOTX Portalに自動ログイン出来るようになります。
Memo
WebSAM SECUREMASTERは、Webシステムなどに対してシングルサインオン(SSO)やアクセス制御を提供する弊社製品です。
SECUREMASTERの詳細については、弊社HPをご参照下さい。
Caution
WebOTX Portalの認証を外部の認証サーバに委譲する設定で運用した場合、WebOTX Portalのログイン画面は表示されません。また、パスワード変更機能を利用することができないため、個人設定メニューの「パスワードを変更...」は表示されません。
詳細は、[ 運用ガイド < 3. ポータルサイトの基本操作 < 3.3. 認証操作] をご参照下さい。
ここでは、WebOTX Portalの認証をSECUREMASTERに委譲する場合の手順について説明します。
ここでは、SECUREMASTERに認証を委譲する場合のソフトウェア条件について説明します。
SECUREMASTERに認証を委譲する場合に WebOTX Portal がサポートするオペレーティング・システム(OS)、および、必要な関連ソフトウェアは下記の通りです。
| オペレーティング・システム | アプリケーションサーバ |
|---|---|
| Windows Server® 2008 Windows Server® 2008 R2 |
WebOTX Application Server Express V9.1 (*1) |
| Red Hat Enterprise Linux 6 Server (6.1以降) Red Hat Enterprise Linux 5 Red Hat Enterprise Linux AP 5 |
WebOTX Application Server Express V9.1 (*1) |
| *1 | WebOTX Portalは同じメディアで提供されるApplication Server上での動作をサポートします。 |
| オペレーティング・システム | Webサーバ |
|---|---|
| Windows Server® 2008 Windows Server® 2008 R2 |
Internet Information Services (IIS) 7.0 Internet Information Services (IIS) 7.5(*1) |
| Red Hat Enterprise Linux 6 Server (6.1以降) Red Hat Enterprise Linux 5 Red Hat Enterprise Linux AP 5 |
Apache HTTP Server 2.2.27 以降 |
| *1 | Windows Server 2008 64bit環境での、IIS 32bitモードはサポートしていません。 |
| 製品名 | サポートするバージョン | 備考 |
|---|---|---|
| SECUREMASTER/EnterpriseIdentityManager(EIM) | 4.0 4.1 |
|
| SECUREMASTER/EnterpriseAccessManager(EAM) | 6.0 6.1 |
|
| SECUREMASTER/AccessControlPlugIn(ACPI) | 6.0 6.1 |
(*1) |
| *1 | AccessControlPlugIn は、WebOTX Portal Webサーバにインストールする必要があります。 |
Caution
SECUREMASTERに認証委譲する場合は、(i) WebOTX PortalがWebSAM SECUREMASTER/EIMで使用しているEDSを直接参照する、もしくは、(ii) WebOTX Portalが使用するEDSに対して WebSAM SECUREMASTER/EIMで使用しているEDSからデータを転記する、必要があります。
Memo
詳細は、それぞれ (i) [ 運用ガイド < 2. ユーザ管理 < 2.3. ユーザリソースの任意スキーマ対応]、(ii) [ 運用ガイド < 2. ユーザ管理 < 2.1.7.4. EDSへのデータ転記] の「他の認証用EDSからの転記」、を参照して下さい。
ここでは、SECUREMASTERに認証委譲する場合にポータルサービス管理者が行う手順について説明します。 手順は、WebOTX Portalインストールと同時にSECUREMASTER認証委譲環境を構築する場合も、WebOTX Portalの運用開始後に途中からSECUREMASTER認証委譲環境に移行する場合も、同様になります。
WebOTX PortalをSECUREMASTER/認証サーバで保護し、認証サーバでの認証を通らないとWebOTX Portalにアクセス出来ないように設定する必要があります。そのために、システム管理者がSECUREMASTER/EAMの手順に従い、下記の、WebOTX Portal内部で管理するコンテンツのURLをSECUREMASTERのアクセス保護対象として追加して下さい。ユーザ側で開発したポートレットがある場合は、その分も保護対象として指定して下さい。
| コンポーネント名 | URL |
|---|---|
| WebOTX Portal | http(s)://${HOSTNAME(FQDN)}(*1)/webotxportal/ 配下 |
| http(s)://${HOSTNAME(FQDN)}(*1)/portal-authlink/ 配下 | |
| WebOTX Portal 同梱ポートレット | http(s)://${HOSTNAME(FQDN)}(*1)/webotx-portal-portlet/ 配下 |
| http(s)://${HOSTNAME(FQDN)}(*1)/webotx-portal-rssportlet/ 配下 |
| *1 | ${HOSTNAME(FQDN)} はWebOTX PortalがインストールされているFQDN(ドメイン名まで含まれたホスト名)になります。
例えば、ドメイン名が「example.local」、ホスト名が「portal」の環境に
WebOTX Portal をインストールした場合は、次の4つのURLを追加して下さい。
|
WebOTX Portalは、SECUREMASTERの「ユーザ情報引渡機能」により、SECUREMASTER認証成功時に認証情報としてユーザIDを受け取る必要があります。そのために、SECUREMASTER/EAMの認証サーバの設定と、SECUREMASTER ACPIの設定を行います。この設定は、SECUREMASTERの設定であるため、システム管理者がSECUREMASTERの手順に従い実施します。
| SECUREMASTER/EAMの認証サーバの設定ファイル | ${WEBOTX_INSTANCE_ROOT}/applications/AuthServer/WEB-INF/sm_auth_conf.xml |
<item id="ATTRMAPPING" require="1"> <simpleItem> <name>属性情報マッピングファイル</name> <valueStr>C:\WebOTX\domains\domain1\applications\AuthServer\WEB-INF\attr.properties</valueStr> </simpleItem> </item>
| SECUREMASTER/EAMの認証サーバの属性マッピングファイル | ${WEBOTX_INSTANCE_ROOT}/applications/AuthServer/WEB-INF/attr.properties |
# Attribute Mapping File UserID=uid Name=displayName Post=eidmTitleName Mail=mailここでは、UserID以外のユーザ情報も含んでいますが、WebOTX Portalとしては最低限UserIDがあれば良く、その他は任意です。
| SECUREMASTER/ACPIの設定ファイル | sm_acpi_conf.xml |
<item id="ATTR" require="0" itemType="2"> <combiItem subItemType="1"> <subItem id="ATTRLIST" itemType="1" valueType="0"> <arrayItem> <name>属性情報リスト</name> <valueStr>UserID</valueStr> </arrayItem> </subItem> <subItem id="ATTRKEY" itemType="1" valueType="0"> <arrayItem> <name>識別名リスト</name> <valueStr>X-UID</valueStr> </arrayItem> </subItem> </combiItem> </item> : <item id="ATTRSENDTYPE" require="0"> <simpleItem> <name>属性情報送信タイプ</name> <!-- 0000: 送信なし 0001: CGI 環境変数(HTTPヘッダ)で送信 0010: QueryString(CGIパラメータ)に追加して送信 0011: CGI 環境変数(HTTPヘッダ)およびQueryString(CGIパラメータ)に追加して送信 0100: 旧形式のCGI 環境変数(HTTPヘッダ)で送信 --> <valueStr>0001 または 0100</valueStr> </simpleItem> </item>UserIDは、Cookieに含まれるユーザIDの名前、X-UID はUserIDの値をHTTPヘッダに設定する場合のヘッダ名です。UserIDの名前はSECUREMASTERの設定ファイル間で整合性が取れていれば任意の名前でも問題ありません。X-UIDは、WebOTX Portalの設定ファイル(SSOConfiguration.properties)のsso.uid.keyプロパティ値と一致させる必要があります。
Memo
SECUREMASTERの「ユーザ情報引渡機能」の詳細は、SECUREMASTER マニュアルの「ユーザ情報引渡機能」を参照して下さい。
設定ファイル(common-session.properties)を変更し、WebOTX Portalの認証委譲機能を有効にします。 本設定を行うことで、ユーザIDのみでWebOTX Portalにログイン可能になります。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/common/common-session.properties |
# common-session.properties [Configuration] : authentication.feature.delegated = true
上記設定ファイルにおいて、authentication.feature.delegatedプロパティをfalseからtrueに変更して下さい。
次に、設定ファイル(SSOConfiguration.properties)を変更し、連携先認証サーバとしてSECUREMASTERを指定します。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/SSOConfiguration.properties |
# SSOConfiguration.properties [Configuration] # # SSO LoginFilter Class (default: 'com.nec.webotx.portal.login.sso.filter.SecureMasterLoginFilter') # - for WebSAM/SECUREMASTER # com.nec.webotx.portal.login.sso.filter.SecureMasterLoginFilter # - for MS/Active Directory # com.nec.webotx.portal.login.sso.filter.ActiveDirectoryLoginFilter # sso.filter.class=com.nec.webotx.portal.login.sso.filter.SecureMasterLoginFilter # if only for WebSAM/SECUREMASTER # The HTTP header name or HTTP request parameter name # with which WebOTX Portal receives uid # (default: 'X-UID') # i.e. ATTR value of WebSAM/SECUREMASTER Configuration file (sm_acpi_conf.xml) # # sso.uid.key=X-UID # # WebSAM/SECUREMASTER Logout URL # if specified, when we logout from WebOTX Portal, # also logout from WebSAM/SECUREMASTER. # # sso.logout.uri=https://example.co.jp/AuthServer/Logout
sso.filter.classプロパティに「com.nec.webotx.portal.login.sso.filter.SecureMasterLoginFilter」を指定して下さい。
Memo
common-session.properties については、[ 運用ガイド < 6. コンフィグレーション < 6.2.6. 認証の設定]を、SSOConfiguration.properties については、[ 運用ガイド < 6. コンフィグレーション < 6.2.7. 認証委譲機能の設定]をご参照下さい。
設定ファイル(SSOConfiguration.properties)に、WebOTX PortalがSECUREMASTERからユーザIDを受け取るためのHTTPヘッダ名を設定します。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/SSOConfiguration.properties |
: # The HTTP header name with which WebOTX Portal receives uid # (default: 'X-UID') # i.e. ATTR value of WebSAM/SECUREMASTER Configuration file (sm_acpi_conf.xml) # sso.uid.key=X-UID :
上記設定ファイルにおいて、sso.uid.keyプロパティに、SECUREMASTER ACPIの設定ファイル(sm_acpi_conf.xml) の設定項目「ATTR」で指定した値と同じ値を設定して下さい。
設定ファイル(PortalConfiguration.properties)を変更し、WebOTX Portalログアウト時の動作を変更します。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/PortalConfiguration.properties |
# PortalConfiguration.properties
[Configuration]
# Login Page URI (default: '${APP_CONTEXT}/login')
# com.nec.webotx.portal.authentication.page.login.uri =
# com.nec.webotx.portal.authentication.XXX.page.login.uri =
# post Logout URI (default: Login Page URI)
com.nec.webotx.portal.authentication.post.logout.uri = /webotxportal/ssoLogout.jsp
# com.nec.webotx.portal.authentication.XXX.post.logout.uri =
# ChangePassword URI
# com.nec.webotx.portal.authentication.XXX.page.changepassword.uri =
# filter ignore suffixes (default: none)
# com.nec.webotx.portal.authentication.filter.ignore.suffixes = .js, .css, .png, .gif, .jpg
上記設定ファイルにおいて、post.logout.uriプロパティに「/webotxportal/ssoLogout.jsp」を設定して下さい。
WebOTX Portalからログアウト時にSECUREMASTERからもログアウトを行う場合は、設定ファイル(SSOConfiguration.properties)を変更し、sso.logout.urlプロパティにSECUREMASTERのログアウトURLを設定して下さい。未設定の場合は、SECUREMASTERからのログアウトは行われません。
Memo
PortalConfiguration.properties については、[ 運用ガイド < 6. コンフィグレーション < 6.2.6. 認証の設定]をご参照下さい。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/SSOConfiguration.properties |
: # # WebSAM/SECUREMASTER Logout URL # if specified, when we logout from WebOTX Portal, # also logout from WebSAM/SECUREMASTER. # sso.logout.uri=SECUREMASTER/EAM の認証サーバのログアウトURL
WebOTX PortalとSECUREMASTERを再起動後に、SECUREMASTER認証委譲機能の動作確認を行います。
ここでは、WebOTX Portalの認証をActive Directoryに委譲する場合の手順について説明します。
ここでは、Active Directoryに認証を委譲する場合のソフトウェア条件について説明します。
Active Directoryに認証を委譲する場合に WebOTX Portal がサポートするオペレーティング・システム(OS)、および、必要な関連ソフトウェアは下記の通りです。
| ハードウェア | オペレーティング・システム |
|---|---|
| Intel x86 | Windows Server® 2008 Standard SP2 Windows Server® 2008 Enterprise SP2 Windows Server® 2008 Datacenter SP2 |
| Intel 64 | Windows Server® 2008 R2 Standard SP1 Windows Server® 2008 R2 Enterprise SP1 Windows Server® 2008 R2 Datacenter SP1 Windows Server® 2008 Standard SP2 Windows Server® 2008 Enterprise SP2 Windows Server® 2008 Datacenter SP2 |
[2.2.1. オペレーティング・システム]のクライアント動作環境 に準拠します。
次の Webブラウザに対応しております。(*1)
| *1 | Microsoft Internet Explorer 6.0および7.0でも動作いたしますが、JavaScriptの処理に時間がかかるためポータルページの表示速度が遅くなる場合があります。またInternet Explorer 6.0の場合、画面表示が一部乱れることがあります。詳細は注意制限事項をご参照ください。 |
Memo
Internet Explorerの[ツール]−[インターネットオプション]−[詳細設定]を選択し、「統合Windows認証を使用する(再起動が必要)」をチェックして下さい。さらに、[ツール]−[インターネットオプション]−[セキュリティ]から、WebOTX PortalのURLを「イントラネット」ゾーンに追加して下さい。
| *1 | Windows Server 2008 64bit環境での、IIS 32bitモードはサポートしていません。 |
Caution
Active Directoryに認証委譲する場合は、(i) WebOTX PortalがActive Directoryを直接参照する、もしくは、(ii) WebOTX Portalが使用するEDSに対して Active Directoryからデータを転記する、必要があります。
Memo
詳細は、それぞれ (i) [ 運用ガイド < 2. ユーザ管理 < 2.3. ユーザリソースの任意スキーマ対応]、(ii) [ 運用ガイド < 2. ユーザ管理 < 2.1.7.4. EDSへのデータ転記] の「Active Directoryからの転記」、を参照して下さい。
ここでは、Active Directoryに認証委譲する場合にポータルサービス管理者が行う手順について説明します。 手順は、WebOTX Portalインストールと同時にActive Directory認証委譲環境を構築する場合も、WebOTX Portalの運用開始後に途中からActive Directory認証委譲環境に移行する場合も、同様になります。
Memo
IISのインストールとセットアップの詳細は、WebOTXマニュアル「セットアップガイド」の2.3. インストール後の作業 を参照して下さい。
WebOTX PortalのWebサーバ(Internet Information Services)の設定により、Active Directory認証を通らないとWebOTX Portalにアクセス出来ないようにします。
使用するIISのバージョンによって手順が異なります。
設定ファイル(common-session.properties)を変更し、WebOTX Portalの認証委譲機能を有効にします。 本設定を行うことで、ユーザIDのみでWebOTX Portalにログイン可能になります。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/common/common-session.properties |
# common-session.properties [Configuration] : authentication.feature.delegated = true
上記設定ファイルにおいて、authentication.feature.delegatedプロパティをfalseからtrueに変更して下さい。
次に、設定ファイル(SSOConfiguration.properties)を変更し、連携先認証サーバとしてActive Directoryを指定します。
Memo
common-session.properties については、[ 運用ガイド < 6. コンフィグレーション < 6.2.6. 認証の設定]を、SSOConfiguration.properties については、[ 運用ガイド < 6. コンフィグレーション < 6.2.7. 認証委譲機能の設定]をご参照下さい。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/SSOConfiguration.properties |
# SSOConfiguration.properties [Configuration] # # SSO LoginFilter Class (default: 'com.nec.webotx.portal.login.sso.filter.SecureMasterLoginFilter') # - for WebSAM/SECUREMASTER # com.nec.webotx.portal.login.sso.filter.SecureMasterLoginFilter # - for MS/Active Directory # com.nec.webotx.portal.login.sso.filter.ActiveDirectoryLoginFilter # sso.filter.class=com.nec.webotx.portal.login.sso.filter.ActiveDirectoryLoginFilter # if only for WebSAM/SECUREMASTER # The HTTP header name or HTTP request parameter name # with which WebOTX Portal receives uid # (default: 'X-UID') # i.e. ATTR value of WebSAM/SECUREMASTER Configuration file (sm_acpi_conf.xml) # # sso.uid.key=X-UID # # WebSAM/SECUREMASTER Logout URL # if specified, when we logout from WebOTX Portal, # also logout from WebSAM/SECUREMASTER. # # sso.logout.uri=https://example.co.jp/AuthServer/Logout
sso.filter.classプロパティに「com.nec.webotx.portal.login.sso.filter.ActiveDirectoryLoginFilter」を指定して下さい。
WebOTXの運用管理コマンド(otxadmin)を実行し、WebOTX PortalがActive Directory認証情報を受け取れるようにします。
WebOTX Portalが動作しているWebOTX ASにおいて、以下のコマンドを実行して下さい。
otxadmin> set server.network-config.protocols.protocol.ajp-listener.http.property.otxAuthentication=false
本設定を行うことで、WebOTX PortalがWebサーバ(Internet Information Services)から、Active Directory認証の結果(ユーザID)を取得することが可能になります。
設定ファイル(PortalConfiguration.properties)を変更し、WebOTX Portalログアウト時の動作を変更します。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/PortalConfiguration.properties |
# PortalConfiguration.properties
[Configuration]
# Login Page URI (default: '${APP_CONTEXT}/login')
# com.nec.webotx.portal.authentication.page.login.uri =
# com.nec.webotx.portal.authentication.XXX.page.login.uri =
# post Logout URI (default: Login Page URI)
com.nec.webotx.portal.authentication.post.logout.uri = /webotxportal/ssoLogout.jsp
# com.nec.webotx.portal.authentication.XXX.post.logout.uri =
# ChangePassword URI
# com.nec.webotx.portal.authentication.XXX.page.changepassword.uri =
# filter ignore suffixes (default: none)
# com.nec.webotx.portal.authentication.filter.ignore.suffixes = .js, .css, .png, .gif, .jpg
上記設定ファイルにおいて、post.logout.uriプロパティに「/webotxportal/ssoLogout.jsp」を設定して下さい。
Memo
PortalConfiguration.properties については、[ 運用ガイド < 6. コンフィグレーション < 6.2.6. 認証の設定]をご参照下さい。
WebOTX Portalを再起動後に、Active Directory認証委譲機能の動作確認を行います。
WebOTX Portalではマルチテナントモードで運用する場合において、会社毎にログイン画面とパスワード変更画面を設定することが出来ます。本章ではその手順について説明します。
ここでは、自社用のログイン画面を設定する場合の手順について説明します。
WebOTX Portal で提供しているサンプルのログイン画面をコピーし、自社用のログイン画面のJSPファイルを作成して下さい(他の会社のJSPファイル名と重複しない限りファイル名は任意です)。
サンプルのログイン画面は以下の場所に格納されています。
その上でJSPファイル内の会社ID部分を自社用のものに書き換えて下さい。また、ロゴやレイアウト等の画面デザインを変更して下さい。
| ファイルパス | ${AS_INSTALL}/Portal/webapps/webotx-portal/pages/samples/loginForMulticompany.jsp |
<%@ page language="java"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 会社IDを変更してください。
String companyID = "000001";
%>
<html>
<head>
<title>Login Page</title>
<script type="text/javascript">
// *** 変更不可 ***
function checkInput() {
var userID = document.forms[0].ID.value;
var password = document.forms[0].password.value;
ifPass = false;
var info = '';
if (userID == '') {
info = info +
'NO userID\r\n';
alert(info);
} else {
ifPass = true ;
document.forms[0].userID.value = "<%=companyID%>" + userID;
document.forms[0].action = '/webotxportal/session/user';
}
return ifPass;
}
// *** 変更不可 ***
function setClientTimeZoneOffset() {
var date = new Date();
var intMsecPerMinute = 60000;
var intOffset = date.getTimezoneOffset();
document.forms[0].timeZoneOffset.value = -intOffset * intMsecPerMinute;
return true;
}
</script>
</head>
<!-- form/input タグ以外を編集してください. -->
<body bgColor="#ffffff" onload="setClientTimeZoneOffset()">
<h2>マルチカンパニー用(会社ID: 000001). ログインID部分だけ入力して下さい.</h2>
<form action="login.do" method="POST">
<input type="hidden" name="userID" value="">
<input type="hidden" name="timeZoneOffset" value="">
<input type="hidden" name="locale" value="<%=request.getLocale().toString()%>">
<%
String errorURI = request.getRequestURI();
String queryStr = request.getQueryString();
if (queryStr != null) {
errorURI = errorURI + "?" + queryStr;
}
%>
<input type="hidden" name="errorURI" value="<%=errorURI%>">
<p>
ID: <input type="text" name="ID" value="">
</p>
<p>
PW: <input type="password" name="password" value="">
</p>
<p>
<input type="submit" value="LOGIN" onclick="return checkInput()">
</p>
</form>
</body>
</html>
※太字は変更可能箇所
上記サンプルにおいて、String companyID = "000001"; の 000001 の箇所を自社の会社IDに変更して下さい。さらに <body> タグ以降でロゴ画像を追加したりレイアウト等の変更を行って下さい。スクリプトレット(<%〜%>の部分)、および <form>タグ、<input>タグ部分ついては変更しないで下さい。
1. で作成した自社用のログイン画面のJSPファイルを WebOTX Portal 配下の以下の場所に配置して下さい。
| 配置先 | ${AS_INSTALL}/Portal/webapps/webotx-portal/pages/ |
上記の場所に配置することにより、Webブラウザから以下のURLで自社用のログイン画面(JSPファイル)にアクセスすることが出来るようになります。
URL http://<サーバ名>:<ポート番号>/webotxportal/pages/JSPファイル名
例:http://192.168.1.1/webotxportal/pages/MyCompanyLogin.jsp
2. で配置した自社用のログイン画面のJSPファイルのURLをWebOTX Portalの設定ファイル(PortalConfiguration.properties)に設定して下さい。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/PortalConfiguration.properties |
# PortalConfiguration.properties
[Configuration]
# Login Page URI (default: '${APP_CONTEXT}/login')
# com.nec.webotx.portal.authentication.page.login.uri =
com.nec.webotx.portal.authentication.XXX.page.login.uri = 会社「XXX」用のログイン画面(JSP)のURL
# post Logout URI (default: Login Page URI)
com.nec.webotx.portal.authentication.post.logout.uri = /webotxportal/ssoLogout.jsp
# com.nec.webotx.portal.authentication.XXX.post.logout.uri =
# ChangePassword URI
# com.nec.webotx.portal.authentication.XXX.page.changepassword.uri =
# filter ignore suffixes (default: none)
# com.nec.webotx.portal.authentication.filter.ignore.suffixes = .js, .css, .png, .gif, .jpg
上記設定ファイルにおいて、com.nec.webotx.portal.authentication.XXX.page.login.uri プロパティに 2. で配置した自社用のログイン画面のJSPファイルのURLを設定して下さい。XXXの箇所は「会社ID」になります。
例えば、会社IDが「000001」で、その会社のログイン画面のJSPファイルの URL が「http://192.168.1.1/webotxportal/pages/MyCompanyLogin.jsp」の場合、「com.nec.webotx.portal.authentication.000001.page.login.uri = /webotxportal/pages/MyCompanyLogin.jsp」というように設定して下さい(URLのホスト部分とポート番号部分は指定不要です)。
WebOTXドメインの再起動(Advancedモードの場合はプロセスグループの再起動)後に、動作確認を行います。
ここでは、自社用のパスワード変更画面を設定する場合の手順について説明します。
WebOTX Portal で提供しているサンプルのパスワード変更画面をコピーし、自社用のパスワード変更画面のJSPファイルを作成して下さい(他の会社のJSPファイル名と重複しない限りファイル名は任意です)。
サンプルのパスワード変更画面は以下の場所に格納されています。
その上でJSPファイル内の会社ID部分を自社用のものに書き換えて下さい。また、ロゴやレイアウト等の画面デザインを変更して下さい。
| ファイルパス | ${AS_INSTALL}/Portal/webapps/webotx-portal/pages/samples/changePasswordForMultiCompany.jsp |
<%@ page language="java"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.HttpSession" %>
<%@ page import="com.nec.webotx.portal.login.TokenSession" %>
<%@ page import="com.nec.webotx.portal.common.session.client.Session" %>
<%
// 会社IDを変更してください。
String companyID = "000001";
%>
<html>
<head>
<title>Change Password Page</title>
<script type="text/javascript">
// *** 変更不可 ***
function checkInput() {
var oldpassword = document.forms[0].oldPassword.value;
var newpassword = document.forms[0].newPassword[0].value;
var confirm_newpassword = document.forms[0].newPassword[1].value;
var userID = document.forms[0].userID[0].value;
var ifPass = false;
var info = '' ;
if (userID == '') {
info = 'ユーザIDが入力されていません';
} else if (oldpassword == '') {
info = '現在のパスワードが入力されていません';
} else if (newpassword == '') {
info = '新しいパスワードが入力されていません';
} else if (newpassword != confirm_newpassword) {
info = '新しいパスワードの入力値と新しいパスワードの入力値が一致しません';
}
if (info != '') {
alert(info);
} else {
ifPass = true;
document.forms[0].userID[0].value = "<%=companyID%>" + userID;
document.forms[0].action = '/webotxportal/session/user/password';
}
return ifPass;
}
</script>
</head>
<!-- form/input タグ以外を編集してください. -->
<body bgColor="#ffffff">
<h2>マルチカンパニー用(会社ID: 000001). ログインID部分だけ入力して下さい.</h2>
<p>
<form action="changePassword.do" method="POST">
<!--<input type="hidden" name="onSession" value="true" />-->
<%
String errorURI = request.getRequestURI();
String queryStr = request.getQueryString();
if (queryStr != null) {
errorURI = errorURI + "?" + queryStr;
}
%>
<input type="hidden" name="errorURI" value="<%=errorURI%>">
<input type="hidden" name="serviceURI" value="/webotxportal/html/ja/changePasswordOnCompleted.html">
<%
// *** 変更不可 ***
String userID = null;
HttpSession httpSession = request.getSession();
if (httpSession != null) {
Session token = TokenSession.getToken(httpSession);
if (token != null) {
String userIDWithCompanyID = token.getUserID();
if (userIDWithCompanyID != null &&
userIDWithCompanyID.length() >= companyID.length()) {
userID = userIDWithCompanyID.substring(companyID.length());
}
}
}
%>
<p>
ユーザID:
<%
if(userID != null) {
%>
<input type="hidden" name="userID" value="<%=userID%>" />
<input type="text" name="userID" tabindex="1" disabled="true"
maxlength="32" value="<%=userID%>"/>
<%
} else {
%>
<input type="text" name="userID" tabindex="1"
maxlength="32" value=""/>
<%
}
%>
</p>
<p>
現在のパスワード:
<input type="password" name="oldPassword" value="" tabindex="2" maxlength="128"/>
</p>
<p>
新しいパスワード:
<input type="password" name="newPassword" value="" tabindex="3" maxlength="128"/>
</p>
<p>
新しいパスワードの確認:
<input type="password" name="newPassword" value="" tabindex="4" maxlength="128"/>
</p>
<p>
<input type="submit" onclick="return checkInput()" tabindex="5" style="width:50" value="OK" />
<input type="reset" tabindex="6" style="width:50" value="Reset" />
</p>
</form>
</body>
</html>
※太字は変更可能箇所
上記サンプルにおいて、String companyID = "000001"; の 000001 の箇所を自社の会社IDに変更して下さい。さらに <body> タグ以降でロゴ画像を追加したりレイアウト等の変更を行って下さい。スクリプトレット(<%〜%>の部分)、および <form>タグ、<input>タグ部分ついては変更しないで下さい。
1. で作成した自社用のパスワード変更画面のJSPファイルを WebOTX Portal 配下の以下の場所に配置して下さい。
| 配置先 | ${AS_INSTALL}/Portal/webapps/webotx-portal/pages/ |
上記の場所に配置することにより、Webブラウザから以下のURLで自社用のパスワード変更画面(JSPファイル)にアクセスすることが出来るようになります。
URL http://<サーバ名>:<ポート番号>/webotxportal/pages/JSPファイル名
例:http://192.168.1.1/webotxportal/pages/MyCompanyChangePassword.jsp
2. で配置した自社用のパスワード変更画面のJSPファイルのURLをWebOTX Portalの設定ファイル(PortalConfiguration.properties)に設定して下さい。
| ファイルパス | ${WEBOTX_INSTANCE_ROOT}/config/portal/authentication/PortalConfiguration.properties |
# PortalConfiguration.properties
[Configuration]
# Login Page URI (default: '${APP_CONTEXT}/login')
# com.nec.webotx.portal.authentication.page.login.uri =
# com.nec.webotx.portal.authentication.XXX.page.login.uri =
# post Logout URI (default: Login Page URI)
com.nec.webotx.portal.authentication.post.logout.uri = /webotxportal/ssoLogout.jsp
# com.nec.webotx.portal.authentication.XXX.post.logout.uri =
# ChangePassword URI
com.nec.webotx.portal.authentication.XXX.page.changepassword.uri = 会社「XXX」用のパスワード変更画面(JSP)のURL
# filter ignore suffixes (default: none)
# com.nec.webotx.portal.authentication.filter.ignore.suffixes = .js, .css, .png, .gif, .jpg
上記設定ファイルにおいて、com.nec.webotx.portal.authentication.XXX.page.changepassword.uri プロパティに 2. で配置した自社用のパスワード変更画面のJSPファイルのURLを設定して下さい。XXXの箇所は「会社ID」になります。
例えば、会社IDが「000001」で、その会社のログイン画面のJSPファイルの URL が「http://192.168.1.1/webotxportal/pages/MyCompanyChangePassword.jsp」の場合、「com.nec.webotx.portal.authentication.000001.page.changepassword.uri = /webotxportal/pages/MyCompanyChangePassword.jsp」というように設定して下さい(URLのホスト部分とポート番号部分は指定不要です)。
WebOTXドメインの再起動(Advancedモードの場合はプロセスグループの再起動)後に、動作確認を行います。
分散キャッシュ利用時に、更新通知に利用するJMSサーバの障害などにより、分散キャッシュ機能が無効になった場合の影響と、復旧方法について説明します。
ここでは、分散キャッシュの設定状況と、障害発生箇所に分けて説明を記載しています。ご利用の設定と、発生している障害の状況により、該当するものを参照してください。
ここでは、JMSサーバクラスタを利用していない環境における復旧方法について説明します。
ここでは、分散キャッシュの更新通知で利用しているJMSサーバに障害が発生した場合の復旧方法を説明します。
JMSサーバクラスタを利用していないときに、更新通知に利用するJMSサーバに障害が発生した場合、分散システム内のすべてのドメインで分散キャッシュ機能は利用できなくなり、キャッシュの不整合が発生します(図7.4.1.1-1(2))。

図7.4.1.1-1
JMSサーバのプロセス停止など、JMSサーバのみに障害が発生し、JMSサーバの再起動により復旧が可能な場合は、 JMSサーバ復旧後、すべてのドメインにおいて、キャッシュ機能有効化操作と、キャッシュクリア操作を行うことにより、分散キャッシュ機能を復旧します。

図7.4.1.1-2
キャッシュ機能有効化操作と、キャッシュクリア操作のコマンドは次のとおりです。永続ユニット名(デフォルト:unit_001)は、環境に合わせて変更してください。
otxadmin > invoke server.portal.portal-storage.enableCache otxadmin > invoke server.portal.portal-storage.clearCache unit_001
これまで接続していたJMSサーバを変更して、正常稼動しているJMSサーバに接続することで分散キャッシュを復旧するための手順です。
更新通知に利用するJMSサーバを1つ決定し、分散キャッシュ関連の設定を行います。その後、コネクションファクトリリソースの設定で、接続先のJMSサーバを変更します(図7.4.1.1.2-1(1))。変更後、すべてのドメインにおいて、キャッシュ機能有効化操作と、キャッシュクリア操作を行うことにより、分散キャッシュ機能を復旧します(図7.4.1.1.2-1(2))。

図7.4.1.1-3
更新通知用のJMSサーバに対する分散キャッシュの設定方法については、[ 運用ガイド > 6. コンフィグレーション > 6.3. 分散キャッシュの利用 > 6.3.1. 分散キャッシュ利用設定 > 6.3.1.1. JMSサーバクラスタ利用なし ]を参照してください。
接続先のJMSサーバの変更方法は次のとおりです。1つのドメインには、分散キャッシュで利用するコネクションファクトリリソースが2つ存在しますので、2つとも変更する必要があります。
otxadmin> set server.resources.jms-resource.jms-connection-factory.<JNDI名>.wojmsBrokerHostName=localhost例) コネクションファクトリリソース名が、jms/portalTCF(TopicConnectionFactory)、jms/portalQCF(QueueConnectionFactory)であるコネクションファクトリリソースの接続先をhost1にする場合
otxadmin> set server.resources.jms-resource.jms-connection-factory.jms/portalTCF.wojmsBrokerHostName=host1 otxadmin> set server.resources.jms-resource.jms-connection-factory.jms/portalQCF.wojmsBrokerHostName=host1
キャッシュ機能有効化操作と、キャッシュクリア操作のコマンドは次のとおりです。永続ユニット名(デフォルト:unit_001)は、環境に合わせて変更してください。
otxadmin > invoke server.portal.portal-storage.enableCache otxadmin > invoke server.portal.portal-storage.clearCache unit_001
ドメイン再起動によりJMSサーバが復旧した後も、分散キャッシュは復旧していないため、キャッシュの不整合が発生したままの状態です(図7.4.1.1.3-1(1))。この場合、再起動を行っていないすべてのドメインで、キャッシュ機能有効化操作と、キャッシュクリア操作を行うことにより、分散キャッシュ機能を復旧します(図7.4.1.1.3-1(2))。

図7.4.1.1-4
キャッシュ機能有効化操作と、キャッシュクリア操作のコマンドは次のとおりです。永続ユニット名(デフォルト:unit_001)は、環境に合わせて変更してください。
otxadmin > invoke server.portal.portal-storage.enableCache otxadmin > invoke server.portal.portal-storage.clearCache unit_001
JMSサーバクラスタを利用していないときに、更新通知に利用するJMSサーバが動作するドメインに障害が発生した場合、分散システム内のすべてのドメインで分散キャッシュ機能は利用できなくなり、キャッシュの不整合が発生します(図7.4.1.2.1-1(2))。

図7.4.1.2-1
ドメイン再起動によりJMSサーバが復旧した後も、分散キャッシュは復旧していないため、キャッシュの不整合が発生したままの状態です(図7.4.1.2.1-2(1))。この場合、再起動を行っていないすべてのドメインで、キャッシュ機能有効化操作と、キャッシュクリア操作を行うことにより、分散キャッシュ機能を復旧します(図7.4.1.2.1-2(2))。

図7.4.1.2-2
キャッシュ機能有効化操作と、キャッシュクリア操作のコマンドは次のとおりです。永続ユニット名(デフォルト:unit_001)は、環境に合わせて変更してください。
otxadmin > invoke server.portal.portal-storage.enableCache otxadmin > invoke server.portal.portal-storage.clearCache unit_001
JMSクライアントに相当するドメインに障害が発生した場合、分散キャッシュには影響はありません(図7.4.1.2.2-1(1))。

図7.4.1.2-3
障害が発生していたドメインの再起動により、当該ドメインの分散キャッシュ機能を復旧します(図7.4.1.2.2-2)。

図7.4.1.2-4
更新通知に利用するJMSサーバが動作するドメインのプロセスグループに障害が発生した場合、分散キャッシュ機能には影響はありません(図7.4.1.3.1-1(2))。

図7.4.1.3-1
当該プロセスグループの再起動により、そのプロセスグループの分散キャッシュ機能を復旧します(図7.4.1.3.1-1(3))。

図7.4.1.3-2
プロセスグループに障害が発生した場合、分散キャッシュ機能には影響はありません(図7.4.1.3.2-1(2))。

図7.4.1.3-3
当該プロセスグループの再起動により、そのプロセスグループの分散キャッシュ機能を復旧します(図7.4.1.3.2-2(3))。

図7.4.1.3-4
ここでは、分散キャッシュでJMSサーバクラスタを利用する環境における復旧方法について説明します。
ここでは、分散キャッシュの更新通知で利用しているJMSサーバに障害が発生した場合の復旧手順を説明します。
JMSサーバクラスタ利用時に、あるJMSサーバに障害が発生した場合、そのJMSサーバに接続していたドメインの分散キャッシュは利用できなくなります。ただし、障害の発生していないドメインには影響しませんので、それらのドメインの分散キャッシュは正常に動作します(図7.4.2.1-1(2))。

図7.4.2.1-1
JMSサーバの再起動を行うとJMSサーバ間の接続が行われ、JMSサーバクラスタが復旧します。 ただし、この状態では、再起動を行ったJMSサーバを接続先としていた分散キャッシュは復旧していないため、キャッシュの不整合が発生したままの状態です(図7.4.2.1.1-1(1))。 JMSサーバクラスタ復旧後、障害が発生していたJMSサーバが存在するドメインでキャッシュ機能有効化操作を実行します。その後、すべてのドメインにおいてキャッシュクリア操作を行うことにより、分散キャッシュ機能を復旧します(図7.4.2.1.1-1(2))。

図7.4.2.1-2
キャッシュ機能有効化操作のコマンドは次のとおりです。障害が発生していたJMSサーバが存在するドメインに対してコマンドを実行します。
otxadmin > invoke server.portal.portal-storage.enableCache
キャッシュクリア操作のコマンドは次のとおりです。すべてのドメインで実行します。永続ユニット名(デフォルト:unit_001)は、環境に合わせて変更してください。
otxadmin > invoke server.portal.portal-storage.clearCache unit_001
これまで接続していたJMSサーバを変更して、正常稼動しているJMSサーバに接続することで分散キャッシュを復旧するための手順です。
コネクションファクトリリソースの設定で接続先のJMSサーバを変更し(図7.4.2.1.2-1(1))、接続先を変更したドメインにおいて、キャッシュ機能有効化操作と、キャッシュクリア操作を行うことにより、分散キャッシュ機能を復旧します(図7.4.2.1.2-1(2))。

図7.4.2.1-3
接続先のJMSサーバの変更方法は次のとおりです。1つのドメインには、分散キャッシュで利用するコネクションファクトリリソースが2つ存在しますので、2つとも変更する必要があります。
otxadmin> set server.resources.jms-resource.jms-connection-factory.<JNDI名>.wojmsBrokerHostName=localhost例) コネクションファクトリリソース名が、jms/portalTCF(TopicConnectionFactory)、jms/portalQCF(QueueConnectionFactory)であるコネクションファクトリリソースの接続先をhost1にする場合
otxadmin> set server.resources.jms-resource.jms-connection-factory.jms/portalTCF.wojmsBrokerHostName=host1 otxadmin> set server.resources.jms-resource.jms-connection-factory.jms/portalQCF.wojmsBrokerHostName=host1
キャッシュ機能有効化操作のコマンドは次のとおりです。接続先を変更したコネクションファクトリリソースが存在するドメインに対してコマンドを実行します。
otxadmin > invoke server.portal.portal-storage.enableCache
キャッシュクリア操作のコマンドは次のとおりです。すべてのドメインで実行します。永続ユニット名(デフォルト:unit_001)は、環境に合わせて変更してください。
otxadmin > invoke server.portal.portal-storage.clearCache unit_001
障害が発生したJMSサーバの存在するドメインを再起動することにより、JMSサーバクラスタ、および、分散キャッシュ機能を復旧します(図7.4.2.1.3-1(1))。

図7.4.2.1-4
ドメインに障害が発生した場合の復旧手順です。
JMSサーバクラスタ利用時に、あるドメインに障害が発生した場合、障害の発生していないドメインには影響しませんので、それらのドメインの分散キャッシュは正常に動作します(図7.4.2.2-1(2))。

図7.4.2.2-1
この場合、当該ドメインの再起動により、JMSサーバクラスタ、および、分散キャッシュ機能を復旧します(図7.4.2.2-2(1))。

図7.4.2.2-2
プロセスグループに障害が発生した場合、分散キャッシュ機能には影響はありません(図7.4.2.3-1(2))。

図7.4.2.3-1
当該プロセスグループの再起動により、そのプロセスグループの分散キャッシュ機能を復旧します(図7.4.1.3.1-1(3))。

図7.4.2.3-2
ログインポートレットでは、EDSから取得した退職者・休職者のロール情報を一時的にキャッシュしています。 キャッシュは、WebOTX Portalが動作しているサーバの日付が変わった時に自動的にクリアされるようになっていますが、 何らかの特別な理由によりEDSの最新のロール情報をすぐに反映しなければならないケースに備えて、 手動でキャッシュをクリアする手段が提供されています。
キャッシュクリアの手順を以下に示します。
otxadmin > login --user <管理ユーザ名> --password <管理ユーザパスワード> --port <管理ポート番号>
otxadmin > invoke server.portal.clearLoginPortletCache