跳到主要内容

6. 隐私考量 (Privacy Considerations)

由于本规范描述的协议几乎只处理关于软件的信息, 而不是关于人的信息, 因此其使用带来的隐私顾虑很少. 值得注意的例外是 Section 2 中定义的 "contacts" 字段, 该字段包含负责客户端软件的开发者或其他各方的联系信息. 这些值旨在显示给最终用户, 并可供授权服务器管理员访问. 因此, 开发者可能希望提供专门用于支持该客户端的电子邮件地址或其他联系信息, 而不是使用其个人或工作地址. 另一种做法是, 开发者可以为客户端提供一个集体电子邮件地址, 以便在开发者离开且其他人接手该责任后, 仍能持续联系并支持客户端软件.

一般而言, 客户端元数据 (client metadata), 例如客户端名称和软件标识符, 在同一客户端软件的所有实例之间是通用的, 因而不会给最终用户带来隐私问题. 另一方面, 客户端标识符 (client identifier) 通常对某个特定客户端实例是唯一的. 对于由许多用户使用的网站等客户端, 客户端标识符可能不会带来显著隐私顾虑. 但是, 对于安装在单个最终用户设备上的原生应用等客户端, 客户端标识符可能会在 OAuth 2.0 事务中被唯一跟踪, 并将其使用与该单个最终用户关联起来. 不过, 由于客户端软件仍需要资源所有者通过 OAuth 2.0 授权授予进行授权, 因此无论客户端标识符是否唯一, 都可以通过将已认证的资源所有者与发起请求的客户端标识符相关联来进行这类跟踪.

注意, 本规范禁止客户端创建自己的客户端标识符. 如果客户端能够这样做, 单个客户端实例就可能跨多个串通的授权服务器被跟踪, 从而导致隐私和安全问题. 此外, 即使对于同一个软件实例, 客户端标识符通常也是按每次注册请求唯一签发的. 这样, 应用程序可以通过多次注册并表现为完全独立的应用程序, 在一定程度上改善隐私. 但是, 这种技术会带来显著的可用性成本, 因为每个资源所有者需要进行多次授权, 因而实践中不太可能使用.