比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

1. はじめに

本メニューでは、Shibboleth化を行うWebアプリケーションとしてDrupalを使用します。
Drupalは、Shibboleth認証用のモージュールがあるので、そのモジュールを使ってShibboleth化を行います。
作業は、既にDrupalがSPに構築済みとなっているので、Shibboleth認証モジュールの導入となります。
本メニューでは、Shibboleth化を行うWebアプリケーションとしてログイン機能を持つ簡易的なテストページ(テストWebアプリ)を使用します。
このテストWdbアプリのID/パスワードのログイン機能部分をShibbolethを使ったログイン処理に変更します。


...

2. 実習セミナーでは

プラグインの手順書もありますが、以下の手順で作業を進めてください。

...

・テストWebアプリケーションについて

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
SPサーバのトップページにテストWebアプリのリンクがあります。
予めShibbolethを使った認証でない状態を確認してください。
データベース(mariaDB)
  データベース名:drupaldb
  アカウント  :root/rootpass、drupal/drupalpass
Drupal
  URL    :https://ex-sp-test01.gakunin.nii.ac.jp/drupal/ ※1番を割り振られた場合
  アカウント  :admin/DrupalPass(管理者)、test001@nii.ac.jp/Test01Pass(一般ユーザ)

端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 

・Shibboleth認証モジュールのインストール

アカウント  :簡易的なもので ID:test001 、パスワード:test001 のみログインできます。
 ソース    :
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

予めサーバ内にShibboleth認証モジュールを準備しています。
/root/PKG配下にあるので、こちらを使用してください。(shib_auth-7.x-4.3.tar.gz)

以下のように展開後、モジュールを配置します。
# cd /root/PKG
# tar zxvf shib_auth-7.x-4.3.tar.gz
# mv shib_auth
/var/www/html/
drupal/modules

...

testapp 配下

端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 

・認証をShibbolethを利用するように変更

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

/etc/httpd/conf.d/shib.confの末尾に以下の設定を追加します。confの末尾に以下の設定を追記します。

<Location /

drupal>

testapp/login.php>

 

AuthType

Shibboleth

shibboleth

 

ShibRequestSetting requireSession

false
  # the following single line is only valid for Shib2
  ShibUseHeaders On
  require shibboleth

1
require shib-session
</Location>

設定ファイルの変更後、Apacheの再起動します。
# systemctl restart httpd

 ・管理画面によるShibboleth認証の設定

...

・ログイン処理を受信した属性値を使うように変更

・[上部メニュー] - [モジュール]
  <SHIBBOLETH セクション
    Shibboleth authentication: チェックする
    ※設定後、保存ボタンをクリックしてモジュール設定を有効にします。

[上部メニュー] - [環境設定] - [Shibboleth settings]
  <GENERAL SETTINGSタブ - ATTRIBUTE SETTINGS セクション
    Server variable for username: eppn
    Server variable for e-mail address: mail
    ※設定後、保存ボタンをクリックしてモジュール設定を有効にします。
  <高度な設定タブ - LOGOUT SETTINGS セクション
    URL to redirect to after logout: 空白
    ※設定後、保存ボタンをクリックしてモジュール設定を有効にします。
[上部メニュー] - [サイト構築] - [ブロック]
  <無効 セクション - Shibboleth authentication
    リージョン: 第1サイドバー ※リンクが表示される場所の設定なので、ヘッダーやコンテンツなどでも構いません。
    ※設定後、保存ボタンをクリックしてモジュール設定を有効にします。 
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 

3. 手順書

本メニューでの手順は全て「実習セミナーでは」に記載しています。手順について詳しくは手順書を参照ください。

4. 動作確認

...

ここでは、ePPN(eduPersonPrincipalName)をIDとして取得し、セッションに設定します。

/var/www/html/testapp/login.phpを以下のように変更します。

if (isset($_SESSION['USER'])) {
header('Location: testapp.php');
exit;
}

//ログイン
if (isset($_SERVER["Shib-Identity-Provider"]) and isset($_SERVER["eppn"])) { //正しく属性値を受信しているか確認
$user = explode( '@', $_SERVER["eppn"] );
$_SESSION["USER"] = $user[0]; //ローカルパート部分を取得してセッションにセット
header("Location: testapp.php"); //認証できているのでテストWebアプリに遷移
exit;
}

# $message = '';
# if(isset($_POST['login'])){

# if ($_POST['uid'] == 'test001' && $_POST['password'] == 'test001'){
# $_SESSION["USER"] = 'test001';
# header("Location: testapp.php");
# exit;
# }
# else{
# $message = 'ユーザーIDかパスワードが間違っています。';
# }
# }


 ・ログアウト処理も変更 

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

ここでは、ローカルログアウト機能を使用しています。

/var/www/html/testapp/testapp.phpを以下のように変更します。

# header('Location: login.php');
//ログアウト後、「テストWebアプリ」のリンクがあるトップページが表示されます。

header('Location:

例)1番を割り振られた場合

https://ex-sp-

test01

test**.gakunin.nii.ac.jp/

drupal/

② Shibboleth ログインリンクをクリックします。

③ DSの所属機関の選択画面が表示されるので、各自が使用するIdPを選択します。

④ IdPのログイン画面が表示されるので、Username/Passwordを入力して認証を行います。
    ※test001は、既にtest001@nii.ac.jpユーザとして登録されていますが、test002やtest003は未登録です。
      しかし導入したプラグインでは、ユーザ登録とマッピングが自動的に行われるため、Drupalにユーザが
      登録されていないtest002、test003も自動的に登録されログインする事ができます。
    ※uApproveが稼働している場合、email属性を送信してください。また、アクセス制限を行っている場合、eduPersonPrincipalName属性も送信してください。
    ※実習課題のアクセス制限を使用している場合、eduPersonPrincipalName属性で制限されているので確認が必要です。LDAPを変更してなければ、test002のみでアクセスできます。 

⑤ Shibboleth認証時ユーザのeppnがDrupalユーザ名となり、正しくログイン出来る事を確認します。 

⑥ ユーザ情報は、DBのマッピングテーブルにも登録されているので、確認してください。
    以下のコマンドで確認する事ができます。

Shibboleth.sso/Logout?return=https://ex-sp-test**.gakunin.nii.ac.jp/');

端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 


...

3. 手順書

本メニューでは、ありません。
「2.実習セミナーでは」を順に設定してください。


...

4. 動作確認

① 各自が使用するSPの接続確認用ページにアクセスします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
・データベースに接続
  mysql -u drupal -pdrupalpass drupaldb

・ユーザ情報の確認
  mysql> select * from users\G

・マッピングテーブルの確認
  mysql> select * from shib_authmap\G

Prevnextbuttons

例)1番を割り振られた場合
https://ex-sp-test01.gakunin.nii.ac.jp/

② テストWebアプリのリンクをクリックします。

③ DSの設定を行っている場合、所属機関の選択画面が表示されるので、各自が使用するIdPを選択します。

④ IdPのログイン画面が表示されるので、Username/Passwordを入力して認証を行います。

⑤ Shibboleth認証時ユーザのeppnのローカルパートがユーザIDとなり、正しくログイン出来る事を確認します。 

⑥ ログアウト後、SPサーバのトップページが表示されることを確認します。

⑦再度「②」から行うと認証要求がある(再度ログインから行う必要がある)事を確認します。
  

Prevnextbuttons