openeuropa / oe_auth
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-OEL-3187
- 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-08-12 13:22:51 UTC
README
OpenEuropa身份验证模块允许对欧盟登录服务进行身份验证。
目录
要求
此模块需要以下模块
安装
安装OpenEuropa身份验证模块的推荐方法是使用Composer。
composer require openeuropa/oe_authentication
启用模块
为了在项目中启用该模块,请运行
./vendor/bin/drush en oe_authentication
EU登录服务的参数在安装模块时已默认设置。请参阅EU登录文档以了解可指定的可用选项。您可以在“项目设置”部分中查看如何覆盖这些参数。
配置
EU登录服务的参数在安装模块时已默认设置。请参阅EU登录文档以了解可指定的可用选项。您可以在“项目设置”部分中查看如何覆盖这些参数。
设置覆盖
在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
。
如果您想使用实际的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
或者,您可以使用提供的配置使用 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 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 缓存,需要以下额外的手动步骤
- 打开
./build/sites/default/services.yml
- 在
twig.config:
属性中将cache: false
设置为cache: false
。例如。
parameters: twig.config: cache: false
- 重建 Drupal 缓存:
./vendor/bin/drush cr
这是由于以下 Drupal Console 问题 的原因。
贡献
请阅读 完整文档 了解我们的行为准则以及向我们提交拉取请求的流程。