itk-dev / azure-ad-delta-sync
Azure AD Delta Sync 流的 Composer 包
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- nyholm/psr7: ^1.4
- psr/http-client: ^1.0
- symfony/options-resolver: ^4.4 || ^5.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-11 09:54:30 UTC
README
Azure AD Delta Sync 流的 Composer 包。
参考
用法
如果您想在 Symfony 或 Drupal 项目中使用此包,应使用以下之一
- Symfony: itk-dev/adgangsstyring-bundle
- Drupal: itk-dev/adgangsstyring_drupal
直接安装
要直接安装此包,请运行
composer require itk-dev/azure-ad-delta-sync
流程
要启动流程,需要调用 Controller
的 run(HandlerInterface $handler)
命令。
因此,您必须创建自己的实现 HandlerInterface
的处理器。
示例用法
<?php use ItkDev\AzureAdDeltaSync\Handler\HandlerInterface; class SomeHandler implements HandlerInterface { public function collectUsersForDeletionList(): void { // Some start logic } public function removeUsersFromDeletionList(array $users): void { // Some user logic } public function commitDeletionList(): void { // Some commit logic } }
请注意,removeUsersFromDeletionList()
可能会被多次调用,因为我们对每个请求的限制是 100 个用户。
要启动流程,提供一个实现 PSR-18 ClientInterface
的 HTTP 客户端,以及下面示例中显示的所需选项。
注意,此示例使用 Guzzle HTTP 客户端。有关实现 PSR-18 的库列表,请点击 这里。
use GuzzleHttp\Client; use ItkDev\AzureAdDeltaSync\Controller; $options = [ 'tenant_id' => 'something.onmicrosoft.com', // Tenant id 'client_id' => 'some_client_id', // Client id assigned by authorizer 'client_secret' => 'some_client_secret', // Client password assigned by authorizer 'group_id' => 'some_group_id', // Group id provided by authorizer ]; $handler = new SomeHandler(); $client = new Client(); $controller = new Controller($client, $this->options); $controller->run($handler);
一般评论
请注意,此包不执行用户同步,而是提供当前分配给特定组的所有用户的列表。
如果指定的组不包含用户,将抛出异常。这是为了避免系统产生每个用户都应该被删除的印象。
开发环境设置
本项目包含一个 docker-compose.yml
文件,包含 PHP 7.4 映像。要安装依赖项,可以运行
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 文件以获取详细信息