openeuropa/oe_auth

此包已被弃用且不再维护。作者建议使用openeuropa/oe_authentication包。

对OpenEuropa身份验证服务的身份验证。

安装: 412

依赖项: 0

建议者: 0

安全性: 0

星标: 13

关注者: 22

分支: 9

开放问题: 26

类型:drupal-module


README

Build Status Packagist

OpenEuropa身份验证模块允许对欧盟登录服务进行身份验证。

目录

要求

此模块需要以下模块

安装

安装OpenEuropa身份验证模块的推荐方法是使用Composer

composer require openeuropa/oe_authentication

启用模块

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

./vendor/bin/drush en oe_authentication

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

配置

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

设置覆盖

在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

如果您想使用实际的EU登录服务测试模块,请取消注释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身份验证项目包含所有必要的代码和工具,以进行有效的开发过程,例如

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

项目设置

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

composer install

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

在设置和安装网站之前,请确保通过复制 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 Authentication 模块

使用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 Mock Service 容器交互,您需要将内部容器主机名添加到您的 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 设置为 cache: false。例如。
parameters:
  twig.config:
    cache: false
  1. 重建 Drupal 缓存: ./vendor/bin/drush cr

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

贡献

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

版本控制

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