このページの古いバージョンを表示しています。現在のバージョンを表示します。

現在のバージョンとの相違点 ページ履歴を表示

« 前のバージョン バージョン 3 次のバージョン »

1.はじめに

本メニューでは、IdPサーバとSPサーバを共にカスタマイズします。
また、ユーザ情報(LDAP)も操作します。
内容としては、独自の属性をSPサーバに送信し、
SPサーバのWebアプリケーション側で受信した属性値を使った制御を行います。
実習セミナーでは、属性受信の確認ページをWebアプリケーションとし、
独自に追加したshadowExpire属性で制御します。(有効期限を使った制御)



 2.実習セミナーでは

以下のような設定で行います。
手順書と照らし合わせながら、作業を進めてください。
 

<IdP側の設定>

 手順書内の「属性のリリース方法」を行います。

 ・独自属性としてshadowExpireを使用

Scheme: nis.schema
objectClass: shadowAccount

attributetype ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
        EQUALITY integerMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) 

shadowExpireを送信属性に追加

 

手順書に従って、作業を行ってください。

 

ユーザ情報にshadowExpireを追加

 

以下は、test001ユーザに3日前の日付、test002ユーザに3日後の日付を設定するldifファイルです。
※参考までに本日(2013/6/13) は、15869となります。


dn: uid=test001,ou=Test Unit1,o=test_o,dc=ac,c=JP
changetype: modify
add: objectClass
objectClass: shadowAccount
-
add: shadowExpire
shadowExpire: 15866 ←1970年1月1日からの日数(2013/6/10)


dn: uid=test002,ou=Test Unit2,o=test_o,dc=ac,c=JP
changetype: modify
add: objectClass
objectClass: shadowAccount
-
add: shadowExpire
shadowExpire: 15872 ←1970年1月1日からの日数(2013/6/16)


<SP側の設定>

shadowExpireのマッピング設定を追加

手順書に従って、作業を行ってください。

属性受信の確認ページのサンプルコード

 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サーバのホスト名
        exit();
    }
}
?>

↑mainテーブルの前に上のphp部分を追加する
<table id="main" cellspacing="0" class="chart">

(中略)

 

有効期限切れエラーページのサンプルコード

 SPサーバ:/var/www/html/secure/error.phpを作成します。
  ※有効期限が切れたユーザでアクセスすると、このエラーページが表示されます。

 

<?php
print "<html>";
print "<head>";
print "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
print "    <title>有効期限切れエラー</title>";
print "</head>";
print "<body>";
print "    <h1>有効期限切れエラー</h1>";
print "    <br>";
print "    有効期限 :$_GET[exp]<br>";
print "    メッセージ:$_GET[errmsg]<br>";
print "</body>";
print "</html>";
?>


 


3.手順書

下記の手順書を参照し、作業を行います。
※実習時の設定値に置き換える事を忘れないようにしてください。

 


  • ラベルがありません