従来の学認のDSでは,ログインの過程で,SP→DS→IdPという画面遷移となっていましたが,この流れでは,はじめてフェデレーションのサービ スを機関IdPで認証しようとするユーザが,DSへの画面遷移で戸惑う可能性が指摘されていました.Embedded DSは,SPの中にDSの画面を埋め込むことで,エンドユーザにより直観的なユーザインターフェースを提供するものです.IdPを表示する際のカテゴリー 分けにも対応しており,従来に比べて,より所属機関のIdPが選択しやすくなりました.学認では,スイスのフェデレーションSWITCHaaiの開発したEmbedded Discovery Serviceをカスタマイズして利用しています.
...
Embedded DSの紹介
Embedded DSの紹介スライド
2011年の学認CAMPにおける発表スライドです。p.3〜8でEmbedded DSの紹介をしています。
...
Embedded DSの設定方法
shibboleth2.xmlの設定
変更の必要はありません。
Webアプリケーション側の設定
従来は,ログインボタンをShibboleth認証を必要とするURLにリンクしていましたが,規定のJavascriptをログイン画面に埋め込むことで,SP内にDSの画面が表示されます.従来は,ログインボタンをShibboleth認証を必要とするURLにリンクしていましたが,規定のJavaScriptをログイン画面に埋め込むことで,SP内にDSの画面が表示されます.
Javascriptテンプレートのダウンロード JavaScriptテンプレートのダウンロード (2011年11月9日更新)
以下を参考に埋め込んだHTML片を修正してください。
...
- var wayf_sp_entityID = "Embedded DSを利用するSPのentityID"
- var wayf_sp_handlerURL = "Embedded DSを利用するSPのハンドラURL"
例: https://sp.example.ac.jp/Shibboleth.sso
以前のテンプレートでは値が異なっている場合があるので適宜修正してください。 - var wayf_return_url = "Embedded DSを利用するSPで認証後に戻るURL"
- <noscript>内のURL:Javascriptが利用できない際のDSへの直接リンク
Advancedな設定項目はこの他にもありますので、テンプレート内のコメントを参考にカスタマイズして下さい。
...
実験段階で使用していた方向けの変更点
shibboleth2.xmlの設定
実験段階で利用していた、
https://ds.gakunin.nii.ac.jp/WAYF2
のエンドポイントは、2011年12月1日をもって停止しましたので、このように設定されている場合は、標準設定の
https://ds.gakunin.nii.ac.jp/WAYF
に戻してください。
Webアプリケーション側の設定
展開 | ||
---|---|---|
| ||
2 <!-- EMBEDDED-WAYF-START --> 3 <script type="text/javascript"><!-- 4 // To use this JavaScript, please access: 5 // https://ds.gakunin.nii.ac.jp/WAYF2/index.php/embedded-wayf.js/snippet.html 6 // and copy/paste the resulting HTML snippet to an unprotected web page that 7 // you want the embedded WAYF to be displayed ... 12 // URL of the WAYF to use 13 // Examples: "https://wayf.switch.ch/SWITCHaai/WAYF", "https://wayf-test.switch.ch/aaitest/WAYF"; 14 // [Mandatory] 15 var wayf_URL = "https://ds.gakunin.nii.ac.jp/WAYF2/index.php"; ... 259 <script type="text/javascript" charset="UTF-8"><!-- 260 document.write('<script type="text/javascript" src="https://ds.gakunin.nii.ac.jp/WAYF2/index.php/embedded-wayf.js?' + (new Date().getTime()) + '"></scr'+'ipt>'); 261 //--> 262 </script> |