1. はじめに
本メニューでは、IdPとSPを共にカスタマイズします。本メニューでは、IdPサーバとSPサーバを共にカスタマイズします。
また、ユーザ情報(LDAP)も操作します。
内容としては、独自の属性をSPサーバに送信し、SPサーバのWebアプリケーション側で受信した属性値を使った制御を行います。内容としては、独自の属性をSPに送信し、SPのWebアプリケーション側で受信した属性値を使った制御を行います。
実習セミナーでは、属性受信の確認ページをWebアプリケーションとし、独自に追加したshadowExpire属性で制御します。(有効期限を使った制御)
...
パネル | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||
以下は、test001ユーザに3日前の日付、test002ユーザに3日後の日付を設定するldifファイルです。
dn: uid=test001,ou=Test Unit1,o=test_o,dc=ac,c=JP changetype: modify add: objectClass objectClass: shadowAccount - add: shadowExpire shadowExpire:
|
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
<SP側の設定>
・shadowExpireのマッピング設定を追加
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
手順書に従って、作業を行ってください。 |
・属性受信の確認ページのサンプルコード
SPサーバ:SP:/var/www/html/secure/index.phpに二つのPHP文を追加してください。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
<html> <head> ↓ヘッダに下のphp部分を追加する <?php header("Expires: Dec, 20 Jul 2010 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); ?> (中略) <?php $nowt = time(); $strNow = date("Y年m月d日", $nowt); if (!empty($_SERVER['shadowExpire'])) { $expt = intval($_SERVER['shadowExpire'])*60*60*24; $strExp = date("Y年m月d日", $expt); $zant = $expt - $nowt; $zand = floor($zant/60/60/24); print "<div style=\"position: relative; top: 85px;\">"; print "<h1>現在:$strNow ,"; print "期限:$strExp ,"; print "残日数:".intval($zand+2)."日間</h1>"; print "</div>"; if ($zand < 0) { $errmsg = "有効期限を".intval(($zand+1)*-1)."日過ぎています。"; header("HTTP/1.1 301 Moved Permanently"); header("Location: https://ex-sp-testXX.ecloud.nii.ac.jp/secure/error.php?exp=".$strExp."&errmsg=".$errmsg); ↑各自SPサーバのホスト名//↑各自SPのホスト名 exit(); } } ?> ↑mainテーブルの前に上のphp部分を追加する <table id="main" cellspacing="0" class="chart"> (中略) |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
・有効期限切れエラーページのサンプルコード
SPサーバ:SP:/var/www/html/secure/error.phpを作成します。
※有効期限が切れたユーザでアクセスすると、このエラーページが表示されます。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
<?php
print "<html>";
print "<head>";
print " <meta <html> "Content-Type \" content= \"text/html; charset=utf-8 \"> "; print " <title>有効期限切れエラー</title>"; print "
?><br> ?><br>
|
...
3. 手順書
下記の手順書を参照し、作業を行います。
※上述の通りshadowExpire属性を対象とし、各種設定値に置き換える事を忘れないようにしてください。
...
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
・IdPサーバ・IdP service tomcat6 restart ・SPサーバ・SP service shibd restart |
② 各自が使用するSPサーバの接続確認用ページにアクセスします。
パネル | ||||||
---|---|---|---|---|---|---|
| ||||||
例)1番を割り振られた場合
https://ex-sp-test01.ecloud.nii.ac.jp/ |
③ ログインボタンをクリックします。
④ DSサーバの所属機関の選択画面が表示されるので、各自が使用するIdPサーバを選択します。DSの所属機関の選択画面が表示されるので、各自が使用するIdPを選択します。
⑤ IdPサーバのログイン画面が表示されるので、UsernameIdPのログイン画面が表示されるので、Username/Passwordを入力して認証を行います。
※test001:有効期限切れ、test002:有効期限内、test003:有効期限なし
※FPSPの導入によって、ユーザtest001,test002,test003に対するアクセス制限が存在する場合、
${CATALINA_HOME}/webapps/idp/WEB-INF/web.xml内SampleFilterPerSPの設定をコメント
アウトして、tomcatを再起動してください。
...