Sun 엔터프라이즈 인증 메커니즘 안내서

주체 이름

보안 콘텍스트를 설정하고 유지하려면 두 가지 유형의 주체 이름이 필요합니다.

서버 주체 이름 설정

서버는 시작할 때 표시할 주체 이름을 받아야 합니다. (한 서버는 여러 주체로 작동할 수 있습니다.) rpc_gss_set_svc_name() 함수는 주체 이름을 설정합니다.


예 8-3 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 구조 포인터의 형식을 유지합니다. rpc_gss_principal_t에 대한 자세한 내용은 rpcsec_gss(3N) 매뉴얼 페이지를 참고하십시오. 서버가 받은 주체 이름을 알려진 실재 이름과 비교하려면 위와 같은 형식으로 주체 이름을 생성할 수 있어야 합니다.

rpc_gss_get_principal_name() 함수를 호출하면 네트워크에서 각 개인을 고유하게 식별하는 매개변수를 입력으로 받아, rpc_gss_principal_t 구조 포인터로 주체 이름을 생성합니다.


예 8-4 rpc_gss_get_principal_name()

rpc_gss_principal_t *principal;

rpc_gss_get_principal_name(principal, mechanism, name, node, domain);
. . .

rpc_gss_get_principal_name() 함수에 대한 인수는 다음과 같습니다.

각 보안 메커니즘에 따라 다른 식별 매개변수가 필요합니다. Kerberos V5의 경우, 사용자 이름은 필수, 해당 노드와 도메인 이름(Kerberos 용어로는 호스트 및 영역 이름)은 선택 사항입니다.

자세한 내용은 rpc_gss_get_principal_name(3N) 매뉴얼 페이지를 참고하십시오.

주체 이름 해제

주체 이름은 free() 라이브러리 호출로 해제됩니다.