messageagency/ma_sso_idp

此软件包最新版本(2.1)没有可用的许可证信息。

创建作为IDP的Drupal网站的各项要求

安装: 145

依赖: 0

建议者: 0

安全: 0

类型:ma-module

2.1 2024-01-08 21:01 UTC

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设置指南

  1. 创建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
    
  2. 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"
     ],
    
  3. 需要此模块或重新安装以部署配置

    要部署上一步骤中的配置,需要此模块或运行composer install

         composer require messageagency/ma_sso_idp
    
  4. 启用模块

        drush en ma_sso_idp
    
  5. 安装证书

     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
    
  6. 在您的Drupal网站的状态报告中检查您的安装,例如 "https://example.com/admin/reports/status"

  7. 访问您的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任务。