我试图将我们公司的SSO集成到我们的Drupal安装中。作为一个POC,看看它是否工作,我有一个SimpleSAMLPhp库的副本位于/foo/bar/simplesamlphp。我配置了我的apache和SAML信任,现在这一切都很好。
根据Acquia在此页上的说明,我尝试安装drupal/simplesamlphp_auth模块。
composer require drupal/simplesamlphp_auth它安装了模块,并作为依赖项,在vendor/simplesamlphp中安装了第二个D5库副本。现在看来,模块simplesamlphp_auth正在使用vendor中的安装。
How我是否将这个模块配置为使用我已经在/foo/bar/simplesamlphp中放置的?页面/admin/config/people/simplesamlphp_auth上似乎没有任何选项。
我有配置文件,如果可能的话,我希望在每次部署之后避免复制到vendor目录,因为这样做并不像将信任信息完全保留在项目之外那样安全。
EDIT 1
对配置文件的澄清:我需要在/foo/bar/simplesamlphp/config中定义配置文件,这样它才能正常工作。这些配置文件从vendor/simplesamlphp/config中丢失,如果没有它们,应用程序将遇到致命错误。正如上面的Acquia文档所述,库位于vendor/或docroot/之外。
发布于 2019-02-06 08:08:05
您可以创建一个指向临时SAML文件夹的符号链接。
ln -s /foo/bar/simplesamlphp ./simplesaml在settings.php中添加下一行:
$settings['simplesamlphp_dir'] = '/foo/bar/simplesamlphp';在/simplesamlphp/config库中的config.php文件中添加以下设置:
// Load necessary environmental data
$ps = json_decode($_SERVER['PRESSFLOW_SETTINGS'], TRUE);
$host = $_SERVER['HTTP_HOST'];
$db = $ps['databases']['default']['default'];
// Define basic variables
$config = array (
'baseurlpath' => 'https://'. $host .':443/simplesaml/', // SAML should always connect via 443
'certdir' => 'cert/',
'loggingdir' => '/files/private/log/',
'datadir' => 'data/',
'tempdir' => '/tmp/simplesaml',
'store.type' => 'sql',
'store.sql.dsn' => 'mysql:host='. $db['host'] .';port='. $db['port'] .';dbname='. $db['database'],
'store.sql.username' => $db['username'],
'store.sql.password' => $db['password'],
);现在,如果在浏览器中打开-site.com/simplesaml url,将使用/foo/bar/simplesamlphp库而不是供应商文件夹。
https://drupal.stackexchange.com/questions/272423
复制相似问题