messageagency / ma_sso_idp
创建作为IDP的Drupal网站的各项要求
Requires
- drupal/drupalauth4ssp: ^2
- drupalauth/simplesamlphp-module-drupalauth: ^2
- simplesamlphp/simplesamlphp: ^2.1
This package is auto-updated.
Last update: 2024-09-08 22:44:53 UTC
README
Message Agency 单点登录身份提供者。
有关服务提供者(SP)版本的信息,请参阅:https://bitbucket.org/messageagency/ma_sso_sp
目的
此模块旨在运行一些健全性检查以帮助诊断您的设置。其目的是 NOT 执行基于Drupal的简单SAML IDP的配置工作,而是提供一些合理的默认设置并帮助您安装。因此,对您的IDP(以及SP)的设置方式做出了一些非常具体的假设。提供了默认配置文件供参考,您可能需要对其进行自定义,特别是 saml20-sp-remote.php
。请参阅[添加服务提供者](#Adding service providers)。
使用此模块的快速入门
composer require messageagency/ma_sso_idp
drush en ma_sso_idp
- 转到
admin/reports/status
并解决以下任何错误
假设/先决条件
- 此Drupal网站将作为其他Drupal网站的主要和默认IDP
- 此Drupal网站将仅实现一个IDP
- 安装和配置将由composer管理
composer.json
位于您的VCS根目录中- 您的drupal webroot是
/web
- 您的simple saml web安装将通过
https://example.com/simplesaml
创建符号链接 - 此模块将安装到
web/modules/message_agency/ma_sso_idp
- Drupal私有文件目录位于
web/sites/default/files/private
- 所有内容都通过
https://
提供服务,尽管自签名证书是可接受的。
详细的IDP设置指南
创建simpleSAML符号链接
在您的webroot中添加指向simpleSAML web目录的符号链接。
对于simpleSAML版本2.0+(Drupal 10+)
cd ./web ln -s ../vendor/simplesamlphp/simplesamlphp/public simplesaml
对于simpleSAML版本1.x
cd ./web ln -s ../vendor/simplesamlphp/simplesamlphp/www simplesaml
Composer任务
将以下规则添加到composer.json,以确保composer任务不会破坏您的saml配置。有关服务提供者定义的持续管理,请参阅[添加服务提供者](#Adding service providers)。
"post-install-cmd": [ "cp web/modules/message_agency/ma_sso_idp/sso/config.php ./vendor/simplesamlphp/simplesamlphp/config/config.php", "cp web/modules/message_agency/ma_sso_idp/sso/authsources.php ./vendor/simplesamlphp/simplesamlphp/config/authsources.php", "cp web/modules/message_agency/ma_sso_idp/sso/saml20-sp-remote.php ./vendor/simplesamlphp/simplesamlphp/metadata/saml20-sp-remote.php", "cp web/modules/message_agency/ma_sso_idp/sso/saml20-idp-hosted.php ./vendor/simplesamlphp/simplesamlphp/metadata/saml20-idp-hosted.php" ], "post-update-cmd": [ "cp web/modules/message_agency/ma_sso_idp/sso/config.php ./vendor/simplesamlphp/simplesamlphp/config/config.php", "cp web/modules/message_agency/ma_sso_idp/sso/authsources.php ./vendor/simplesamlphp/simplesamlphp/config/authsources.php", "cp web/modules/message_agency/ma_sso_idp/sso/saml20-sp-remote.php ./vendor/simplesamlphp/simplesamlphp/metadata/saml20-sp-remote.php", "cp web/modules/message_agency/ma_sso_idp/sso/saml20-idp-hosted.php ./vendor/simplesamlphp/simplesamlphp/metadata/saml20-idp-hosted.php" ],
需要此模块或重新安装以部署配置
要部署上一步骤中的配置,需要此模块或运行
composer install
。composer require messageagency/ma_sso_idp
启用模块
drush en ma_sso_idp
安装证书
openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out cert.pem -keyout key.pem mkdir -p ./web/sites/default/files/private/simplesaml/cert mv *.pem ./web/sites/default/files/private/simplesaml/cert
在您的Drupal网站的状态报告中检查您的安装,例如 "https://example.com/admin/reports/status"
访问您的simpleSAML安装的“身份验证”选项卡,例如
https://example.com/simplesaml/module.php/core/authenticate.php
。应该有一个链接到drupal-userpass
。如果您通过此链接进入Drupal登录页面,您就走在正确的道路上。
其他注意事项
Apache的.htaccess规则
如果您正在运行apache,您需要通过在您的.htaccess
文件中添加以下内容来授权对simpleSAML的访问。
在以下行之前立即添加以下指令
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
添加以下指令
# Allow access to simplesamlphp scripts.
RewriteCond %{REQUEST_URI} !^/simplesaml
添加服务提供者
saml20-sp-remote.php
文件提供供参考。您可能需要将此文件复制到您的项目版本控制中,修改以包含您自己的SP定义,并重新定义部署此文件的composer任务。