将配置视为生命周期合同
SCIM 可以标准化身份信息的交换方式,但说平台支持 SCIM 并不能建立其完整的访问生命周期。这些要求必须确定支持哪些资源和属性、用户如何与租户绑定、角色更改意味着什么以及禁用如何影响现有访问。配置响应并不能自动证明每个会话、导出权限或 API 凭证已被撤销。
RFC 7643 定义 SCIM 核心架构,包括用户和组资源。 RFC 7644 定义协议操作和配置注意事项。这些主要规范提供了需求词汇表,但不能证明EmailAuth实现了任何特定端点或生命周期行为。在准备本手稿的过程中,没有创建、更改、禁用或删除任何用户。
建立标识符和租户绑定
记录服务提供商的资源标识符、配置客户端的相关标识符(如果使用)以及操作适用的租户。 RFC 7643区分id和externalId;它们不应该被随意替换为可变的电子邮件地址。用户的地址或显示名称可以更改,但这并不意味着新用户应该继承旧帐户。定义应用程序如何识别现有资源并防止更新针对其他租户的用户。
RFC 7644讨论了多租户以及客户与租户的关联,但没有规定一种通用租户实施。要求实际供应商解释其绑定模型:哪个经过身份验证的配置客户端可以在哪个租户和资源集上运行。请求中提供的租户标识符本身不足以授权。实现必须在经过身份验证的客户端和请求的范围之间建立关系,包括列表、搜索和生命周期操作。
指定支持的资源和更新行为
询问哪些用户和组属性被接受、返回、不可变、必需或忽略。文档扩展以及从组成员身份到应用程序权限的任何映射。对组对象的成功更新本身并不能证明相应的应用程序角色已更改。访问行为必须单独确认。避免假设每个支持 SCIM 的平台都支持相同的过滤器、PATCH 操作或发现端点。
RFC 7644定义了检索、创建、替换、修改和删除等操作,并描述了服务提供商配置发现。使用这些机制来询问有关支持的功能的精确问题。保留记录的错误行为和并发支持(如果适用)。如果某个操作不受支持,请记录受支持的替代方案,而不是将通用 SCIM 标签视为使用它的权限。这项工作中没有发生端点发现或请求执行。
定义禁用而不发明撤销
RFC 7643将用户活动属性描述为管理状态指示符,其最终含义由服务提供商确定。这是一个关键的资格。不能假定将 active 设置为 false 会使所有实现中的每个活动会话、API 令牌或委托集成失效。该要求应说明预期的访问结果,并要求当前平台证据显示实际发生的变化。
将禁用的用户与已删除的资源和删除组成员身份区分开来。每一种都可能对访问、保留的审核记录和以后的重新激活产生不同的后果。要求供应商解释现有会话的行为方式、紧急撤销的执行方式以及哪些非交互式凭证超出 SCIM 生命周期。如果平台需要单独的遏制行动,请记录该行动及其授权,而不是将其隐藏在“卸载完成”状态后面。
验证角色更改和保留的访问权限
角色减少是一项特别有用的测试,因为它可以公开缓存的或不完整的授权更新。定义初始允许的操作,在固定环境中应用授权的生命周期更改,并根据平台记录的时间检查现在不允许的操作是否被拒绝。将测试描述与测试已运行的声明分开。不要仅评估用户界面标签是否更改。
Azure 的多租户身份指南 将身份、授权和权利分开。将这种分离应用于需求:SCIM 可以在应用程序做出资源授权和商业权利决策时携带用户或组数据。删除许可证、禁用帐户和删除管理角色不一定是同一操作。记录哪个系统拥有每个决策以及如何检测不一致的状态。
访问矩阵工作表
创建包含配置客户端、绑定租户、目标资源、操作、预期角色或生命周期状态、预期授权结果和证据位置的矩阵。包括读取、搜索、导出相关的应用程序访问、写入和用户生命周期案例。至少使用两个具有可区分合成数据的独立租户设备,以便跨租户泄漏无法隐藏在相同的结果后面。拟议的设计不需要真实的租户数据。
添加以下负面案例:客户端尝试与另一个租户的用户联系,搜索返回另一个租户的记录,角色减少使管理写入可用,以及禁用的身份保留不受支持的访问。这些是防御性接受案例,而不是未经授权探测实时服务的指令。单独记录支持的 API 和应用程序行为,因为 SCIM 更新响应和应用程序授权决策是不同的证据项。
虚构诊断:具有活动会话的禁用记录
在测试用户资源被标记为非活动后,虚构的评估者会看到成功的响应。评估员最初将离职标记为完成。需求审阅者询问更新之前存在的应用程序会话是否仍然可以读取报告或启动导出。该团队意识到,演示仅证明了配置操作已被接受,而不是完整的访问结果。
建议的下一步是咨询供应商当前的会话行为并运行经批准的基于夹具的检查。如果需要单独撤销,生命周期程序必须包括授权所有者和验证。此场景是虚构的:未观察到非活动用户、活动会话或失败的撤销。它说明了缺失的验收标准,而不是断言任何真实平台中存在缺陷。
计划协调和异常处理
定义如何在不重复用户或扩大访问范围的情况下显示、重试和协调配置失败。记录客户端是否使用受支持的并发控制以及如何处理冲突的更改。临时的同步失败不应该默默地变成永久的权限异常。同样,在不了解操作和提供者行为的情况下,重试不应被描述为安全的。
该目录需要访问矩阵和涵盖跨租户读取、导出、写入和用户生命周期更改的负面测试。那些最初的测试仍然开放。本手稿提供了拟议的矩阵和要求,而不是实施证据。人类专家审查、来源适用性、生产路线、可访问性和所有者发布也保持开放。可发布的功能声明需要来自实际平台的当前支持的行为和授权结果,而不会暴露真正的用户秘密或租户数据。