nzta/silverstripe-okta-api

此包已废弃,不再维护。未建议替代包。

与Okta API的集成

安装: 550

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 4

分支: 6

开放问题: 0

类型:silverstripe-vendormodule

2.1.0 2022-11-02 23:58 UTC

This package is auto-updated.

Last update: 2024-04-09 06:30:40 UTC


README

提供与Okta API集成以及将Okta中的用户和组同步到SilverStripe数据库的能力。

Okta Users API的文档可以在这里找到。Okta Groups API的文档可以在这里找到

需求

SilverStripe 4.x

功能

  • 队列任务以同步Okta用户到SilverStripe
  • 队列任务以同步Okta组到SilverStripe
  • 可配置队列任务的重新安排时间(用于按用户定义的时间间隔同步)
  • 可配置将SilverStripe数据库字段映射到Okta API字段
  • 可配置List Users API的缓存有效期
  • 可配置要同步的状态列表
  • CMS可配置的过滤器,用于定义要存储的同步组

安装

composer require nzta/silverstripe-okta-api

您需要在您的.env文件中添加以下常量

SS_OKTA_GATEWAY_REST_URL="https://<organisation>.okta.com/api/v1/"
SS_OKTA_API_TOKEN="<token>"

其中{organisation}是您的组织Okta子域,{token}是您的API令牌,可以通过以下说明生成。

配置

您可以通过向您的mysite/_config/config.yml中添加以下内容来更新您的成员字段映射

OktaProfileMemberExtension:
  okta_ss_member_fields_name_map:
    CustomField: 'customField'
    ExtraCustomField: 'profile.extraCustomField'

其中CustomFieldExtraCustomField是SilverStripe Member数据库字段名称,而customFieldprofile.extraCustomField是Okta API返回的每个用户的键。在profile.extraCustomField中的点表示法允许您映射到嵌套一级的字段,例如,在profile顶级键内的extraCustomField键。

注意:这会替换默认配置,因此如果您需要同步原始成员字段,例如FirstName、Surname和Email,则必须包含它们。

您可以通过向您的mysite/_config/config.yml中添加以下内容来添加/更新额外的队列任务

SyncOktaUsersJob:
  additional_job_list:
     - 'AdditionalFirstJob'
     - 'AdditionalSecondJob'

其中AdditionalFirstJobAdditionalSecondJob是您可以在主任务(SyncOktaUsersJob)完成后运行的额外SilverStripe QueuedJobs。您可以设置public $schedule_after静态属性以延迟额外任务的启动时间。例如,设置public $schedule_after = 30意味着附加任务将在主任务完成后30秒开始。

Okta组过滤器

您可以在CMS中创建过滤器来定义应保存到SilverStripe数据库中的组。这些过滤器通过定义一个Okta API组应匹配的键/值对来工作。这些过滤器配置为使用OR样式过滤器进行匹配,因此您可以创建多个过滤器,而Okta API中的每个组只需匹配其中一个过滤器。

这些过滤器可以在Okta Group Filters ModelAdmin中创建,每个过滤器都有一个FilterValue字段,分别映射到相应的键/值对。