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

名称

krb5_auth_con_addflags, krb5_auth_con_free, krb5_auth_con_genaddrs, krb5_auth_con_generatelocalsubkey, krb5_auth_con_getaddrs, krb5_auth_con_getauthenticator, krb5_auth_con_getflags, krb5_auth_con_getkey, krb5_auth_con_getlocalsubkey, krb5_auth_con_getrcache, krb5_auth_con_getremotesubkey, krb5_auth_con_getuserkey, krb5_auth_con_init, krb5_auth_con_initivector, krb5_auth_con_removeflags, krb5_auth_con_setaddrs, krb5_auth_con_setaddrs_from_fd, krb5_auth_con_setflags, krb5_auth_con_setivector, krb5_auth_con_setkey, krb5_auth_con_setlocalsubkey, krb5_auth_con_setrcache, krb5_auth_con_setremotesubkey, krb5_auth_con_setuserkey, krb5_auth_context, krb5_auth_getcksumtype, krb5_auth_getkeytype, krb5_auth_getlocalseqnumber, krb5_auth_getremoteseqnumber, krb5_auth_setcksumtype, krb5_auth_setkeytype, krb5_auth_setlocalseqnumber, krb5_auth_setremoteseqnumber, krb5_free_authenticator接続レベルで認証を管理する

ライブラリ

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

書式

#include < krb5.h>

krb5_error_code
krb5_auth_con_init( krb5_context context, krb5_auth_context *auth_context);

void
krb5_auth_con_free( krb5_context context, krb5_auth_context auth_context);

krb5_error_code
krb5_auth_con_setflags( krb5_context context, krb5_auth_context auth_context, int32_t flags);

krb5_error_code
krb5_auth_con_getflags( krb5_context context, krb5_auth_context auth_context, int32_t *flags);

krb5_error_code
krb5_auth_con_addflags( krb5_context context, krb5_auth_context auth_context, int32_t addflags, int32_t *flags);

krb5_error_code
krb5_auth_con_removeflags( krb5_context context, krb5_auth_context auth_context, int32_t removelags, int32_t *flags);

krb5_error_code
krb5_auth_con_setaddrs( krb5_context context, krb5_auth_context auth_context, krb5_address *local_addr, krb5_address *remote_addr);

krb5_error_code
krb5_auth_con_getaddrs( krb5_context context, krb5_auth_context auth_context, krb5_address **local_addr, krb5_address **remote_addr);

krb5_error_code
krb5_auth_con_genaddrs( krb5_context context, krb5_auth_context auth_context, int fd, int flags);

krb5_error_code
krb5_auth_con_setaddrs_from_fd( krb5_context context, krb5_auth_context auth_context, void *p_fd);

krb5_error_code
krb5_auth_con_getkey( krb5_context context, krb5_auth_context auth_context, krb5_keyblock **keyblock);

krb5_error_code
krb5_auth_con_getlocalsubkey( krb5_context context, krb5_auth_context auth_context, krb5_keyblock **keyblock);

krb5_error_code
krb5_auth_con_getremotesubkey( krb5_context context, krb5_auth_context auth_context, krb5_keyblock **keyblock);

