PR

SimpleSAMLphp 入門(インストール編)

SimpleSAMLphp管理ページ セキュリティ
記事内に広告が含まれています。
スポンサーリンク

この記事は、次のような人にオススメです!

・LAMP環境の構築は済んでいる
・SAML認証(SSO)を簡単に実装してみたい
・SAML認証のOSSパッケージを探している

 

 SAML認証の仕組みについては,以下の記事で解説しておりますので,そちらを参考にしていただければ幸いです.

スポンサーリンク
スポンサーリンク

SimpleSAMLphp とは

 SimpleSAMLphpとは、PHPベースで作られているSAML認証のオープンソースパッケージです。以下に簡単ではありますが、SimpleSAMLphpの概要をまとめます。

言語PHP
ライセンスLGPL-2.1
主な機能IdP、SP
その他の機能サードパーティモジュールを導入することで、追加可能。(OAuth、同意管理 等)

名前の通り、IdP(アイデンティティ・プロバイダ)、SP(サービス・プロバイダ)によるSAML認証を簡単に実装することができます。

スポンサーリンク

動作環境

 PHPがベースになっていますので、標準的なLAMP環境であれば問題無く動作するかと思います。ただし、バージョン2系ではセキュリティが厳しくチェックされるようになったので、SSLがほぼ必須に近い状態です。認証基盤なので当然と言えば当然ですが、SSLが無ければ動作に支障が出る可能性があります。

 当サイトでは、ローカル環境としてXAMPPの利用を前提とした解説を行います。(OpenSSLで自己署名証明書を発行し、https://localhost/にアクセスできることが前提になります。)

スポンサーリンク

SimpleSAMLphpの導入

 SimpleSAMLphpをローカル環境に導入する方法をご紹介します。

ダウンロード

 SimpleSAMLphpの公式サイトからtar.gz圧縮ファイルをダウンロードします。トップに最新版のダウンロードリンクが掲載されていますので、特段の事情が無い限りはこちらをダウンロードすると良いでしょう。
各バージョン毎にサポート期間が定められています。サポート期間はこちらで確認できます。

ファイルの展開・移動

 OSの標準機能(コマンド)または Lhaplus や7-Zip等の専用ソフトでtar.gzファイルを展開します。
XAMPPのhtdocsディレクトリに展開したファイルを移動してください。

configディレクトリとmetadataディレクトリにあるPHPファイルは、いずれも末尾に「.dist」が付加されていますので、これを一旦コピーしましょう。コピー先のファイルは、「config.php.dist」 -> 「config.php」の要領で末尾の「.dist」を外しておきましょう。

パスの設定

 本来であればApacheの設定からパスを通すところですが、今回はローカル環境で取り敢えず動かすことが第一目標なので、簡単に設定する方法をご紹介します。

config > config.php ファイルの34行目付近にあるbaseurlpathを、下記の要領で変更してください。
下記の例では、htdocs > IdP > public > index.php の構成になっており、https://localhost/IdP/public/ でアクセスできる設定です。

- 'baseurlpath' => 'simplesaml/',
+ 'baseurlpath' => 'IdP/public/',

config設定

管理者パスワードの変更

デフォルトでauth.adminpasswordが「123」に設定されています(200行目付近)が、このままでは「設定のパスワード(auth.adminpassword)は既定値から変更されていません設定ファイルを編集してください。」と表示され、管理画面にログインできないので適当に変更します。

シークレットソルトの変更

 192行目付近のsecretsaltを変更しましょう。コメントの指示に従って、WSL等から以下のコマンドを実行します。

LC_ALL=C tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' </dev/urandom | dd bs=32 count=1 2>/dev/null;echo

本番環境ではないので、WSL等のUNIX環境が無ければ代替手段でランダムな文字列を生成しても良いと思います。(デフォルトから1文字でも変更されていれば、Warningは出なくなります。)

トラブルシューティング

 私がセットアップ時に遭遇したトラブルとその時に行ったトラブルシューティングを備忘録として載せておきます。同じエラーに遭遇された方は、解決の一助にされてください。

・バージョン:SimpleSAMLphp(2.2.2)
・エラー内容:未処理例外(Symfony コンポーネント関連)
【解決手順】
1) XAMPPのphp.iniからLDAPを有効化 (extension=ldap)
2)以下のコマンドを実行

composer require symfony/dependency-injection --with-all-dependencies

PHPの拡張モジュール不足と依存関係に問題があったようです。

管理画面

 https://localhost/IdP/public/module.php/admin/(public以前のパスは、ご自身の環境に応じて適宜変更してください。)にアクセスし、先ほど変更した管理パスワードを入力し、管理画面にログインします。

以下の画面が表示されたら、ひとまずインストールと初期セットアップは成功です。

スポンサーリンク
スポンサーリンク
セキュリティ
シェアする
しばをフォローする
タイトルとURLをコピーしました