スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SSO/SAML] HTTP Redirect Binding の際の SAMLメッセージのエンコード

SAMLを使った認証のやりとりで、 HTTP Redirect Binding を使うときの
SAMLメッセージ(認証要求とか、認証応答とか)のエンコードなんですが、
DEFLATE圧縮をかけないといかんのですね。

ほとんどの資料にはざっくりと 「Base64エンコードしたメッセージ」としか
書いてないので、IdP でなんで蹴られるんだろうとひどく疑問でございました。

Google のドキュメント(正確にはそこにあるサンプルコード)を見て解決。

Web-based Reference Implementation of SAML-based SSO for Google Apps
http://code.google.com/intl/ja/googleapps/domain/sso/saml_reference_implementation_web.html

"The source code for the reference SAML implementation can be downloaded here." と
なっていますので、here をクリック。
遷移先では、
Your search did not generate any results. You may want to try your search over all downloads.
とか言われるので、all downloads をクリックするとサンプルの一覧が表示されます。

php であれば、samltool_php.zip です。
そのなかの saml_util.php に samlEncodeMessage() という関数がありますので、
そこを参照ください。


function samlEncodeMessage($msg) {
$encmsg = gzdeflate($msg);
$encmsg = base64_encode($encmsg);
$encmsg = urlencode($encmsg);
return $encmsg;
}


つまり、gzdeflate() で DEFLATE圧縮、BASE64エンコード、URLエンコードとかけて
URLにつなげてクエリ文字列にするわけですね。


まだ SSO/SAML 関連の技術情報は、あまり日本語では出回っていないようです。
Software Design の下記の号でとりあげられてはいますが網羅的で、
なんとなく理解するにはいいものの、実際にどう現行のWebアプリケーションを
対応させていくのか、というのは OASIS の SAML仕様の原文などにあたってみるのが
面倒ながらも確実かと思います。

Software Design (ソフトウェア デザイン) 2010年 09月号 [雑誌]Software Design (ソフトウェア デザイン) 2010年 09月号 [雑誌]
(2010/08/18)


第1特集
クラウド対策もこれでOK!
統合認証システム構築術
OpenAM/SAML/OpenLDAP/Active Directory



そのほか参考になる資料:

OpenSSO 技術情報 - Open Source Solution Technology Corporation
http://www.osstech.co.jp/techinfo/opensso
 ※「SAML 入門」のリンクからPDF資料。「OpenSSO社内勉強会第二回- SAML -」

第1回 OpenSSO&OpenAMコンソーシアム 技術セミナー | OpenSSO&OpenAMコンソーシアム
http://www.openam.jp/event/event07.html
 ※「OSStech 講演資料」のリンクからPDF資料。「OpenAM入門」

JapanSIG/Documents/TechTutorials - The Project Liberty Wiki
http://wiki.projectliberty.org/index.php/JapanSIG/Documents/TechTutorials
 ※「SAML 2.0 アイデンティティ連携技術」「SAML 2.0 の可能性」

[運用]Windowsで構築する、クラウド・サービスと社内システムのSSO環境
第2回 クラウド・コンピューティング時代の認証技術

http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso02/adfs2sso02_01.html

simpleSAMLphp
http://simplesamlphp.org/
 PHPベースで、認証まわりを行ってくれる( IdP や SP の接続部分を簡便にしてくれる? )もののようです。
 環境が PHP version >= 5.2.0 とのことで、今回私のほうでは使用を保留しました。
 使わないにしても、ソースを追っていくと示唆が多いかもしれません。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

検索フォーム
リンク
最新記事
最新コメント
カテゴリ
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。