自今年6月以来,开发者在Cloudflare上创建了数千个第三方OAuth应用,累计授权次数已超过一百万。这一增长背后,是OAuth协议在委托访问场景中的广泛应用——它允许应用代表用户执行操作,而无需用户处理长期凭证或交出密码。
OAuth的工作模式在应用只需少量权限范围(scope)时表现良好。开发者常将其用于SaaS集成、内部工具、命令行工具(CLI)和智能体(agent)等场景。随着时间推移,Cloudflare的权限模型已变得更加精细,以支持不同工作流的细粒度授权。这对安全有利,但也让纯粹的“全有或全无”式授权确认界面越来越难以合理化。
![]()
此前的痛点:用户无法在确认界面收窄权限
过去,Cloudflare OAuth虽然允许客户端请求其已配置权限范围的一个子集,但一旦客户端发出请求,用户在授权确认界面上就无法进一步缩小授权范围。对用户而言,体验仍然是“全有或全无”:如果应用请求的权限超出了用户的接受度,用户只能要么批准全部请求,要么直接拒绝。
MCP(模型上下文协议)服务器就是一个典型例子。一个MCP服务器可能请求一组宽泛的权限,因为理论上智能体可能用到其中所有权限。但大多数用户并不希望智能体拥有那么大的访问权限。在此功能上线前,唯一的应对方式是让应用开发者在将用户引导至Cloudflare授权流程之前,自行构建一个自定义的权限选择界面。
新功能上线:OAuth权限范围自定义
今天,Cloudflare正式推出OAuth权限范围自定义功能。客户端所有者可以在配置OAuth客户端时,将特定权限范围标记为“可选”,从而让用户在授权时能够授予比应用请求范围更窄的权限子集。
OAuth规范本身已允许授权服务器授予比请求范围更窄的权限集。Cloudflare正是基于这一灵活性进行构建,使该功能能够干净地适配所有现有应用。
更多控制权,但不让用户淹没在权限清单中
引入权限范围选择功能的目标,是让注重安全的用户拥有更多灵活性,以便针对自身用例做出恰当选择,同时避免将授权确认界面变成一长串权限勾选清单。
启用权限范围自定义后,具体行为如下:
- 开发者可以将OAuth客户端上的特定权限范围标记为“必需”或“可选”
- 在授权时,用户可以从请求的权限集合中取消勾选“可选”权限
- “必需”和“可选”权限会针对该次授权流程所请求的权限范围进行评估
- 如果没有请求任何“可选”权限,授权确认体验与之前保持一致
- 默认情况下,授权确认界面仍授予完整的请求权限集
关键细节:权限评估仅针对本次授权请求
一个重要的细节是,“必需”和“可选”权限仅针对特定授权流程中请求的权限范围进行评估,而非客户端配置的全部权限范围。这一点很关键,因为OAuth客户端并不总是请求其完整配置的权限集。例如,一个命令行工具(CLI)可能只请求其全部已配置权限中的一小部分用于特定操作,此时权限范围的自定义评估将基于该次实际请求的范围进行,确保用户看到的可选权限与本次授权需求直接相关。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.