openeuropa / oe_authentication
对OpenEuropa认证服务的认证。
Requires
- php: >=8.1
- drupal/cas: ^2.3
- drupal/core: ^10
Requires (Dev)
- composer/installers: ^1.11
- drupal/cas_mock_server: ^2.0.1
- drupal/core-composer-scaffold: ^10
- drupal/drupal-extension: ^5.0
- drush/drush: ^12
- mikey179/vfsstream: ^1.6.10
- nikic/php-parser: ^4
- openeuropa/behat-transformation-context: ^0.2
- openeuropa/code-review: ^2.0.0-alpha6
- openeuropa/task-runner-drupal-project-symlink: ^1.0-beta6
- phpspec/prophecy-phpunit: ^2
- symfony/phpunit-bridge: ^6.2
- dev-master
- 1.16.0
- 1.15.0
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 1.0.0-beta1
- 1.0.0-alpha7
- 1.0.0-alpha6
- 1.0.0-alpha5
- 1.0.0-alpha4
- 1.0.0-alpha3
- 1.0.0-alpha2
- 1.0.0-alpha1
- 0.x-dev
- 0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-OEL-3187-1.x
- dev-release-1.8.0
- dev-SDT-284
- dev-release-1.5.0
- dev-poc-cas-mock-server
- dev-EWPP-721
- dev-TEST-DONT-MERGE
- dev-FPFISSUPP-UPDATE
- dev-OPENEUROPA-2856
- dev-108-make-custom-fields-configurable
- dev-release-1.0.0
- dev-add-route-instead-of-replace
- dev-79-admin-users-perm
- dev-82-register-approval-required
- dev-83-registrer-redirect
- dev-OPENEUROPA-1813-release-1.0.0-alpha6
- dev-master-test-http-foundation-3.4.23
- dev-http-foundation-conflict
This package is auto-updated.
Last update: 2024-09-12 13:27:19 UTC
README
OpenEuropa认证模块允许对欧盟登录(欧洲委员会登录服务)进行认证。
目录
需求
此模块需要以下模块
安装
安装OpenEuropa认证模块的推荐方法是使用Composer。
composer require openeuropa/oe_authentication
启用模块
为了在项目中启用该模块,请运行
./vendor/bin/drush en oe_authentication
在安装模块时,欧盟登录服务参数已默认设置。请参阅欧盟登录文档,了解可以指定的可用选项。您可以在“项目设置”部分中了解如何覆盖这些参数。
配置
在安装模块时,欧盟登录服务参数已默认设置。请参阅欧盟登录文档,了解可以指定的可用选项。您可以在“项目设置”部分中了解如何覆盖这些参数。
设置覆盖
在Drupal settings.php
中,您可以覆盖以下CAS参数,对应于cas.settings
和oe_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
或者,您可以使用提供的配置使用 Docker 和 Docker 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 缓存,还需要以下附加手动步骤
- 打开
./build/sites/default/services.yml
- 在
twig.config:
属性中设置cache: false
。例如。
parameters: twig.config: cache: false
- 重建 Drupal 缓存:
./vendor/bin/drush cr
这是由于以下 Drupal Console 问题 的原因。
贡献
请阅读 完整的文档 了解我们行为准则的详细信息以及向我们提交拉取请求的流程。