SimpleSAMLphpのデータソースにMySQLを指定する
概要
開発環境にSAML2.0方式によるシングルサインオンを構築するにあたり(IDプロバイダー用途で)SimpleSAMLphp を使う場合のユーザー認証データソースとして、MySQLなどのRDBMSを指定する方法を調べてみました。
※ちなみにデフォルトのデータソースは、config/authsources.php の'example-userpass'の部分で、PHP連想配列で「ユーザ名:パスワード」を定義するぽいです。
SimpleSAMLphpのバージョン
$ grep 'function getVersion' -i -A3 lib/SimpleSAML/Configuration.php
public function getVersion()
{
return '1.17.1';
}
対応手順
1. sqlauthモジュールを有効化する。
config/config.php
'module.enable' => [
'sqlauth' => true,
],
2. データベース接続情報を設定する。
'module.enable' => [
'sqlauth' => true,
],
※自分の環境に合わせて、'dsn' や 'query' なども変更する。
'example-sql' => [
'sqlauth:SQL',
'dsn' => 'mysql:host=sql.example.org;port=3306;charset=utf8;dbname=simplesaml',
'username' => 'simplesaml',
'password' => 'secretpassword',
'query' => 'SELECT uid, givenName, email, eduPersonPrincipalName FROM users WHERE uid = :username AND password = SHA2(CONCAT((SELECT salt FROM users WHERE uid = :username), :password), 256);',
],
3. IdPが参照する認証データソースを変更する
// 'auth' => 'example-userpass',
'auth' => 'example-sql',
そのた
※ちなみに最初の手順1で 'sqlauth' => true を設定し忘れると、下記エラーが発生するぽい。
SimpleSAML\Error\Error: UNHANDLEDEXCEPTION
Backtrace:
1 www/_include.php:17 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: Exception: Could not resolve 'sqlauth:SQL': no class named 'SimpleSAML\Module\sqlauth\Auth\Source\SQL' or 'sspmod_sqlauth_Auth_Source_SQL'.
Backtrace:
6 lib/SimpleSAML/Module.php:404 (SimpleSAML\Module::resolveClass)
5 lib/SimpleSAML/Auth/Source.php:318 (SimpleSAML\Auth\Source::parseAuthSource)
4 lib/SimpleSAML/Auth/Source.php:363 (SimpleSAML\Auth\Source::getById)
3 lib/SimpleSAML/Auth/Simple.php:216 (SimpleSAML\Auth\Simple::logout)
2 modules/core/www/authenticate.php:17 (require)
1 lib/SimpleSAML/Module.php:236 (SimpleSAML\Module::process)
0 www/module.php:9 (N/A)
参考
SimpleSAMLphpのインストール自体は下記ページを参考にしました。
Author And Source
この問題について(SimpleSAMLphpのデータソースにMySQLを指定する), 我々は、より多くの情報をここで見つけました https://qiita.com/sogawa@github/items/f069dff6f4b502ba2aa7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .