Los servidores necesitan poder trabajar con el nombre de principal de un cliente; por ejemplo, para comparar el nombre de principal de un cliente con una lista de control de acceso o para consultar una credencial de UNIX para ese cliente, en caso de que exista. Estos nombres de principal se mantienen en forma de un puntero a una estructura rpc_gss_principal_t. (Para obtener más información sobre rpc_gss_principal_t, véase la página del comando man rpcsec_gss(3N)). Si un servidor desea comparar un nombre de principal recibido con el nombre de una entidad conocida, necesita poder generar un nombre de principal en ese formato.
La llamada rpc_gss_get_principal_name() toma varios parámetros de entrada que identifican de forma única a una persona de la red y genera un nombre de principal como un puntero de estructura rpc_gss_principal_t:
rpc_gss_principal_t *principal; rpc_gss_get_principal_name(principal, mecanismo, nombre, nodo, dominio); . . .
Los argumentos de rpc_gss_get_principal_name() son los siguientes:
principal es un puntero a la estructura rpc_gss_principal_t que se definirá.
mecanismo es el mecanismo de seguridad utilizado (recuerde que el nombre de principal que se está generando depende del mecanismo).
nombre es un nombre de persona o de servicio, como juan o nfs, o incluso el nombre de una aplicación definida por el usuario.
nodo podría ser, por ejemplo, un nombre de máquina de UNIX.
dominio podría ser, por ejemplo, un nombre de dominio de DNS, NIS, o NIS+ o un ámbito de Kerberos.
Cada mecanismo de seguridad necesita parámetros de identificación diferentes. Por ejemplo, Kerberos V5 necesita un nombre de usuario y, sólo de forma opcional, nombres completos de nombre y de dominio (en términos de Kerberos, nombres de sistema y de ámbito).
Para obtener más información, véase la página del comando man de rpc_gss_get_principal_name(3N).