EN JA
KRB5_GET_INIT_CREDS(3)
KRB5_GET_INIT_CREDS(3) FreeBSD Library Functions Manual KRB5_GET_INIT_CREDS(3)

名称

krb5_get_init_creds, krb5_get_init_creds_keytab, krb5_get_init_creds_opt, krb5_get_init_creds_opt_alloc, krb5_get_init_creds_opt_free, krb5_get_init_creds_opt_init, krb5_get_init_creds_opt_set_address_list, krb5_get_init_creds_opt_set_addressless, krb5_get_init_creds_opt_set_anonymous, krb5_get_init_creds_opt_set_default_flags, krb5_get_init_creds_opt_set_etype_list, krb5_get_init_creds_opt_set_forwardable, krb5_get_init_creds_opt_set_pa_password, krb5_get_init_creds_opt_set_paq_request, krb5_get_init_creds_opt_set_preauth_list, krb5_get_init_creds_opt_set_proxiable, krb5_get_init_creds_opt_set_renew_life, krb5_get_init_creds_opt_set_salt, krb5_get_init_creds_opt_set_tkt_life, krb5_get_init_creds_opt_set_canonicalize, krb5_get_init_creds_opt_set_win2k, krb5_get_init_creds_password, krb5_prompt, krb5_prompter_posixKerberos 5 初期認証関数

ライブラリ

Kerberos 5 ライブラリ (libkrb5, -lkrb5)

書式

#include < krb5.h>


krb5_get_init_creds_opt;


krb5_error_code
krb5_get_init_creds_opt_alloc( krb5_context context, krb5_get_init_creds_opt **opt);

void
krb5_get_init_creds_opt_free( krb5_context context, krb5_get_init_creds_opt *opt);

void
krb5_get_init_creds_opt_init( krb5_get_init_creds_opt *opt);

void
krb5_get_init_creds_opt_set_address_list( krb5_get_init_creds_opt *opt, krb5_addresses *addresses);

void
krb5_get_init_creds_opt_set_addressless( krb5_get_init_creds_opt *opt, krb5_boolean addressless);

void
krb5_get_init_creds_opt_set_anonymous( krb5_get_init_creds_opt *opt, int anonymous);

void
krb5_get_init_creds_opt_set_default_flags( krb5_context context, const char *appname, krb5_const_realm realm, krb5_get_init_creds_opt *opt);

void
krb5_get_init_creds_opt_set_etype_list( krb5_get_init_creds_opt *opt, krb5_enctype *etype_list, int etype_list_length);

void
krb5_get_init_creds_opt_set_forwardable( krb5_get_init_creds_opt *opt, int forwardable);

krb5_error_code
krb5_get_init_creds_opt_set_pa_password( krb5_context context, krb5_get_init_creds_opt *opt, const char *password, krb5_s2k_proc key_proc);

krb5_error_code
krb5_get_init_creds_opt_set_paq_request( krb5_context context, krb5_get_init_creds_opt *opt, krb5_boolean req_pac);

krb5_error_code
krb5_get_init_creds_opt_set_pkinit( krb5_context context, krb5_get_init_creds_opt *opt, const char *cert_file, const char *key_file, const char *x509_anchors, int flags, char *password);

void
krb5_get_init_creds_opt_set_preauth_list( krb5_get_init_creds_opt *opt, krb5_preauthtype *preauth_list, int preauth_list_length);

void
krb5_get_init_creds_opt_set_proxiable( krb5_get_init_creds_opt *opt, int proxiable);

void
krb5_get_init_creds_opt_set_renew_life( krb5_get_init_creds_opt *opt, krb5_deltat renew_life);

void
krb5_get_init_creds_opt_set_salt( krb5_get_init_creds_opt *opt, krb5_data *salt);

void
krb5_get_init_creds_opt_set_tkt_life( krb5_get_init_creds_opt *opt, krb5_deltat tkt_life);

krb5_error_code
krb5_get_init_creds_opt_set_canonicalize( krb5_context context, krb5_get_init_creds_opt *opt, krb5_boolean req);

krb5_error_code
krb5_get_init_creds_opt_set_win2k( krb5_context context, krb5_get_init_creds_opt *opt, krb5_boolean req);

krb5_error_code
krb5_get_init_creds( krb5_context context, krb5_creds *creds, krb5_principal client, krb5_prompter_fct prompter, void *prompter_data, krb5_deltat start_time, const char *in_tkt_service, krb5_get_init_creds_opt *options);

krb5_error_code
krb5_get_init_creds_password( krb5_context context, krb5_creds *creds, krb5_principal client, const char *password, krb5_prompter_fct prompter, void *prompter_data, krb5_deltat start_time, const char *in_tkt_service, krb5_get_init_creds_opt *in_options);

krb5_error_code
krb5_get_init_creds_keytab( krb5_context context, krb5_creds *creds, krb5_principal client, krb5_keytab keytab, krb5_deltat start_time, const char *in_tkt_service, krb5_get_init_creds_opt *options);

int
krb5_prompter_posix( krb5_context context, void *data, const char *name, const char *banner, int num_prompts, krb5_prompt prompts[]);

解説

