サーバーはクライアントプリンシパル名を操作できる必要があります。たとえば、クライアントプリンシパル名をアクセス制御リストと比較するときや、そのクライアントの資格が存在するかどうか UNIX 資格を検索するときなどです。このようなプリンシパル名は rpc_gss_principal_t 構造体ポインタの形式で保存されます (rpc_gss_principal_t についての詳細は、rpcsec_gss(3N) のマニュアルページを参照)。サーバーが受信したプリンシパル名を既知のエンティティの名前と比較したい場合、受信した形式でプリンシパル名を生成できる必要があります。
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() の引数を示します。
principal は、設定する rpc_gss_principal_t 構造体へのポインタです。
mechanism は使用するセキュリティ機構です (生成されるプリンシパル名は機構に依存します)。
name はユーザー名またはサービス名です (joeh や nfs など)。あるいは、ユーザー定義のアプリケーション名にもなります。
node は UNIX マシン名などです。
domain は DNS、NIS、または NIS+ のドメイン名、あるいは Kerberos レルムなどです。
各セキュリティ機構には異なる識別パラメータが必要です。たとえば、Kerberos V5 には、ユーザー名と (オプションとして) 修飾されたノードとドメイン名 (Kerberos の用語では、ホストとレルムの名前) が必要です。
詳細は、rpc_gss_get_principal_name(3N) のマニュアルページを参照してください。