RPC 认证协议

用于向服务器认证调用者的 RPC 协议供应 (反之亦然) 作为 RPC 协议的一部分提供。

每个远程过程调用都由服务器上的 RPC 包进行认证。 类似地, RPC 客户机包生成并发送认证参数。 调用消息具有两个认证字段: 凭证和验证器。 应答消息具有一个认证字段: 响应验证器。

以下 RPC 协议规范将调用消息的凭证以及调用和应答消息的验证者定义为不透明数据类型:

enum auth_flavor {
     AUTH_NULL    = 0,
     AUTH_UNIX    = 1,
     AUTH_SHORT   = 2,
     AUTH_DES     = 3
     /* and more to be defined */
};
struct opaque_auth {
     auth_flavor flavor;
     opaque body<400>;
};

任何 opazz_auth 结构都是 auth_flavor 枚举,后跟对 RPC 协议实现不透明的字节。 认证字段中包含的数据的解释和语义由单独的独立认证协议规范指定。

如果认证参数被拒绝,那么响应消息会说明原因。 一个服务器可以同时支持多种类型的认证。