
サイオステクノロジー武井です。WindowsでShibboleth SPを構築するという検証をしたので、ここにその方法をメモとして残しておきたいと思います。
環境は以下のとおりです。
- OS:Windows Server 2016
- Webサーバー:Apache
Visual C++のランタイムのインストール
なにはともあれまずはApacheのインストールですが、その前にVisual C++のライブラリをインストールしなければいけません。以下のURLにアクセスしてください。
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
ここから「Visual Studio 2015, 2017 and 2019」のx64(64ビット版)のvc_redist.x64.exeをダウンロードして実行してください。(2020年12月1日現在)
「I agree…」にチェックして「Install」をクリックすればインストールは完了です。
Apacheのインストール
ApacheのWindowsのバイナリは色々なコミュニティから提供されています。SAMLはSSLでないと色々都合が悪いので、今回はOpenSSLのモジュールが導入済みのバイナリを提供しているApache Hausからゲットしたいと思います。ダウンロードするためのURLは以下です。
https://www.apachehaus.com/cgi-bin/download.plx
ここから「Apache 2.4.x OpenSSL 1.1.1 VC15」(2020年12月1日現在)のx64(64ビット版)をダウンロードします。ZIP形式なので解凍します。解凍してできた「Apache24」のフォルダをCドライブ直下に移動します。
そして、以下のコマンドを実行してApacheをWindowsサービスに登録します。
1 2 3 4 5 6 7 8 9 |
C:\Users\ntakei>cd C:\Apache24\bin C:\Apache24\bin>httpd -k install Installing the 'Apache2.4' service The 'Apache2.4' service is successfully installed. Testing httpd.conf.... Errors reported here must be corrected before the service can be started. |
これでApacheを起動する準備は整いました。C:\Apache24\bin\ApacheMonitor.exeを実行します。以下のような画面が起動しますので、「Start」をクリックすると。。。
以下のように緑色のマークが表示されればApacheの起動は成功です。
Shibboleth SPのインストール
以下のURLからご希望のバージョンのShibboleth SPをダウンロードします。
https://shibboleth.net/downloads/service-provider/
例えば、バージョン3.1.0のWindows用Shibboleth SPは以下のリンクになります。
https://shibboleth.net/downloads/service-provider/3.1.0/win64/shibboleth-sp-3.1.0.2-win64.msi
インストーラーを実行します。「Next」をクリックします。
「I accept…」にチェックして、「Next」をクリックします。
そのまま以下の状態で「Next」をクリックします。
「Install」をクリックします。これで終わりです。
Shibbolethの設定を定義します。C:\Apache24\conf\extra\shib.confを作成して、以下の内容を書きます。/secure配下がShibboleth SP認証対象になることを想定しておりますので、各自の環境に合わせて適宜変更してください。
1 2 3 4 5 6 7 8 9 10 |
<Location /Shibboleth.sso> SetHandler shib </Location> <Location /secure> AuthType shibboleth ShibRequestSetting requireSession true Require shibboleth Require shib-session </Location> |
C:\Apache24\conf\httpd.confに以下の内容を追記します。
1 |
Include conf/extra/shib.conf |
Shibboleth SPのモジュールを有効化します。C:\Apache24\conf\httpd.confに以下の内容を追記します。
1 |
LoadModule mod_shib "C:\opt\shibboleth-sp\lib64\shibboleth\mod_shib_24.so" |
その他、Shibboleth SPの稼働に必要な設定(SPのEntityIDやメタデータの取得など)は適宜行って下さい。
これで設定は完了です。設定を反映させるためにApacheを再起動します。C:\Apache24\bin\ApacheMonitor.exeを実行して、「Restart」をクリックします。
Shibboleth SPを再起動します。サービスから「Shibboleth Daemon」をRestartします。
IdPも含めた動作確認をささっとおこないたい
先の手順は、Shibboleth IdPがすでに用意されている環境を前提としましたが、Shibboleth IdPも含めた動作確認もしてみたいなという方のために、その手順をご紹介します。
Shibboleth IdPは以下のブログで公開している手順にてDocker環境に用意してください。
IdPのメタデータを読み込み処理を有効化します。C:\opt\shibboleth-sp\etc\shibboleth\shibboleth2.xmlで以下の部分のコメントアウトを外します。
1 2 3 |
<!-- <MetadataProvider type="XML" validate="true" path="partner-metadata.xml"/> --> |
https://idp.example.org/idp/shibbolethにアクセスして出力されるXML(IdPのメタデータ)を、C:\opt\shibboleth-sp\etc\shibboleth\partner-metadata.xmlに書き込みます。
そしてShibboleth SPのサービスをRestartします。
次にテスト用のコンテンツを作成します。C:\Apache24\htdocs\secure\test.htmlに以下の内容を書いてください。
1 |
<h1>piyo</h1> |
sp.example.orgのホスト名はhostsファイルを制御するなどして、Windows上に構築したShibboleth SPモジュールにアクセスするようにしてください。
そして以下のURLにアクセスして、Shibboleth IdPにて認証後に「piyo」と表示されれば成功です!!
https://sp.example.org/secure/test.html
まとめ
WindowsでShibboleth SPを構築するっていうニーズがどれだけあるのかわからないのですが、お役に立てれば幸いです(•ө•)♡
ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!

>> 雑誌等の執筆依頼を受付しております。
ご希望の方はお気軽にお問い合わせください!
コメント投稿