プリンシパルの初期の資格証明チケットを取得します。それは、有効期限が切れたパスワードを変更し、事前認証することを含みます。このインタフェースは、推奨しない krb5_in_tktkrb5_in_cred 関数を置き換えます。

利用者がユーザ名とパスワードだけを検証したいなら、また、応答を確実にするためにキータブ (keytab) を使用する初期の資格証明が KDC から来ていたことを検証するので、代わりに krb5_verify_user(3) を使用することを考慮してください。

最初に、 krb5_get_init_creds_opt 構造体は、 krb5_get_init_creds_opt_alloc() または krb5_get_init_creds_opt_init() で初期化されます。 krb5_get_init_creds_opt_alloc() は、 krb5_get_init_creds_opt_free() で解放される必要がある拡張可能な構造体を割り付けます。この構造体は、要求パラメータと認証情報を変更するために、 krb5_get_init_creds_opt_set() 関数のいずれかによって変更されます。

呼び出し側がデフォルトのオプションを使用したいなら、代わりに NULL を渡すことができます。

KDC への実際の要求は、 krb5_get_init_creds(), krb5_get_init_creds_password() または krb5_get_init_creds_keytab() 関数のいずれかによって行われます。 krb5_get_init_creds() は、最小の特殊化した関数であり、データの権利があり、後者の 2 つのように振る舞うことができます。後者の 2 つは、より古いリリースとの互換性のためにあり、それらは、わずかに使用しやすくなっています。

krb5_prompt は、次の要素を含む構造体です:

typedef struct { 
    const char *prompt; 
    int hidden; 
    krb5_data *reply; 
    krb5_prompt_type type 
} krb5_prompt;

prompt は、ユーザに表示されるべきであるプロンプトです。 hidden が設定されているなら、プロンプトを表示する関数は、ディスプレイデバイスへ出力をエコー (echo) するべきではありません。 reply は、前もって割り付けられなければなりません。それは、プロンプトを表示する関数によって割り付けられません。 type 要素のために指定可能な値は、次の通りです:

KRB5_PROMPT_TYPE_PASSWORD
KRB5_PROMPT_TYPE_NEW_PASSWORD
KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN
KRB5_PROMPT_TYPE_PREAUTH
KRB5_PROMPT_TYPE_INFO

krb5_prompter_posix() は、POSIX 環境でデフォルトのプロンプトを表示する関数です。それは、 krb5_prompter_fct とマッチし、 krb5_get_init_creds 関数で使用することができます。 krb5_prompter_posix() は、 prompter_data を必要としません。

start_time が 0 であるなら、要求されたチケットは、直ちに有効な始まりとなります。そうでなければ、 start_time は、将来、チケットがどれくらいより後の日付となるべきかを示します。

in_tkt_service 名が NULL でないなら、そのプリンシパル名は、初期のチケット要求のためにサーバ名として使用されます。指定された名前のレルム (realm) は、無視され、クライアント名のレルムに設定されます。 in_tkt_service 名が指定されないなら、 krbtgt/CLIENT-REALM@CLIENT-REALM が、使用されます。

引数の残りのために、オプション構造に値が指定されないなら、設定またはライブラリのデフォルトが、使用されます。

krb5_get_init_creds_opt_set_address_list() は、チケット中に格納されるべきである、 addresses のリストを設定します。

krb5_get_init_creds_opt_set_addressless() は、チケットがアドレスで要求されているかどうかを制御し、 krb5_get_init_creds_opt_set_address_list() は、このオプションを上書きします。

krb5_get_init_creds_opt_set_anonymous() は、 anonymous (匿名) のパラメータが、0 でないなら、要求を匿名にします。

krb5_get_init_creds_opt_set_default_flags() は、設定ファイルを使用するデフォルトフラグを設定します。

krb5_get_init_creds_opt_set_etype_list() は、クライアントが要求でサポートする用意がある enctype のリストを設定します。

krb5_get_init_creds_opt_set_forwardable() は、転送可能なチケットを要求します。

krb5_get_init_creds_opt_set_pa_password() は、新しいチケットを取得するために使用されるようになる passwordkey_proc を設定します。呼び出し側が、デフォルト値を使用したいなら、 password または key_procNULL にすることができます。 password が、未設定であり、必要であるなら、ユーザは、そのためにプロンプトが出されます。

krb5_get_init_creds_opt_set_paq_request() は、新しいチケットを取得するために使用されるようになるパスワードを設定します。

krb5_get_init_creds_opt_set_preauth_list() は、クライアントによってサポートされる事前認証タイプのリストを設定します。

krb5_get_init_creds_opt_set_proxiable() は、要求をプロシキ可能 (proxiable) とします。

krb5_get_init_creds_opt_set_renew_life() は、要求された更新可能な (renewable) 存続期間を設定します。

krb5_get_init_creds_opt_set_salt() は、要求で使用されるようになる、塩 (salt) を設定します。

krb5_get_init_creds_opt_set_tkt_life() は、要求されたチケットの存続期間を設定します。

krb5_get_init_creds_opt_set_canonicalize() は、KDC が、できれば、クライアントのプリンシパルを正規化することを要求します。

krb5_get_init_creds_opt_set_win2k() は、Windows 2000 との互換性をオンとします。

September 16, 2006 HEIMDAL