コード コード コード
「ログイン」および「パスワードの変更」ページのURLでは、ページが適切に動作するため に、以降の表に示すパラメータを受け入れる必要があります。
この項の項目は次のとおりです。
■ 「ログイン」ページのエラー・コード
■ 「パスワードの変更」ページのエラー・コード
「ログイン」ページのエラー・コード
「ログイン」ページのエラー・コード
「ログイン」ページのエラー・コード
「ログイン」ページのエラー・コード
カスタマイズしたログイン・ページでは、表8-6に示すエラー・コードを処理する必要があ ります。
表表
表表8-6 カスタマイズした「ログイン」ページのエラー・コードカスタマイズした「ログイン」ページのエラー・コードカスタマイズした「ログイン」ページのエラー・コードカスタマイズした「ログイン」ページのエラー・コード p_error_codeの値の値の値の値 対応するエラー対応するエラー対応するエラー対応するエラー
acct_ip_lock_err このIPアドレスからのログインに複数回失敗したため、
ユーザーがロックアウトされた。
acct_lock_err 任意のIPアドレスからのログインに複数回失敗したため、
ユーザーがグローバルにロックアウトされた。
null_uname_pwd_err ユーザー名が入力されていない。
no_papp_err パートナ・アプリケーションの設定が見つからないか、有
効期限を過ぎている。
ssl_not_used_err SSLが使用されていない。
ls_config_not_found_err Single Sign-On Serverの設定が見つからない。
cookies_disabled_err ブラウザがCookieを受け付けない。
auth_fail_exception 認証に失敗した。
account_deactivated_err アカウントが失効している。
value_error_exception site2pstoretokenに無効な値が指定されている。
null_password_err パスワードが入力されていない。
ext_auth_unknown_err 外部認証メカニズムへのアクセス中に不明なエラーが発生
した。
ext_auth_setup_err 外部認証メカニズムの設定にエラーが存在する。
「ログイン」および「パスワードの変更」ページのエラー・コード
「パスワードの変更」ページのエラー・コード
「パスワードの変更」ページのエラー・コード
「パスワードの変更」ページのエラー・コード
「パスワードの変更」ページのエラー・コード
カスタマイズした「パスワードの変更」ページでは、表8-7に示すエラー・コードを処理す る必要があります。
sso_cookie_expired_err ログインCookieの有効期限が過ぎている。 再度ログインす
る必要がある。
unexpected_exception 認証時に予期しないエラーが発生した。
表 表 表
表8-7「パスワードの変更」ページのエラー・コード「パスワードの変更」ページのエラー・コード「パスワードの変更」ページのエラー・コード「パスワードの変更」ページのエラー・コード p_error_codeの値の値の値の値 対応するエラー対応するエラー対応するエラー対応するエラー
null_old_pwd_err 古いパスワードが入力されていない。
null_new_pwd_err 新しいパスワードが入力されていない。
confirm_pwd_fail_txt 新しいパスワードの確認入力が新しいパスワードと一致していな
い。
auth_fail_err 入力された古いパスワードが無効である。
pwd_rule_err 入力された新しいパスワードが、Single Sign-On Serverのパス
ワード要件を満たしていない。
invalid_auth_mode_err 現行の認証メカニズムでは、このパスワードの変更操作がサポー
トされていない。
ext_not_supported_err この外部リポジトリは、サポートされていない。
ext_change_pwd_err パスワードの変更操作が外部リポジトリ上で失敗した。
pwd_expired_err パスワードの有効期限が過ぎている。
pwd_needs_change_err パスワードの有効期限が近い。ただし、ログインは許可される。
表表
表表8-6 カスタマイズした「ログイン」ページのエラー・コードカスタマイズした「ログイン」ページのエラー・コードカスタマイズした「ログイン」ページのエラー・コードカスタマイズした「ログイン」ページのエラー・コード(続き続き続き続き) p_error_codeの値の値の値の値 対応するエラー対応するエラー対応するエラー対応するエラー
カスタマイズしたページのサンプル
カスタマイズしたページのサンプル カスタマイズしたページのサンプル カスタマイズしたページのサンプル カスタマイズしたページのサンプル
この項には、Single Sign-Onの標準の「ログイン」、「パスワードの変更」および「シング ル・サインオフ」ページをJSPとして作り直す場合の例を示します。ここに示すサンプルは、
企業のニーズにあわせてこれらのページをカスタマイズするときの基本になります。
次の3つのサンプルを示します。
■ 「ログイン」ページのサンプル
■ 「パスワードの変更」ページのサンプル
■ 「シングル・サインオフ」ページのサンプル
「ログイン」ページのサンプル
「ログイン」ページのサンプル
「ログイン」ページのサンプル
「ログイン」ページのサンプル
<html>
<body bgcolor="white">
<%@ page buffer="5" autoFlush="true" %>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 2000 17:04:19 GMT");
try {
String str_token = request.getParameterValues("site2pstoretoken")[0];
String str_user = request.getParameterValues("ssousername")[0];
String str_err = request.getParameterValues("p_error_code")[0];
String str_cancel = request.getParameterValues("p_cancel_url")[0];
String str_submit = request.getParameterValues("p_submit_url")[0];
out.println("<center><h1>Single Sign-On Login</h1><p>");
out.println("<form method='post' action='"+str_submit+"'>");
out.println("<INPUT TYPE='hidden' NAME='site2pstoretoken'");
out.println(" value='"+str_token+"'>");
out.println("<table border=0>");
if((str_err != null) && (str_err.length() > 1)) {
out.println("<tr>");
out.println("<td>");
out.println("<font color='red'>ERROR:</font>");
out.println("</td>");
out.println("<td>");
カスタマイズしたページのサンプル
out.println("</tr>");
}
out.println("<tr>");
out.println("<td>");
out.println("User Name:");
out.println("</td>");
out.println("<td>");
out.println("<INPUT TYPE='text' NAME='ssousername'>");
out.println("</td>");
out.println("<tr>");
out.println("<tr>");
out.println("<td>");
out.println("Password");
out.println("</td>");
out.println("<td>");
out.println("<INPUT TYPE='password' NAME='password'>");
out.println("</td>");
out.println("<tr>");
out.println("<tr>");
out.println("<td>");
out.println("<INPUT TYPE='submit' VALUE='Login'>");
out.println("<INPUT TYPE='button' NAME='p_request' VALUE='Cancel' ");
out.println(" onClick='javascript:document.location.href = '"+str_
cancel+"’;'>");
out.println("<td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
}
catch(Exception e) {
out.println("<h2><center><font color='red'>ERROR:</font>");
out.println("This page can not be accessed directly!</center></h2>");
}
%>
</body>
</html>
カスタマイズしたページのサンプル
「パスワードの変更」ページのサンプル
「パスワードの変更」ページのサンプル
「パスワードの変更」ページのサンプル
「パスワードの変更」ページのサンプル
<html>
<body bgcolor="white">
<%@ page buffer="5" autoFlush="true" %>
<%
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 2000 17:04:19 GMT");
%>
<script language="JavaScript">
<!--function button1submit() {
document.ChangePassword.p_action.value = "OK";
document.ChangePassword.submit();
}
function button2submit() {
document.ChangePassword.p_action.value = "CANCEL";
document.ChangePassword.submit();
} //-->"
</script>
<%
try {
String str_token = request.getParameterValues("site2pstoretoken")[0];
String str_user = request.getParameterValues("p_username")[0];
String str_pwd = request.getParameterValues("p_password")[0];
String str_err = request.getParameterValues("p_error_code")[0];
String str_done = request.getParameterValues("p_done_url")[0];
String str_submit = request.getParameterValues("p_submit_url")[0];
String str_pwd_exp = request.getParameterValues("p_pwd_is_exp")[0];
out.println("<center><h1>Single Sign-On Change Password</h1><p>");
out.println("<form method='post' name='ChangePassword' action='"+str_
submit+"'>");
out.println("<INPUT TYPE='hidden' NAME='p_username' value='"+ str_user +"'>");
カスタマイズしたページのサンプル
out.println("<INPUT TYPE='hidden' NAME='p_done_url' value='"+ str_done +"'>");
out.println("<INPUT TYPE='hidden' NAME='p_pwd_is_exp' value='"+ str_pwd_exp +"'>");
out.println("<INPUT TYPE='hidden' NAME='p_password' value='"+ str_pwd +"'>");
out.println("<INPUT TYPE='hidden' NAME='p_request' value=''>");
out.println("<INPUT TYPE='hidden' NAME='p_action' value=''>");
out.println("<table border=0>");
if((str_err != null) && (str_err.length() > 1)) {
out.println("<tr>");
out.println("<td>");
out.println("<font color='red'>ERROR:</font>");
out.println("</td>");
out.println("<td>");
out.println(str_err);
out.println("</td>");
out.println("</tr>");
}
out.println("<tr>");
out.println("<td>");
out.println("User Name:");
out.println("</td>");
out.println("<td>");
out.println(str_user);
out.println("</td>");
out.println("<tr>");
out.println("<tr>");
out.println("<td>");
out.println("Old password:");
out.println("</td>");
out.println("<td>");
out.println("<INPUT TYPE='password' NAME='p_old_password'>");
out.println("</td>");
out.println("<tr>");
out.println("<tr>");
out.println("<td>");
out.println("New password:");
out.println("</td>");
out.println("<td>");
out.println("<INPUT TYPE='password' NAME='p_new_password'>");
out.println("</td>");
out.println("<tr>");
カスタマイズしたページのサンプル
out.println("<tr>");
out.println("<td>");
out.println("Confirm new password:");
out.println("</td>");
out.println("<td>");
out.println("<INPUT TYPE='password' NAME='p_new_password_confirm'>");
out.println("</td>");
out.println("<tr>");
out.println("<tr>");
out.println("<td>");
out.println("<INPUT TYPE='button' NAME='p_request' VALUE='OK' "
+" onClick='javascript:button1submit();'>");
out.println("<INPUT TYPE='button' NAME='p_request' VALUE='Cancel' "
+"onClick='javascript:button2submit();'>");
out.println("</td>");
out.println("<tr>");
out.println("</table");
out.println("</form>");
}
catch(Exception e) {
out.println("<h2><center><font color='red'>ERROR:</font>");
out.println("This page can not be accessed directly!</center></h2>");
}
%>
</body>
</html>
カスタマイズしたページのサンプル
「シングル・サインオフ」ページのサンプル
「シングル・サインオフ」ページのサンプル
「シングル・サインオフ」ページのサンプル
「シングル・サインオフ」ページのサンプル
<html>
<body bgcolor="white">
<%@ page buffer="5" autoFlush="true" %>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 1970 17:04:19 GMT");
String done_url = null;
int i = 0;
try {
done_url = request.getParameterValues("p_done_url")[0];
out.println("<center><h1>Single Sign-Off</h1><p>");
out.println("<table border=0>");
out.println("<tr>");
out.println("<th>Appliction Name</th>");
out.println("<th>Logout Status</th>");
out.println("</tr>");
for(;;) { i++;
String app_name = request.getParameterValues("p_app_name"+i)[0];
String url_name = request.getParameterValues("p_app_logout_url"+i)[0];
out.println("<tr>");
out.println("<td>"+app_name+"</td>");
out.println("<td><img src='" +url_name +"'></td>");
out.println("</tr>");
} }
catch(Exception e) {
if(i>1) {
out.println("</table>");
out.println("<br>");
out.println("<form><INPUT TYPE='button' "
+" NAME='p_request' VALUE='Return' ");
out.println(" onClick='javascript:document.location.href = '"
+ done_url +"’;'><form></center>");
}
カスタマイズしたページのサンプル
else {
out.println("<h2><center><font color='red'>ERROR:</font>");
out.println("This page can not be accessed directly!</center></h2>");
} }
%>
</body>
</html>
カスタマイズしたページのサンプル
索引 索引 索引 索引
B
Basic認証方式,2-11
D
dads.confファイル,2-18 構成パラメータ,4-7 例,4-7
DAS,「Delegated Administration Service」を参照 Delegated Administration Service,1-8
Delegated Administration Service(DAS),3-4 done_URL(シングル・サインオフ),5-8
G
GET認証方式,2-11
H
httpd.confファイル 構成パラメータ,4-5 例,4-6
HTTPアダプタ、携帯情報端末によるシングル・サイ ンオン,6-2
I
iASAdmins管理グループ,2-3 IPチェック,2-6
J
L
LDAPコマンドライン・ツール,3-4
M
mod_ossl,4-4 mod_osso
Single Sign-On SDKとの比較,1-3 外部アプリケーションのサポート,2-18 セッションCookie,1-5
定義,1-3 認証の流れ,1-5
mod_osso.confファイル,2-17 mod_plsql,4-7
N
National Language Support(NLS),2-15 Netegrity SiteMinder
インストールと配置,5-11 概要,5-6
コード例,5-9,5-11 NLS,2-15
O
ODM,「Oracle Directory Manager」を参照 OEM,「Oracle Enterprise Manager」を参照 Oracle Directory Manager,2-3
Oracle Directory Manager(ODM),2-3,3-4 Oracle Enterprise Manager
Single Sign-Onの監視用ホームページ,7-1
Oracle Internet Directory
Single Sign-Onでの役割,1-10,3-3
サード・パーティのシングル・サインオンにおける 役割,5-4
デジタル証明書に関する要件,4-14 Oracle9iAS Portal,1-6
外部アプリケーションのサポート,2-18
サード・パーティのシングル・サインオンにおける 役割,5-8
Oracle9iAS Single Sign-On SSL,2-17
外部アプリケーション,2-10,2-13 管理者,2-2~2-3
管理ページ,1-4
シングル・サインオフ,1-8
「シングル・サインオフ」ページ,8-6 スキーマ,1-4
ORASSO,2-2 ORASSO_DS,2-2 ORASSO_PA,2-2 ORASSO_PS,2-2 ORASSO_PUBLIC,2-2 設定,2-15
タイムアウト,1-9
ディレクトリ情報ツリー,3-7,3-8 ディレクトリ設定,3-9
トラブルシューティング,4-16 認証の流れ,1-5
パートナ・アプリケーション,2-7~2-10
「パートナ・アプリケーションの管理」ページ,2-7 パスワード,1-8,2-15
「パスワードの変更」ページ,8-4 ホームページ,1-4
ユーザー・アカウント,3-4,3-5 ユーザー属性,1-3
ユーザー・リポジトリ,1-10 利点,1-1
「ログイン」ページ,8-3
Oracle9iAS Single Sign-On Software Development Kit,
「Single Sign-On SDK」を参照 ORASSO_DSスキーマ,2-2 ORASSO_PAスキーマ,2-2 ORASSO_PSスキーマ,2-2 ORASSO_PUBLICスキーマ,2-2 ORASSOスキーマ,2-2
P
POST認証方式,2-11
S
Secure Sockets Layer,「SSL」を参照 Single Sign-On Cookie,1-6
Single Sign-On SDK,1-4 Single Sign-On Server
SSL用の設定,4-15 監視,7-2,7-3,7-4 監視用ホームページ,7-2
サード・パーティのシングル・サインオンにおける 役割,5-2
定義,1-2
ディレクトリ設定の構成,3-9 Single Sign-On管理者
権限の付与,2-3 任務,2-2
SiteMinderエージェント,5-6 SiteMinderポリシー・サーバー,5-6 SSL,2-17,4-5,4-6
ssocfg.sh(SSL構成スクリプト),4-15 ssodnmap.pkbファイル,4-8~4-10 ssodnmap.pksファイル,4-10~4-13 ssonete.sqlスクリプト,5-11 ssoxnete.pkb,5-9~5-11
「SSOサーバー管理」ページ,2-5
「SSOサーバーの編集」ページ,2-6
U
URLCトークン,3-5
W
WAP,「Wireless Access Protocol」を参照 Wireless
Single Sign-Onのリダイレクト・エージェント,6-3 機能,6-2
Wireless Access Protocol,6-2
Wireless deviceportal,「Wireless」を参照 Wireless Markup Language,6-2
WML,「Wireless Markup Language」を参照
あ あ あ あ
アカウント・ロックアウト,3-6
か か か か
外部アプリケーション 追加,2-10~2-13 定義,1-3 認証,1-7 認証方式
BASIC,2-11 GET,2-11 POST,2-11 編集,2-13 例,1-3 ログイン,2-14
「外部アプリケーションの管理」ページ,2-10 カスタマイズしたページのインストール,8-2 監視用ホームページ
アクセス,7-2 機能,7-2,7-3
管理ページ、アクセス,2-4
く く く く
グローバル・ユーザーの非アクティビティ・タイムア ウト
概要,1-9 設定,2-16
こ こ こ こ
「このアプリケーション用のログイン情報を記憶させ る」チェック・ボックス,1-3,2-14
さ さ さ さ
サード・パーティのシングル・サインオン コード例,5-9~5-11
スクリプト,5-11 認証の流れ,5-3,5-4 ログアウト,5-8
し し し し
シングル・サインオフ 概要,1-8
携帯情報端末,6-6
「シングル・サインオフ」ページ 携帯情報端末,6-6
ダイナミクス,8-6 パラメータ,8-10
「シングル・サインオフ」ページ、カスタマイズ カスタマイズしたページのインストール,8-2 ダイナミクス,8-6
例,8-18,8-19
シングル・サインオン・セッションのタイムアウト,
2-6
せ せ せ せ
成功URL,2-7
た た た た
タイムアウト
グローバル・ユーザーの非アクティビティ・タイム アウト,1-9,2-16
シングル・サインオン・セッションのタイムアウ ト,2-6
ち ち ち ち
地域の設定,2-6
て て て て
ディレクトリ・エントリ、Oracle Single Sign-On用,
3-7,3-8 デジタル証明書
設定
mod_plsql,4-7,4-8
Oracle HTTP Server(SSL),4-5~4-6 Oracle Internet Directory,4-14 Single Sign-On Server,4-15
ユーザー名マッピング・モジュール,4-8~4-13 トラブルシューティング,4-16
認証の流れ,4-3~4-4 メンテナンス,4-17 利点,4-2