KRB5_VERIFY_USER(3) | FreeBSD Library Functions Manual | KRB5_VERIFY_USER(3) |
名称
krb5_verify_user, krb5_verify_user_lrealm, krb5_verify_user_opt, krb5_verify_opt_init, krb5_verify_opt_alloc, krb5_verify_opt_free, krb5_verify_opt_set_ccache, krb5_verify_opt_set_flags, krb5_verify_opt_set_service, krb5_verify_opt_set_secure, krb5_verify_opt_set_keytab — Heimdal パスワード検証関数ライブラリ
Kerberos 5 ライブラリ (libkrb5, -lkrb5)書式
#include < krb5.h> krb5_error_code
krb5_verify_user( krb5_context context, krb5_principal principal, krb5_ccache ccache, const char *password, krb5_boolean secure, const char *service);
krb5_error_code
krb5_verify_user_lrealm( krb5_context context, krb5_principal principal, krb5_ccache ccache, const char *password, krb5_boolean secure, const char *service);
void
krb5_verify_opt_init( krb5_verify_opt *opt);
void
krb5_verify_opt_alloc( krb5_verify_opt **opt);
void
krb5_verify_opt_free( krb5_verify_opt *opt);
void
krb5_verify_opt_set_ccache( krb5_verify_opt *opt, krb5_ccache ccache);
void
krb5_verify_opt_set_keytab( krb5_verify_opt *opt, krb5_keytab keytab);
void
krb5_verify_opt_set_secure( krb5_verify_opt *opt, krb5_boolean secure);
void
krb5_verify_opt_set_service( krb5_verify_opt *opt, const char *service);
void
krb5_verify_opt_set_flags( krb5_verify_opt *opt, unsigned int flags);
krb5_error_code
krb5_verify_user_opt( krb5_context context, krb5_principal principal, const char *password, krb5_verify_opt *opt);
解説
krb5_verify_user 関数はユーザによって提供されたパスワードを検証します。検証されるパスワードのプリンシパルは principal で指定されます。新しいチケットは副作用として取得され、 ccache (ccache が NULL であるなら、デフォルトの ccache が使用されます) に格納します。 krb5_verify_user() が与えられた ccache で krb5_cc_initialize() を呼び出すので、 ccache は krb5_cc_resolve() または krb5_cc_gen_new() で初期化のみ行わなければなりません。 password ( NULL として与えられる) でパスワードが供給されないなら、パスワードのためにユーザにプロンプトを出します。 secure であるなら、チケットはローカルに格納されたサービスキー service に対して検証されます ( NULL として与えられるなら、デフォルトで‘host
’です)。
krb5_verify_user_lrealm() 関数は principal でレルムを無視して、すべてのローカルのレルム ( krb5.conf(5) 参照) を試みるのを除いて、同じように行います。成功して返った後に、プリンシパルは認証されたレルムに設定されます。呼び出しが失敗するなら、プリンシパルは重要でなく、 krb5_free_principal(3) で解放されるべきです。
krb5_verify_opt_alloc() と krb5_verify_opt_free() は、 krb5_verify_opt
を割り付けて、解放します。これは構造体が今後のリリースでエクスポートされないので、利用者は、構造体自体を割り付ける代わりに、alloc と free 関数を使用するべきです。
krb5_verify_opt_init() は、全ての opt をデフォルト値にリセットします。
krb5_verify_opt_set 関数は呼び出す時に指定されたデータ構造体のコピーを作りません。 krb5_verify_user_opt() が呼び出された後にそれらを解放するのは呼び出し側次第です。
krb5_verify_opt_set_ccache() は opt のユーザが使用する ccache を設定します。設定されないなら、デフォルトの資格証明キャッシュが使用されます。
krb5_verify_opt_set_keytab() は opt のユーザが使用する keytab を設定します。設定されないなら、デフォルトの keytab が使用されます。
krb5_verify_opt_set_secure() は secure で真であるなら、パスワード検証は、ローカルに格納されたサービスキーに対して検証されたチケットを必要とします。設定されないなら、デフォルト値は真です。
krb5_verify_opt_set_service() は opt のユーザが使用する service プリンシパルを設定します。設定されないなら、‘ host
’サービスが利用されます。
krb5_verify_opt_set_flags() は opt のユーザが使用する flags を設定します。フラグ KRB5_VERIFY_LREALMS が使用されているなら、 principal は krb5_verify_user_lrealm() がそれを変更するように変更されます。
krb5_verify_user_opt() 関数はユーザによって供給された password を検証します。検証されたパスワードのプリンシパルは principal で指定されます。検証プロセスへのオプションは opt 中に渡されます。
使用例
ここにパスワードを検証するプログラムの例があります。それは krb5.keytab で‘host/`hostname`
’サービスプリンシパルを使用します。
#include <krb5.h> int main(int argc, char **argv) { char *user; krb5_error_code error; krb5_principal princ; krb5_context context; if (argc != 2) errx(1, "usage: verify_passwd <principal-name>"); user = argv[1]; if (krb5_init_context(&context) < 0) errx(1, "krb5_init_context"); if ((error = krb5_parse_name(context, user, &princ)) != 0) krb5_err(context, 1, error, "krb5_parse_name"); error = krb5_verify_user(context, princ, NULL, NULL, TRUE, NULL); if (error) krb5_err(context, 1, error, "krb5_verify_user"); return 0; }
関連項目
krb5_cc_gen_new(3), krb5_cc_initialize(3), krb5_cc_resolve(3), krb5_err(3), krb5_free_principal(3), krb5_init_context(3), krb5_kt_default(3), krb5.conf(5)May 1, 2006 | HEIMDAL |