8.1. 原生应用客户端注册
除非使用类似于客户端动态注册的机制,以提供实例特定的密钥,否则原生应用都被分类为公共客户端,如第 2.1 节所定义。它们必须作为这种类型,与授权服务器进行注册。授权服务器必须在客户端注册细节中记录客户端类型,以便依此识别并处理请求。
8.1.1. 原生应用客户端认证
被静态包含在分发给多位用户的应用中的密钥,不应该被视为机密密钥,因为用户可以检查他的那份副本,以获取这一共享密钥。因此,不建议授权服务器要求公共原生应用客户端使用共享密钥进行客户端认证,因为除了识别出客户端以外,这样做的意义不大,更何况 client_id 请求参数已经提供了识别依据。
如果授权服务器仍然需要在原生应用客户端中静态包含共享密钥,那么它必须将客户端视为公共客户端(如第 2.1 节所定义),并且禁止将密钥作为客户端身份的证明。在不采取额外措施的情况下,这种客户端容易受到客户端冒充的攻击(见第 7.3.1 节)。