一個伺服器主管名稱。一個伺服器的主管名稱總是被指定為一個 service@host - 形式的以 NULL 終結的 ASCII 字串,例如 nfs@eng.acme.com。
當一個客戶端在建立安全上下文時,它會以此格式來指定伺服器主管名稱(請參見 "建立一個上下文")。同樣地,當一個伺服器需要設定它所代表的一位主管名稱時會使用 rpc_gss_set_svc_name(),它會將此格式的主管名稱視為一個引數。
一個客戶端主管名稱。一個伺服器所收到的客戶端的主管名稱為一個 rpc_gss_principal_t 結構的形式﹕所用的機制所決定的一個計數的不透明位元組字串。rpcsec_gss(3N) 線上援助頁中將對此結構加以說明。
一個伺服器必須在啟動時被告知它將代表的主管名稱。(一個伺服器可以作為一個以上的主管。)rpc_gss_set_svc_name() 設定主管名稱﹕
char *principal, *mechanism; u_int req_time; principal = "nfs@eng.acme.com"; mechanism = "kerberos_v5"; req_time = 10000; /* time for which credential should be valid */ rpc_gss_set_svc_name(principal, mechanism, req_time, SERV_PROG, SERV_VERS);
(Kerberos 會忽視 req_time 參數。其他的辯證系統可能會使用它。)
如需更詳細的資訊,請參見 rpc_gss_set_svc_name(3N) 線上援助頁。
伺服器必須能夠在一個客戶端的主管名稱之上操作 - 例如將一個客戶端主管名稱與一個存取控制清單做比較,或是為該客戶端查詢一張 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,甚或是一個使用者定義的應用程式名稱。
節點可以是,例如一個 UNIX 機器的名稱。
領域可能是,例如一個 DNS、NIS、或 NIS+ 的領域名稱,或是一個 Kerberos 範疇。
每一種安全機制都需要不同的辨識參數。例如 Kerberos V5 需要一個使用者名稱,以及選擇性的合格節點和領域名稱(Kerberos 中稱為主機及範疇名稱)。
如需更詳細的資訊,請參見 rpc_gss_get_principal_name(3N) 線上援助頁。
使用 free() 程式庫呼叫來釋放主管名稱。