服务器需要能够对一个客户机的授权对象名称进行操作 - 例如,为了将一个客户机的授权对象名称与一个访问控制列表进行比较,或为该客户机检索一个 UNIX 资格,如果此类的一个资格存在的话。该授权对象名称以 rpc_gss_principal_t 结构指针的形式得到保存。(请参见 rpcsec_gss(3N) 手册页,了解更多有关 rpc_gss_principal_t 的信息。) 如果一个服务器想要将其业已收到的一个授权对象名称与一个已知实体的名称进行比较,则其需要能够以该形式生成一个授权对象名称。
rpc_gss_get_principal_name() 调用将对网络上某个个体进行独特识别的多个参数作为输入,生成一个授权对象名称,作为一个 rpc_gss_principal_t 结构指针:
rpc_gss_principal_t *principal; rpc_gss_get_principal_name(principal, mechanism, name, node, domain); . . .
用于 rpc_gss_get_principal_name() 的变元如下:
授权对象 是一个到需要设定的 rpc_gss_principal_t 结构的指针。
机制 是所使用的安全机制 (请记住,所生成的授权对象名称是与机制有关的)。
名称 是一个个体或服务名称,诸如 joeh 或 nfs,乃至一个用户定义的应用程序的名称。
例如, node 可能会是一个 UNIX 机器名称。
例如, domain 可能会是一个 DNS, NIS, 或 NIS+ 域名,或者是一个 Kerberos 区域。
每个安全机制要求不同的识别参数。例如, Kerberos V5 要求一个用户名以及可选的合格节点和域的名称 (以 Kerberos 术语讲,就是主机和区域名)。
如要了解更多的信息,请参见 rpc_gss_get_principal_name(3N) 手册页。