EN JA
KRB5_VERIFY_USER(3)
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_keytabHeimdal パスワード検証関数

ライブラリ

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() が与えられた ccachekrb5_cc_initialize() を呼び出すので、 ccachekrb5_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 が使用されているなら、 principalkrb5_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; 
}
May 1, 2006 HEIMDAL