Shibbolethをコンテナ化しました

こんにちは、サイオステクノロジー技術部 武井です。今回は、オープンソースな学術系シングルサインオンシステム「Shibboleth」をDockerで動かすための諸々の設定ファイルを作成してみました。以下のGitHubに上げていますので、是非使ってみて下さい。

https://github.com/noriyukitakei/dockerized-shibboleth-idp

これはなに?

これを使うと、Shibbolethの稼働に必要なhttpサーバー(Apache)、アプリケーションサーバー(Tomcat)、LDAPサーバー(OpenLDAP)のDockerコンテナが作成されます。もちろん、ローカルのPCで動かすことが出来ますし、Kubernetesのようなコンテナオーケストレーターでも動かすことが出来ます。Azure Kubernetes Serviceではサクッと動きました。

使い方

以下、使い方になります。

ファイル構成

ファイル構成は以下のとおりです。

コンテナ化するための手順

Shibbolethディレクトでの作業

まずshibbolethディレクトリにて、指定したバージョンのShibbolethの設定ファイル(/opt/shibboleth-idp配下のファイル)を作成します。このコンテナはShibbolethの設定ファイルを生成するための一時的なものです。以下のコマンドを実行します。 実行が終わると、tomcatディレクトリにcustomized-shibboleth-idpというディレクトリが作成されます。これがShibbolethの設定ファイル群です。Docketfile内のidp_versionという環境変数を変更することでShibbolethのバージョンを変更出来ます。

tomcatディレクトでの作業

tomcatディレクトリに移動します。そこにあるDockerfileのFROMで取得してくるイメージを適宜変えることで、Shibbolethを稼働するTomcatやJavaのバージョンを変えることが出来ます。また1で作成したcustomized-shibboleth-idpの中の設定ファイルを環境に合わせて適宜編集して下さい。この設定ファイルがtomcatのコンテナにコピーされShibbolethが起動します。

ldapディレクトでの作業

openldapディレクリに移動します。ここにあるinit.ldifはOpenLDAPに投入する初期データをldif形式で書きます。

httpdディレクトでの作業

httpdディレクトリに移動します。ここにあるserver.crtとserver.keyはHTTP通信を暗号化するためのSSL証明書です。適宜環境に合わせて変更して下さい。ファイル名は必ずserver.crt(証明書)とserver.key(秘密鍵)として下さい。

リポジトリトップのディレクトリに移動して以下のコマンドを実行して下さい。コンテナの生成、起動が開始します。

Shibbolethの設定ファイル変更

Shibbolethの設定ファイルを変更したい場合は、tomcat/customized-shibboleth-idp内のファイルを変更して、以下のコマンドを実行して下さい。

Tomcat、LDAPへの接続先変更

httpdからのajpプロトコルによるTomcatへの接続先、及びShibbolethからLDAPへの接続先は、それぞれdocker-compose.yml内の環境変数にて変更出来ます。Desktop Dockerなどで起動する場合はデフォルトのままでいいかもしれませんが、Kubernetesなどで起動するときは変更する必要があります。変更対象は以下に記載のTOMCAT_HOST及びLDAP_HOSTです。

まとめ

どれだけニーズがあるのかわからないのですが、ワタシ的には非常に便利なツールです。これを使って、みなさまも少しでもShibbolethの環境構築が楽になっていただければ幸いですm(_ _)m

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

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

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

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

コメント投稿

メールアドレスは表示されません。


*