通过SCIM v2.0实现用户同步的API
跨域身份管理系统v2.0
现在,按照RFC 7642、7643、7644,Interact支持SCIM v2.0版本,用于用户配置、组配置和关联的配置文件信息配置,从而实现一体化配置文件管理体验。raybet雷竞技官网入口
Interact提供了许多模式扩展,以覆盖所有概要文件字段和额外的概要文件功能,并提供了在用户更新时通过SCIM设置和更新它们的能力。
现在,Interact支持几种模式。
配置
配置文件源
要配置Interact以接受SCIM请求,您需要添加一个新的SCIM数据源并生成一个授权令牌。
创建新的SCIM概要文件源
超级用户转到应用程序设置>人员管理>配置文件源管理.
点击SCIM。
输入用户友好的名称,单击生成密钥,并确保活跃的复选框已选中。强烈建议您还检查“SCIM服务中的日志请求正文”,因为这将提供更详细的日志记录。
保留一份身份验证令牌因为这将需要在您的记录系统中设置SCIM供应。
检索SCIM配置设置
超级用户转到应用程序设置>人员管理>配置文件源管理.
找到现有的SCIM概要文件源。
你可以在身份验证令牌通过编辑概要文件源,您可以在表(Api Url后缀列)。
身份验证
OAuth持名令牌基于身份验证——此方法基于生成的令牌,该令牌包含在授权标头中。
授权:承载<令牌>
基URL
这是所有核心SCIM端点将位于的URL。
如。https://intranet.mysite.com/api/v2/scim/v2
服务配置端点
可以根据RFC规范调用服务配置端点来加载有关受支持的协议、操作和其他可选的SCIM v2.0特性的信息。雷竞技网站上
https://intranet.mysite.com/api/v2/scim/v2/ServiceProviderConfig(需要有效的授权标头)
可以从应用程序设置的管理概要文件源中配置和检索此信息。
支持的资源类型
- 用户
- 组
这两个资源都支持许多扩展模式,以在Interact生态系统中提供完整的体验。
资源类型和相关的模式可以在这里访问:
https://intranet.mysite.com/api/v2/scim/v2/ResourceTypes(需要有效的授权标头)
支持模式
模式骨灰盒 | 目的 |
---|---|
urn: ietf:参数:scim:模式:核心:2.0:用户 | 核心SCIM用户模式 |
urn: ietf:参数:scim:模式:扩展:企业:2.0:用户 | 企业用户的核心SCIM用户模式扩展 |
urn: ietf:参数:scim:模式:扩展:interactsoftware: 2.0:用户 | 交互软件用户的用户模式扩展 |
urn: ietf:参数:scim:模式:扩展:interactsoftwareadditionalfields: 2.0:用户 | 交互软件附加配置文件字段的用户架构扩展 |
urn: ietf:参数:scim:模式:核心:2.0:集团 | 核心SCIM组模式 |
urn: ietf:参数:scim:模式:扩展:interactsoftware: 2.0:集团 | 交互软件组的组模式扩展 |
访问模式,以及关于支持字段、描述、唯一性约束、必需字段、规范值和其他有用信息的详细信息,可以在这里找到:
https://intranet.mysite.com/api/v2/scim/v2/Schemas(需要有效的授权标头)
或者,你可以在这个端点上访问单个模式的所有细节:
https://intranet.mysite.com/api/v2/scim/v2/Schemas/ {schema_urn}(需要有效的授权标头)
用户配置
用户供应和维护通过用户
资源,这是一个常见的SCIM 2.0端点。
如。https://intranet.mysite.com/api/v2/scim/v2/Users
对象支持以下操作用户
端点。
动作(HTTP动词) | 描述 |
---|---|
POST /用户 | 创建新用户。 此端点将尝试基于用户名、主电子邮件或外部ID (UMI UID)匹配任何现有用户,以避免用户重复。 此端点支持为新用户设置密码,以便他们可以使用本地目录登录—当GET端点被询问时,密码字段将不会返回,并且不能为现有用户使用SCIM更新密码(出于安全原因,以防认证密钥被泄露。) |
GET /用户 | 获取所有用户。 支持通过 ? startIndex = 0数= 10 参数。支持用户过滤 ?filter=userName eq "username123" 而且?filter=externalId eq "myexternalid" .额外的字段(如果用户分配了任何字段)也会在这个有效负载中返回。 |
GET /用户/ {id} | 通过交互用户ID获取用户配置文件。 |
把/用户/ {id} | 根据交互用户ID更新用户配置文件——此端点将执行替换操作,因此任何未包含在此有效负载中的内容都将被擦除。 此端点通常通过调用来使用 GET /用户/ {id} 首先,应用更改,然后调用把/用户/ {id} .这个端点可以被调用到*禁用交互中的用户,通过提交请求 “活跃”:假的 属性。 |
补丁/用户/ {id} | 用于用户的部分更新。 这个端点可以被调用到*禁用交互中的用户,通过提交请求 “活跃”:假的 属性。它还可以用来更新,添加,删除用户的任何信息。 支持值路径和属性路径请求。 逻辑值表达式支持电子邮件(类型eq work),地址(类型eq home/work), phoneNumbers(类型eq home/work/mobile), ims(类型eq chat/skype)。 不支持其他值表达式。 |
删除/用户/ {id} | 存档用户-这是一个不可逆的操作。 |
由于在此SCIM集成中有可用的交互软件扩展,因此可以使用SCIM 2.0管理用户档案的几乎所有方面:
- 基本配置文件字段
- 管理层次结构
- 登录信息
- 包括在用户创建时为本地登录设置密码——这将基于交互应用程序设置应用密码强度验证——如果使用了密码强度正则表达式,则将使用PCRE正则表达式引擎进行评估(请注意支持的语法,并在应用正则表达式之前使用在线PCRE正则表达式验证器。)如果检测到无效/不兼容的正则表达式,SCIM用户POST端点将返回正则表达式验证消息。https://pcre.org/pcre.txt官方的PCRE正则表达式规范
- 附加字段
- 可以在应用程序设置中配置,以扩展配置文件与自定义字段,然后可以通过SCIM填充
- 公司,部门,地点成员
- 用户类型
- 您可以将用户分配为
- 内部网用户
- 高级用户
- Non-Intranet用户
- 等。
- 您可以将用户分配为
以下是使用Bio字段时的一些指导:
- Interact的SCIM流程受到JSON特性的约束,即Bio字段中的所有信息必须在一行上
- 特殊字符必须转换后才能放在Bio字段中:
- 退格符替换为\b
- Form feed将被\f替换
- 换行符替换为\n
- 回车替换为\r
- 标签将被替换为\t
- 双引号替换为"
- 将反斜杠替换为\
- 任何其他控制字符(U+0000到U+001F)也必须转义
- 下面是一个有效的例子:
- \字符不能在生物字段中存在,除非它后面跟着b, f, n, r, t,”或另一个\,否则包将出错。一个例子是\ '和c:\test如果Bio字段的一部分无法加载。
- 下面是一个无法加载的例子:"bio": "These won ' t work: \ ' c:\test \a \c \d etc. "
- Interact并没有测试每个示例或场景,以查看哪些可以(或不可以)通过API加载,以及它将如何在UI中呈现。以上信息旨在为具有特殊特征的已知问题提供一些指导。
经理的关系
通常,SCIM期望manager.value
字段,以包含已配置用户的SCIM用户ID。
许多系统正确地支持这一点,并在内部维护值映射,以确保与任何用户创建和更新请求一起发送正确的Manager ID。Azure AD, OneLogin等。
有一些系统不提供与SCIM兼容的Manager ID解析的开箱即用支持——通常是由于系统中的其他约束,例如没有对组织结构或链接的用户配置文件的本机支持。Okta。
然后,这使得集成变得不那么无缝,并且需要由客户构建自动化,以便根据概要文件“撬入”正确的Manager id。这是一个构建和维护的痛苦。
Interact的SCIM集成扩展了对的“官方”支持manager.value
支持,它将分析该值,以确定它是否是一个SCIM用户ID,如果不是,它将获取该值并尝试使用他们的:
- 主/工作电子邮件
- 用户名
- ExternalID (UMI UID)
这个功能需要注意的是,查找选择email=value或username=value或externalid=value的*个用户
必须返回恰好1个用户。如果匹配的用户超过1个,则管理器分配(和调用)将失败。
这种由Interact的SCIM接口提供的支持允许从固有地与这些概念作斗争的系统同步组织结构,或者不提供全面的SCIM支持,只要manager.value
可以设置为已供应用户的唯一标识符。
组配置
组供应,维护通过组
资源,这是一个常见的SCIM 2.0端点。
如。https://intranet.mysite.com/api/v2/scim/v2/Groups
对象支持以下操作组
端点。
动作(HTTP动词) | 描述 |
---|---|
POST /组 | 创建一个特定类型的新组。 此端点将尝试根据名称或外部ID (UMI UID)匹配任何现有组,以避免组重复。 |
GET /组 | 召集所有小组。 支持通过 ? startIndex = 0数= 10 参数。支持组过滤 ?filter=displayName eq "groupname" 而且?filter=externalId eq "myexternalid" .成员 属性没有在这个端点上填充——要获取组成员,需要调用get /Groups/{id}端点。 |
得到/组/ {id} | 通过交互组ID获取一个组。 |
把/用户/ {id} | 根据交互组ID更新组——此端点将执行替换操作,因此将擦除此有效负载中不包括的任何内容。 此端点通常通过调用来使用 得到/组/ {id} 首先,应用更改,然后调用把/团体/ {id} .这可能是一个繁重的操作,因为该有效负载接受并尊重成员 属性,并将相应地更新成员。 |
片/组/ {id} | 根据交互组ID更新组——此端点接受一组操作,例如“添加成员123”或“删除成员456”,而不是接受整个对象。 这使得这个端点对于组成员操作非常有效。 此端点仅支持对所有可变属性的添加、删除和替换操作。 成员属性支持逻辑值表达式,并支持通过成员值字段进行筛选。 不支持其他值表达式。 |
删除/组/ {id} | 此端点删除组和所有关联的成员-此操作是不可逆的。 |
由于在此SCIM集成中有可用的交互软件扩展,因此可以管理组的特定交互属性,包括组类型,例如:
- 公司
- 部门
- 位置
- 安全组
还可以使用这些端点来查看对象的成员角色在交互中创建,作为API中返回的角色。
其他资源
更新 5个月前