[Google App] ASP.NETからのSSO実装テスト
Google AppsではSAMLベースのシングルサインオン(SSO)ができる。
C#用のサンプルを探していたのだが、少し古いながらもあった。
まぁ、ドキュメントが付属しているのでその通りにやればすぐにテスト実装できるのだが、備忘録としてまとめる。
手順としては、以下の通り。
C#用のサンプルを探していたのだが、少し古いながらもあった。
まぁ、ドキュメントが付属しているのでその通りにやればすぐにテスト実装できるのだが、備忘録としてまとめる。
手順としては、以下の通り。
- サンプルソースビルド
C#2.0用のソースなので、Visual Studio2005が入っていない限りはアップグレードさせることになるだろう。アップグレードしても問題は発生しなかった。 - IIS設定
「Google.Apps.SingleSignOn.Web」の方を登録する。 - 証明書作成
「makecert.exe」および「pvk2pfx.exe」を使うのが便利。コマンドラインから生成するが、実行ファイルの場所が環境によって異なるかもしれない。
なお、作成した鍵に対してASP.NETアプリケーションが読み込める権限も与えなければいけない。 - Google AppsでのSSO設定
Google Appsの管理者にてログインし、管理画面を開く。
→高度なツール→シングルサインオン(SSO)設定
→シングルサインオンページに、
http://localhost/GoogleAppsSso/Prompt.aspx を設定する。
この設定が正しく反映されると、
ローカルページへのリダイレクトが行われるようになる。 - Google Appsへの証明書登録
3で作成した証明書をアップロードする。 - http://mail.google.com/a/<ドメイン名> にアクセス。
ローカルホストへリダイレクトされるはずなので、そこで認証情報を入力。 - 認証情報が正しければログインできる。上記サンプルだとGmailにログインできているはずだ。
と、いう感じにやっていけばOKなはずだ。
ポイントは、Web.configの「Google.Apps.SingleSignOn.Url」ローカルのシングルサインオン用ページのパスを入れること。「Google.Apps.SingleSignOn.PfxFile」に鍵の情報を設定しておくこと。
自分はWindows7 & ASP.NET4.0で動作させてみたが、認証することができた。
ただ、Google Appsのアカウントが無償版だと設定できなかったかな。
【参考】
http://code.google.com/intl/ja-JP/apis/apps/sso/saml_reference_implementation.html
http://code.google.com/intl/ja-JP/googleapps/domain/sso/saml_reference_implementation_web.html
ただ、Google Appsのアカウントが無償版だと設定できなかったかな。
【参考】
http://code.google.com/intl/ja-JP/apis/apps/sso/saml_reference_implementation.html
http://code.google.com/intl/ja-JP/googleapps/domain/sso/saml_reference_implementation_web.html