itk-dev / azure-ad-delta-sync-bundle
允许Azure AD Delta Sync流程的Symfony包
Requires
- php: ^7.4 || ^8.0
- doctrine/orm: ^2.9
- itk-dev/azure-ad-delta-sync: ^1.0
- symfony/console: ^5.2
- symfony/framework-bundle: ^5.2
- symfony/lock: ^5.2
- symfony/property-access: ^5.2
- symfony/yaml: ^5.2
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-12 13:28:16 UTC
README
Azure AD Delta Sync流程的Symfony包。
安装
要安装,请运行
composer require itk-dev/azure-ad-delta-sync-bundle
使用方法
在使用此包之前,您必须拥有自己的User
实体、UserRepository
和数据库设置。
您需要配置Microsoft组、上述提到的User
实体和缓存池的变量。
变量配置
在/config/packages
中,您需要以下itkdev_azure_ad_delta_sync.yaml
文件。
itkdev_azure_ad_delta_sync: azure_ad_delta_sync_options: tenant_id: 'some_tenant_id' client_id: 'some_client_id' client_secret: 'some_client_secret' group_id: 'some_group_id' user_options: system_user_class: 'App\Entity\User' system_user_property: 'some_user_property' azure_ad_user_property: 'some_azure_ad_user_property' cache_options: cache_pool: 'cache.app'
在这里,azure_ad_user_property
应该是Azure AD用户上的一个属性,它与system_user_property
等效,因为这是我们比较系统用户和Microsoft组用户的方式。因此,比较属性也必须是唯一的。
监听DeleteUserEvent
该包发布一个包含潜在要删除的用户属性列表(system_user_property
)的DeleteUserEvent
。使用系统应实现逻辑以确保这些用户不会意外删除。
因此,使用系统将需要实现一个监听DeleteUserEvent
的事件监听器或事件订阅者。
示例事件订阅者
<?php namespace App\EventSubscriber; use ItkDev\AzureAdDeltaSyncBundle\Event\DeleteUserEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class DeleteUserEventSubscriber implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [ DeleteUserEvent::class => 'deleteUsers', ]; } public function deleteUsers(DeleteUserEvent $event) { // User deletion logic here } }
启动流程
要启动流程,使用系统执行以下CLI命令
php bin/console delta-sync:run
使用系统有权决定如何以及何时运行此命令。
开发设置
此项目包含一个带有PHP 7.4镜像的docker-compose.yml
文件。要安装依赖项,您可以运行
docker compose up -d
docker compose exec phpfpm composer install
单元测试
我们使用PHPUnit进行单元测试。要运行测试
docker compose exec phpfpm composer install docker compose exec phpfpm ./vendor/bin/phpunit tests
测试套件使用Mock来生成测试替身。
检查编码规范
-
PHP文件(PHP_CodeSniffer)
docker compose exec phpfpm composer check-coding-standards
-
Markdown文件(markdownlint标准规则)
docker run -v ${PWD}:/app itkdev/yarn:latest install docker run -v ${PWD}:/app itkdev/yarn:latest check-coding-standards
GitHub Actions
上述所有代码检查都在创建pull request时由GitHub Actions自动运行。
要本地运行操作,请安装act并运行
act -P ubuntu-latest=shivammathur/node:focal pull_request
使用act -P ubuntu-latest=shivammathur/node:focal pull_request --list
查看可以运行的单独工作流程作业,例如。
act -P ubuntu-latest=shivammathur/node:focal pull_request --job phpcsfixer
应用编码规范
-
PHP文件(PHP_CodeSniffer)
docker compose exec phpfpm composer apply-coding-standards
-
Markdown文件(markdownlint标准规则)
docker run -v ${PWD}:/app itkdev/yarn:latest install docker run -v ${PWD}:/app itkdev/yarn:latest apply-coding-standards
版本控制
我们使用SemVer进行版本控制。有关可用版本,请参阅此存储库的标签。
许可证
此项目受MIT许可证的许可 - 有关详细信息,请参阅LICENSE.md文件。