itk-dev/azure-ad-delta-sync-bundle

允许Azure AD Delta Sync流程的Symfony包

安装: 1

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2021-09-07 07:44 UTC

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文件。