RPC_GSS_SECCREATE(3) |
FreeBSD Library Functions Manual |
RPC_GSS_SECCREATE(3) |
名称
RPCSEC_GSS —
GSS-API ベースの RPC のための認証
ライブラリ
RPC GSS-API Authentication Library (librpcsec_gss, -lrpcsec_gss)
解説
RPCSEC_GSS は、RPC プロトコルのためのセキュリティメカニズムです。それは、クライアントとサーバの間のセキュリティコンテキストを確立するために Generic Security Service API (GSS-API)、とクライアントとサーバの間のすべてのその後の通信が適切に認証されることを保証するために使用します。オプションで、接続するために特別な防護を適用することができます。整合性サービスは、ピア (相手側) によって送信されるすべてのデータが、変更なしで受信されることを保証するためにチェックサムを使用します。プライバシサービスは、第三者が、接続のためにデータにアクセスできないことを保証するために暗号化を使用します。
このシステムを使用するためには、アプリケーションは、最初に、セキュリティコンテキストを確立するために rpc_gss_seccreate() を使用しなければなりません。
データ構造
RPCSEC_GSS によって使用されるデータ構造は、下記に通りです。
-
rpc_gss_service_t
-
このタイプは、
rpc_gss_seccreate() に必要であるセキュリティサービスのタイプを定義します。
typedef enum {
rpc_gss_svc_default = 0,
rpc_gss_svc_none = 1,
rpc_gss_svc_integrity = 2,
rpc_gss_svc_privacy = 3
} rpc_gss_service_t;
-
rpc_gss_options_ret_t
-
この構造体は、セキュリティコンテキストを作成している間に使用される様々なオプション値を含んでいます。
typedef struct {
int req_flags; /* GSS 要求ビット */
int time_req; /* 要求された存続期間 */
gss_cred_id_t my_cred; /* GSS 資格証明 */
gss_channel_bindings_t input_channel_bindings;
} rpc_gss_options_req_t;
-
rpc_gss_options_ret_t
-
作成されたセキュリティコンテキストの様々な詳細は、この構造体を使用して返されます。
typedef struct {
int major_status;
int minor_status;
u_int rpcsec_version;
int ret_flags;
int time_req;
gss_ctx_id_t gss_context;
char actual_mechanism[MAX_GSS_MECH];
} rpc_gss_options_ret_t;
-
rpc_gss_principal_t
-
このタイプは、GSS-API のエクスポートされた名前形式 (その他の詳細については、
gss_export_name(3) を参照してください) で表されるクライアントプリンシパルを参照するために使用されます。この形式の名前は、アクセスコントロールリストに格納されるか、またはエクスポートされた名前形式の他の名前と比較されます。この構造体は、
rpc_gss_get_principal_name() によって返されて、また、
rpc_gss_rawcred_t 構造体によって参照されます。
typedef struct {
int len;
char name[1];
} *rpc_gss_principal_t;
-
rpc_gss_rawcred_t
-
この構造体は、セキュリティコンテキストに関連している生 (raw) の資格証明にアクセスするために使用されます。
typedef struct {
u_int version; /* RPC バージョン番号 */
const char *mechanism; /* セキュリティメカニズム */
const char *qop; /* 保護の品質 */
rpc_gss_principal_t client_principal; /* クライアント名 */
const char *svc_principal; /* サーバ名 */
rpc_gss_service_t service; /* サービスタイプ */
} rpc_gss_rawcred_t;
-
rpc_gss_ucred_t
-
rpc_gss_getcred() を通してアクセスされる生 (raw) の資格証明の派生形である、unix 資格証明書。
typedef struct {
uid_t uid; /* ユーザ ID */
gid_t gid; /* グループ ID */
short gidlen;
gid_t *gidlist; /* グループのリスト */
} rpc_gss_ucred_t;
-
rpc_gss_lock_t
-
構造体は、特定の QOP とサービスを実行するためんい使用されます。
typedef struct {
bool_t locked;
rpc_gss_rawcred_t *raw_cred;
} rpc_gss_lock_t;
-
rpc_gss_callback_t
-
rpc_gss_set_callback() によって使用されるコールバック構造体。
typedef struct {
u_int program; /* RPC プログラム番号 */
u_int version; /* RPC バージョン番号 */
/* ユーザ定義のコールバック */
bool_t (*callback)(struct svc_req *req,
gss_cred_id_t deleg,
gss_ctx_id_t gss_context,
rpc_gss_lock_t *lock,
void **cookie);
} rpc_gss_callback_t;
-
rpc_gss_error_t
-
rpc_gss_get_error() によってエラー情報を返すために使用される構造体。
typedef struct {
int rpc_gss_error;
int system_error; /* errno と同じ */
} rpc_gss_error_t;
/*
* rpc_gss_error のための値
*/
#define RPC_GSS_ER_SUCCESS 0 /* エラーなしr */
#define RPC_GSS_ER_SYSTEMERROR 1 /* システムエラー */
歴史
RPCSEC_GSS マニュアルページは、
FreeBSD 8.0 ではじめて登場しました。
作者
このマニュアルページは、
Doug Rabson <dfr@FreeBSD.org>によって書かれました。