itk-dev/azure-ad-delta-sync

Azure AD Delta Sync 流的 Composer 包

1.0.1 2021-09-01 08:23 UTC

This package is auto-updated.

Last update: 2024-09-11 09:54:30 UTC


README

Azure AD Delta Sync 流的 Composer 包。

参考

用法

如果您想在 Symfony 或 Drupal 项目中使用此包,应使用以下之一

直接安装

要直接安装此包,请运行

composer require itk-dev/azure-ad-delta-sync

流程

要启动流程,需要调用 Controllerrun(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 文件以获取详细信息