openeuropa/oe_authentication

对OpenEuropa认证服务的认证。

安装数: 209,214

依赖: 1

建议者: 0

安全: 0

星标: 14

关注者: 22

分支: 9

开放问题: 27

类型:drupal-module


README

Build Status Packagist

OpenEuropa认证模块允许对欧盟登录(欧洲委员会登录服务)进行认证。

目录

需求

此模块需要以下模块

安装

安装OpenEuropa认证模块的推荐方法是使用Composer

composer require openeuropa/oe_authentication

启用模块

为了在项目中启用该模块,请运行

./vendor/bin/drush en oe_authentication

在安装模块时,欧盟登录服务参数已默认设置。请参阅欧盟登录文档,了解可以指定的可用选项。您可以在“项目设置”部分中了解如何覆盖这些参数。

配置

在安装模块时,欧盟登录服务参数已默认设置。请参阅欧盟登录文档,了解可以指定的可用选项。您可以在“项目设置”部分中了解如何覆盖这些参数。

设置覆盖

在Drupal settings.php中,您可以覆盖以下CAS参数,对应于cas.settingsoe_authentication.settings配置对象。

$config['cas.settings']['server']['hostname'] = 'authentication';
$config['cas.settings']['server']['port'] = '7002';
$config['cas.settings']['server']['path'] = '/cas';
$config['oe_authentication.settings']['register_path'] = 'register';
$config['oe_authentication.settings']['validation_path'] = 'TicketValidationService';

默认情况下,开发设置通过Task Runner配置为使用docker-compose.yml.dist中提供的演示CAS服务器,即https://authentication:7002

如果您想使用实际的欧盟登录服务测试该模块,请在您的settings.php中取消注释所有上述行,并清除缓存。

账户处理与自动注册

该模块启用了如果用户尝试使用尚未注册的账户登录,则自动创建账户的选项。

有关更多信息,请参阅Cas模块

强制登录

该模块启用了强制登录功能,强制匿名用户在访问您的网站的所有或部分页面时通过CAS进行认证。

有关更多信息,请参阅Cas模块

SSL验证设置

必须通过HTTPS访问欧盟登录认证服务器,Drupal站点将验证服务器的SSL/TLS证书以确保其真实性。

对于开发,您可以配置模块以禁用此验证

$config['cas.settings']['server']['verify'] = '2';

注意:请勿在生产环境中使用!

有关更多信息,请参阅Cas模块

代理

您可以配置模块以“初始化此客户端为代理”,这将允许对第三方服务(例如ePOETRY)进行认证请求。

$config['cas.settings']['proxy']['initialize'] = TRUE;

有关更多信息,请参阅Cas模块

开发

OpenEuropa认证项目包含所有必要的代码和工具,以进行有效的开发过程,例如

  • 所有PHP开发依赖项(包括Drupal核心)都需要composer.json
  • 由于与Task Runner项目的集成,项目设置和安装可以轻松处理。
  • 所有系统需求都使用Docker Composer容器化。
  • 用于测试的模拟服务器。

项目设置

通过运行以下命令下载所有必需的PHP代码

composer install

这将构建一个位于./build目录的完整功能的Drupal测试站点,可用于开发和展示模块的功能。

在设置和安装站点之前,请确保通过复制 runner.yml.dist./runner.yml 并覆盖相关属性来自定义默认配置值。

此命令还将

  • 这将将在测试站点的正确目录中创建模块的符号链接,并在测试配置文件(如 behat.yml.dist)中执行令牌替换。
  • 使用 ./runner.yml.dist 中的值设置 Drush 和 Drupal 的设置。这包括为 EULogin 添加参数
  • 使用 ./runner.yml.dist 中的值设置 PHPUnit 和 Behat 配置文件

设置成功后,通过运行以下命令安装站点

./vendor/bin/run drupal:site-install

这将

  • 安装测试站点
  • 启用 OpenEuropa 身份验证模块

使用Docker Compose

或者,您可以使用提供的配置使用 DockerDocker Compose 构建开发站点。

Docker 提供了必要的服务和工具,如 Web 服务器和数据库服务器,以运行站点,无论您的本地主机配置如何。

需求

配置

默认情况下,Docker Compose 读取两个文件,一个 docker-compose.yml 和一个可选的 docker-compose.override.yml 文件。按照惯例,docker-compose.yml 包含您的基配置,并默认提供。重写文件,正如其名称所暗示的,可以包含现有服务或完全新服务的配置重写。如果服务在两个文件中都已定义,Docker Compose 将合并配置。

有关 Docker Compose 扩展机制的更多信息,请参阅 官方 Docker Compose 文档

用法

首先,运行

docker-compose up

建议不要将 docker-compose 守护进程化,这样您可以在完成工作后快速将其关闭(CTRL+C)。但是,如果您想将其守护进程化,必须添加标志 -d

docker-compose up -d

然后

docker-compose exec web composer install
docker-compose exec web ./vendor/bin/run drupal:site-install

要能够与 EULogin 模拟服务容器进行交互,您需要将内部容器主机名添加到您的 OS 的 hosts 文件中。

echo "127.0.1.1       authentication" >> /etc/hosts

使用默认配置,开发站点的文件应位于 build 目录中,开发站点应可在: http://127.0.0.1:8080/build 上访问。

运行测试

运行 grumphp 检查

docker-compose exec web ./vendor/bin/grumphp run

运行 phpunit 测试

docker-compose exec web ./vendor/bin/phpunit

运行 behat 测试

docker-compose exec web ./vendor/bin/behat

故障排除

禁用 Drupal 8 缓存

手动禁用 Drupal 8 缓存是一个费时的过程,已在 此处 良好地描述。

或者,您可以使用以下 Drupal Console 命令来禁用/启用 Drupal 8 缓存

./vendor/bin/drupal site:mode dev  # Disable all caches.
./vendor/bin/drupal site:mode prod # Enable all caches.

注意:要完全禁用 Twig 缓存,还需要以下附加手动步骤

  1. 打开 ./build/sites/default/services.yml
  2. twig.config: 属性中设置 cache: false。例如。
parameters:
  twig.config:
    cache: false
  1. 重建 Drupal 缓存:./vendor/bin/drush cr

这是由于以下 Drupal Console 问题 的原因。

贡献

请阅读 完整的文档 了解我们行为准则的详细信息以及向我们提交拉取请求的流程。

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅 此存储库的标签