WindowsでShibboleth SPを構築します

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【3/22開催】テックブログを書こう!アウトプットのススメ
1年で100本ブログを出した新米エンジニアがPV数が伸びなくてもTech Blogを書き続ける理由とは?
https://tech-lab.connpass.com/event/312805/

【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

サイオステクノロジー武井です。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を構築するっていうニーズがどれだけあるのかわからないのですが、お役に立てれば幸いです(•ө•)♡

アバター画像
About 武井 宜行 267 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



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

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる