立即关闭配置更新和全球会话撤销(3个规则)
Immediate Access Shutdown for Profile Updates and Global Session Revocation (3 Rules)
健康科技的注册流可以通过它的captcha并仍然留下一个危险的缺口:一个账户在配置数据库被禁用,而已经发行的会话则继续工作. 这是一个进入控制事件 等待一个时钟耗尽。 短答:将禁用模式作为可审计的剖面-状态过渡,然后作为单独的,明确的生命周期行动而取消每个会话. 将短期准入证书及其更新能力置于不同的风险控制之下,并使“这种装置”和“所有装置”的操作不同。 事件教训:配置旗不是杀人开关 业务上的制约因素是立即关闭。 当滥用审查标记一个用户被禁时,系统必须停止新工作并取消现有的访问,而无需依赖浏览器的登录按钮. 我已经...
健康科技的注册流可以通过它的captcha并仍然留下一个危险的缺口:一个账户在配置数据库被禁用,而已经发行的会话则继续工作. 这是一个进入控制事件 等待一个时钟耗尽。 短答:将禁用模式作为可审计的剖面-状态过渡,然后作为单独的,明确的生命周期行动而取消每个会话. 将短期准入证书及其更新能力置于不同的风险控制之下,并使“这种装置”和“所有装置”的操作不同。 事件教训:配置旗不是杀人开关 业务上的制约因素是立即关闭。 当滥用审查标记一个用户被禁时,系统必须停止新工作并取消现有的访问,而无需依赖浏览器的登录按钮. 我被调用 错过的工作和重复交付; 同样的经验教训也在这里适用: 只有每个消费者都注意到,国家变化才有用。 变体简单:每个认证动作都是可核查,可审计,可回收的状态过渡. 注册保护(包括Captcha核查)是一个过渡. 会话的创建,核查,刷新,和撤销还有4个. 把它们当作一个巨大的“自动请求”来对待,使得无法回答诸如“在禁令之后哪些会议很活跃”这样的审计问题。 首先写出禁令,并附有审计记录,将用户与操作员,理由,请求ID联系起来. 然后发布全局撤销命令. 命令很重要,因为没有持久配置状态的撤销可以通过自动刷新来被撤销;没有撤销的配置更新让旧的持卡人证书活到到期. 这听起来很明显。 它经常被错过。 配置状态更新应如何触发全球会话取消 ? 在您的服务中使用两个明确的呼叫和一个交易边界 。 更改配置状态。 在每个设备上取消会话。 它们是单独的动词,因为它们有单独的审计语义和重试行为. 呼叫者应在写出路径上附加一等能键,在进行网络呼叫之前坚持决定,并记录两个回复. 超时后的重试必须重放相同的决定,而不是创建第二个禁忌事件或默默地从一个用户切换到另一个用户. 在HTTP 429上,荣誉和退后;在滥用时的紧凑回路可能成为自己的拒绝服务. 在实践中,我把审计行,选择的用户ID,政策版本,以及"一能"的密钥保存在一个持久的记录中,然后让一个工人重播确切的一对通话,直到知道两种结果为止. 这名员工还给出了“可视更新的、仍在运行的会议”的衡量标准,因为第一次呼叫的绿色回应并不能证明停产是完整的;辅助人员需要这两个州之间有限度、可观察的交接。 这里有一个紧凑的Go处理器。 周围的应用程序拥有授权,审计存储,以及决定是否禁止配置的政策. API的呼叫被故意限制在与关闭有关的两个行动. 举例来说,一个可信任的后端已经对虐待审查者进行了认证。 它没有将密钥放入源中,它会露出一个非-2xx机构,这样操作员就可以将失败与审计记录联系起来. 您的里程在重试窗口上可能有所不同; 选择一个比您事件政策允许的时间短的里程, 当取消的电话仍然等待时提醒 。 简短的证书,长期的后果 访问令牌应该是短命的,因为它们经常被提交,一旦复制就很难召回. 刷新能力应该得到不同的控制:将其绑入会话记录,在使用时旋转,并在用户被禁时撤销该记录. 符号核查员应检查签名和会话的当前状况;仅凭签名有效性并不能证明仍然允许访问。 核查和更新是独立的生命周期行动。 成功刷新不应恢复已取消的会话, 以及失败