WindowsでShibboleth SPを構築します

サイオステクノロジー武井です。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サービスに登録します。

C:\Users\ntakei>cd C:\Apache24\bin

C:\Apache24\bin>httpsd -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpsd.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認証対象になることを想定しておりますので、各自の環境に合わせて適宜変更してください。

<Location /Shibboleth.sso>
  SetHandler shib
</Location>

<Location /secure>
    AuthType shibboleth
    ShibRequestSetting requireSession true
    Require shibboleth
    Require shib-session
</Location>

 

C:\Apache24\conf\httpsd.confに以下の内容を追記します。

Include conf/extra/shib.conf

 

Shibboleth SPのモジュールを有効化します。C:\Apache24\conf\httpsd.confに以下の内容を追記します。

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環境に用意してください。

Shibboleth IdP4をDockerコンテナ化するスクリプトをGitHubで公開しました

 

IdPのメタデータを読み込み処理を有効化します。C:\opt\shibboleth-sp\etc\shibboleth\shibboleth2.xmlで以下の部分のコメントアウトを外します。

<!--
<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に以下の内容を書いてください。

<h1>piyo</h1>

 

sp.example.orgのホスト名はhostsファイルを制御するなどして、Windows上に構築したShibboleth SPモジュールにアクセスするようにしてください。

そして以下のURLにアクセスして、Shibboleth IdPにて認証後に「piyo」と表示されれば成功です!!

https://sp.example.org/secure/test.html

まとめ

WindowsでShibboleth SPを構築するっていうニーズがどれだけあるのかわからないのですが、お役に立てれば幸いです(•ө•)♡

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です