I server devono poter operare sui nomi principali dei client, ad esempio per confrontare il nome principale di un client con il contenuto di una lista di controllo degli accessi, o per cercare una credenziale UNIX per quel client. Questi nomi principali sono tenuti in forma di puntatori a una struttura rpc_gss_principal_t. (Per maggiori informazioni su rpc_gss_principal_t, vedere la pagina man rpcsec_gss(3N).) Se un server vuole confrontare il nome principale che ha ricevuto con il nome di un'entità nota, esso deve poter generare un nome principale in quella forma.
La chiamata rpc_gss_get_principal_name() accetta come input diversi parametri che identificano in modo univoco una persona in una rete, e genera un nome principale in forma di puntatore alla struttura rpc_gss_principal_t:
rpc_gss_principal_t *principal; rpc_gss_get_principal_name(nome_principale, meccanismo, nome, nodo, dominio); . . .
Gli argomenti accettati da rpc_gss_get_principal_name() sono i seguenti:
nome_principale è un puntatore alla struttura rpc_gss_principal_t da impostare.
meccanismo è il meccanismo di sicurezza utilizzato (si ricordi che il nome principale generato è dipendente dal meccanismo).
nome può essere il nome di una persona o di un servizio, ad esempio mario o nfs, oppure il nome di un'applicazione definita dall'utente.
nodo può essere, ad esempio, il nome di un sistema UNIX.
dominio può essere, ad esempio, un dominio DNS, NIS o NIS+, oppure un settore Kerberos.
Ogni meccanismo di sicurezza richiede parametri di identificazione differenti. Ad esempio, Kerberos V5 richiede un nome utente e, solo opzionalmente, i nomi qualificati del nodo e del dominio (nella terminologia Kerberos, i nomi dell'host e del settore).
Per maggiori informazioni, vedere la pagina man rpc_gss_get_principal_name(3N).