itkdev / adgangsstyring
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-06-11 09:23:33 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
测试套件使用模拟来生成测试替身。
检查编码标准
-
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文件