krb5_error_code
krb5_auth_con_generatelocalsubkey( krb5_context context, krb5_auth_context auth_context, krb5_keyblock, *key");

krb5_error_code
krb5_auth_con_initivector( krb5_context context, krb5_auth_context auth_context);

krb5_error_code
krb5_auth_con_setivector( krb5_context context, krb5_auth_context *auth_context, krb5_pointer ivector);

void
krb5_free_authenticator( krb5_context context, krb5_authenticator *authenticator);

解説

krb5_auth_context 構造体は、スレッドかプロセスのためのコンテキストを保持する krb5_context と同じ方法で、認証された接続に関連しているすべてのコンテキストを保持します。 krb5_auth_context は直接サーバ/クライアントの間の認証に関連している様々な関数によって使用されます。データに関する例は、この構造が含む様々なフラグ、クライアントのとサーバのアドレス、ポート番号、キーブロック (keyblock) (とサブキー)、シーケンス番号、応答キャッシュ、とチェックサムタイプです。

krb5_auth_con_init() は krb5_auth_context 構造体を割り付けて、初期化します。デフォルト値は krb5_auth_con_setcksumtype() と krb5_auth_con_setflags() で変更することができます。 auth_context 構造体は krb5_auth_con_free() によって解放されなければなりません。

krb5_auth_con_getflags(), krb5_auth_con_setflags(), krb5_auth_con_addflags() と krb5_auth_con_removeflags() は、 krb5_auth_context 構造体のためのフラグを取得して変更します。設定する可能性のあるフラグは次の通りです:

KRB5_AUTH_CONTEXT_DO_SEQUENCE
各パケットのシーケンス番号を発生して、チェックします。
KRB5_AUTH_CONTEXT_DO_TIME
着信パケットのタイムスタンプをチェックします。
KRB5_AUTH_CONTEXT_RET_SEQUENCE, KRB5_AUTH_CONTEXT_RET_TIME
シーケンス番号と outdata パラメータのタイムスタンプを返します。
KRB5_AUTH_CONTEXT_CLEAR_FORWARDED_CRED
これは、暗号化解除された ( ENCTYPE_NULL) 資格証明を作成するために krb5_get_forwarded_creds() と krb5_fwd_tgt_creds() を強制的に呼び出します。これは、暗号化された KRB-CRED を扱うことができないので、古い MIT サーバと Java ベースのサーバで使用されるものです。そのような KRB-CRED を送信することは、公開暗号キーとチケットをクリアし、安全でなく、パケットがプロトコルで暗号化されるのを確実にすることに、注意してください。 krb5_rd_cred(3), krb5_rd_priv(3), krb5_rd_safe(3), krb5_mk_priv(3)krb5_mk_safe(3) です。このフラグを設定することは、そのパラメータがこれらの関数に渡されることを必要とします。

また、フラグ KRB5_AUTH_CONTEXT_DO_TIME は、タイムスタンプを取り除くことによって関数 krb5_get_forwarded_creds() の振る舞いをを変更し、これには、heimdal のすべてのバージョンが永遠に資格証明メッセージをサポートするというわけではないので、後方互換性の問題があります。キャッシュするためにメッセージの送信者は、常にメッセージを転送するので、非常に役に立ち、したがって、資格証明が転送される各時間ののための KDC へのラウンドトリップを避けます。アドレスなしのチケットを使用することによって、同じ機能性を得ることができます。

krb5_auth_con_setaddrs(), krb5_auth_con_setaddrs_from_fd() と krb5_auth_con_getaddrs() はパケットが受信されるときチェックされるアドレスを取得して設定します。リモートホストのためのアドレスを設定することは強制的です。ローカルアドレスが設定されないなら、基本的なオペレーティングシステムから推論されます。 krb5_auth_con_getaddrs() は、 local_addr または remote_addr で渡される任意のアドレスで krb5_free_address() を呼び出します。 krb5_auth_con_setaddr() は、 local_addrremote_addr として NULL ポインタを渡すことを許可し、その場合、そのアドレスを設定しません。

krb5_auth_con_setaddrs_from_fd() はファイル記述子からのアドレスを取って来ます。

krb5_auth_con_genaddrs() はビットマップ引数 flags によって、与えられたファイル記述子 fd からのアドレス情報を取って来ます。

flags の有り得る値は次の通りです:

KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR
fd からローカルアドレスを取って来ます。
KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR
fd からリモートアドレスを取って来ます。

krb5_auth_con_setkey(), krb5_auth_con_setuserkey() と krb5_auth_con_getkey() はこの auth コンテキストに使用されるキーを取得し設定します。 krb5_auth_con_getkey() によって返されたキーブロックは krb5_free_keyblock() で解放されるべきです。 krb5_auth_con_setkey() に送信されるキーブロックは、 krb5_auth_context にコピーされます、そのため、特別な操作は必要ありません。 NULLkrb5_auth_con_setkey() への有効なキーブロックではありません。

krb5_auth_con_setuserkey() はユーザのユーザ認証をするときのみ役に立ちます。 krb5_auth_con_setkey() は krb5_auth_con_setuserkey() に同等です。

krb5_auth_con_getlocalsubkey(), krb5_auth_con_setlocalsubkey(), krb5_auth_con_getremotesubkey() と krb5_auth_con_setremotesubkey() はローカルとリモートのサブキーのためのキーブロックを取得して設定します。 krb5_auth_con_getlocalsubkey() と krb5_auth_con_getremotesubkey() によって返されたキーブロックは krb5_free_keyblock() で解放しなければなりません。

krb5_auth_setcksumtype() と krb5_auth_getcksumtype() は、この接続に使用されるべきであるチェックサムタイプを設定して取得します。

krb5_auth_con_generatelocalsubkey() は、 key として同じ暗号化タイプがあるローカルサブキーを生成します。

krb5_auth_getremoteseqnumber(), krb5_auth_setremoteseqnumber(), krb5_auth_getlocalseqnumber() と krb5_auth_setlocalseqnumber() は、ローカルとリモートのシーケンス番号カウンタのためのシーケンス番号を取得して設定します。

krb5_auth_setkeytype() と krb5_auth_getkeytype() は krb5_auth_context でキーブロックのキータイプを設定して取得します。

krb5_auth_con_getauthenticator() は、相互の認証の間に使用された認証コードを検索します。返された authenticatorkrb5_free_authenticator() の呼び出しによって解放されるべきです。

krb5_auth_con_getrcache() と krb5_auth_con_setrcache() は応答キャッシュを取得して設定します。

krb5_auth_con_initivector() はメモリを割り付けて、 auth_context 中のキーブロックの初期ベクトルを 0 クリアします。

krb5_auth_con_setivector() は auth_context の i_vector 部分を ivector に設定します。

krb5_free_authenticator() は、 authenticatorauthenticator 自体の内容を解放します。

May 17, 2005 HEIMDAL