2.4. Management of Client Redirect URIs (客户端重定向 URI 的管理)
2.4. Management of Client Redirect URIs (客户端重定向 URI 的管理)
OAuth 2.0 [RFC6749] 允许客户端在某些情况下使用未注册的 redirect_uri 值, 或允许授权服务器对客户端在授权端点呈现的 redirect_uri 应用自身的匹配语义. 然而, OAuth 安全 BCP [OAUTH-SECURITY-TOPICS] 以及 OAuth 2.1 规范 [OAUTH-V2] 要求授权服务器将 redirect_uri 参数与先前为特定客户端建立的某组重定向 URI 精确匹配. 这是尽早检测客户端冒充企图的手段, 并防止令牌泄漏与开放重定向. 缺点是可能使客户端管理更繁琐, 因为重定向 URI 通常是客户端策略中最易变的部分.
对已与授权服务器建立认证凭据的客户端使用 PAR 时, 可以放宽精确匹配要求. 这是可行的, 因为与常规授权请求不同, 授权服务器在授权流程开始前认证客户端, 从而确保其与合法客户端交互. 授权服务器可以允许此类客户端指定未事先向授权服务器注册的 redirect_uri 值. 这将为客户端提供更大灵活性 (例如, 在运行时按授权服务器生成不同的 redirect_uri 值) 并简化客户端管理. 是否对所提供的 redirect_uri 值施加限制由授权服务器自行决定, 例如, 授权服务器可以要求某一 URI 前缀, 或仅允许查询参数在运行时变化.
注: 设置事务专用的重定向 URI 的能力, 在客户端 ID 及相应凭据与策略由可信第三方 (例如, 通过包含客户端权限的客户端证书) 管理的场景中也很有用. 此类外部管理的客户端可与信任该第三方的授权服务器交互, 而无需额外注册步骤.