EN JA
GSS_ADD_CRED(3)
GSS_ADD_CRED(3) Programmer's Manual GSS_ADD_CRED(3)

名称

gss_add_cred資格証明を増加して構成する

書式

#include < gssapi/gssapi.h>

OM_uint32
gss_add_cred( OM_uint32 *minor_status, const gss_cred_id_t input_cred_handle, const gss_name_t desired_name, const gss_OID desired_mech, gss_cred_usage_t cred_usage, OM_uint32 initiator_time_req, OM_uint32 acceptor_time_req, gss_cred_id_t *output_cred_handle, gss_OID_set *actual_mechs, OM_uint32 *initiator_time_rec, OM_uint32 *acceptor_time_rec);

解説

資格証明の要素に資格証明を追加します。資格証明の要素は、それが参照されるプリンシパルの名前によって識別されます。 GSS-API の実装は、権限のない呼び出し側から権利が与えられていない資格証明の要素を獲得することから防ぐために、このルーチンの呼び出し側で、ローカルのアクセス管理ポリシを課さなければなりません。このルーチンは、単に既存のデータへの GSS-API ハンドルを獲得するよりむしろ新しいメカニズム特有の認証データの作成を必要とする関数のような、 "ネットワークへのログイン"機能を提供することを意図していません。必要なら、そのような関数は、API への実装特有の拡張で定義されるべきです。

desired_nameGSS_C_NO_NAME であるなら、呼び出しは (cred_usage が GSS_C_INITIATE または GSS_C_BOTH であるなら)、 gss_init_sec_context() または ( cred_usageGSS_C_ACCEPT または GSS_C_BOTH であるなら) gss_accept_sec_context() に渡されるとき、デフォルトの振る舞いを呼び出す資格証明の要素に追加するための要求として解釈されます。

実装は、システムログインプロセスから GSS-API 開始プログラム資格証明を得るメカニズム特有の方法を提供しそうであるので、このルーチンは、主としてコンテキストアクセプタによって使用されると予想されます。したがって、いくつかの実装は、 GSS_C_NO_NAME 以外の任意の名前のための gss_acquire_cred() を通して、 GSS_C_INITIATE または GSS_C_BOTH 資格証明の獲得をサポートしません、または名前は、有効な資格証明への gss_inquire_cred() またはアクティブなコンテキストへのか gssXinquireXcontext() のどちらかを gss_inquire_context() のいずれかを適用することによって作成されました。

資格証明の獲得がメカニズムのために時間がかかるなら、メカニズムは、(例えば、 gss_init_sec_context() または gss_accept_sec_context() によって) 資格証明が必要になるまで実際の獲得を遅らせることを選択できます。そのようなメカニズム特有の実装に決定は、呼び出すアプリケーションに目に見えなくされるべきです。したがって、 gss_add_cred() の呼び出しの直後に続く gss_inquire_cred() の呼び出しは、有効な資格証明のデータを返さなければならなくて、したがって、延期された資格証明の獲得のオーバヘッドを被ります。

新たに獲得した資格証明の要素に加えてオリジナルのすべての資格証明の要素を含む新しい資格証明の構成するか、または新しい資格証明の要素を既存の資格証明を追加するためにこのルーチンを使用することができます。 output_cred_handle パラメータ引数のために NULL が指定されるなら、新しい資格証明の要素は、 input_cred_handle によって識別された資格証明に追加されます。有効なポインタが output_cred_handle パラメータに指定されるなら、新しい資格証明のハンドルが、作成されます。

GSS_C_NO_CREDENTIALinput_cred_handle として指定されるなら、 gss_add_cred() は、デフォルトの振る舞いに基づく資格証明 (と、それに従って、 output_cred_handle パラメータを設定する) を構成します。すなわち、呼び出しには、同じ使用法を指定し、この資格証明ハンドルを gss_add_cred() へ渡し、最初の資格証明ハンドルで gss_release_cred() を最終的に呼び出された、デフォルトの振る舞いを具体化する明白な資格証明ハンドルを取得するために desired_name パラメータとして GSS_C_NO_NAME を渡している、まるでアプリケーションが最初に gss_acquire_cred() への呼び出しを行うのと同じ効果があります。

input_cred_handle パラメータとして GSS_C_NO_CREDENTIAL を指定するなら、 NULL でない output_cred_handle を供給しなければなりません。

パラメータ

minor_status
メカニズム特有のステータスコード。
input_cred_handle
資格証明の要素が追加される資格証明。 GSS_C_NO_CREDENTIAL が指定されるなら、ルーチンは、デフォルトの振る舞いに基づく新しい資格証明を構成します (上記の説明を参照)。資格証明のハンドルが gss_add_cred() によって変更されていないのに、 output_credential_handleNULL であるなら、基本的な資格証明は、変更されることに注意してください。
desired_name
資格証明が取得されるべきであるプリンシパルの名前。
desired_mech
資格証明が使用される基本的なセキュリティメカニズム。
cred_usage
GSS_C_BOTH
資格証明は、セキュリティコンテキストを開始するか、または受け付けるために使用されます。
GSS_C_INITIATE
資格証明は、セキュリティコンテキストを開始するためだけに使用されます。
GSS_C_ACCEPT
資格証明は、セキュリティコンテキストを受け付けるためだけに使用されます。
initiator_time_req
資格証明は、セキュリティコンテキストを開始するために有効なままで残るべきである秒数。構成された資格証明がタイプ GSS_C_ACCEPT であるなら、この引数は、無視されます。資格証明には最大の許可された開始プログラムの存続期間があることを要求するために GSS_C_INDEFINITE を指定します。
acceptor_time_req
資格証明がセキュリティコンテキストを受け付けるために有効なままで残るべきである秒数。構成された資格証明がタイプ GSS_C_INITIATE であるなら、この引数は、無視されます。資格証明には最大の許可された開始プログラムの存続期間があることを要求するために GSS_C_INDEFINITE を指定します。
output_cred_handle
新しい資格証明の要素と input_cred_handle からのすべての資格証明の要素を含む返された資格証明のハンドル。 gss_cred_id_t への有効なポインタが、このパラメータのために提供されるなら、 gss_add_cred() は、 input_cred_handle からのすべての資格証明の要素と新たに取得された資格証明の要素を含む新しい資格証明のハンドルを作成します。このパラメータに NULL が指定されるなら、新たに獲得された資格証明の要素は、 input_cred_handle によって識別される資格証明に追加されます。

このパラメータを通して返される任意の資格証明のハンドルに関連しているリソースは、 gss_release_cred() への呼び出しで使用された後にアプリケーションによって解放されなければなりません。

actual_mechs
新しい資格証明が有効であるメカニズムの完全なセット。返された OID セットのための記憶域は、 gss_release_oid_set() への呼び出しで使用された後にアプリケーションによって解放されなければなりません。必要でないなら、 NULL を指定します。
initiator_time_rec
返された資格証明が指定されたメカニズムを使用してコンテキストを開始するために有効なままで残っている実際の秒数。実装またはメカニズムが資格証明の期限切れをサポートしないなら、値 GSS_C_INDEFINITE が、返されます。必要でないなら、 NULL を指定します。
acceptor_time_rec
返された資格証明が、指定されたメカニズムを使用してセキュリティコンテキストを受け付けるために有効なままで残っている実際の秒数。実装またはメカニズムが資格証明の期限切れをサポートしないなら、値 GSS_C_INDEFINITE が、返されます。必要でないなら、 NULL を指定します。

戻り値

GSS_S_COMPLETE
成功して終了した
GSS_S_BAD_MECH
要求された利用可能でないメカニズム。
GSS_S_BAD_NAMETYPE
desired_name パラメータ中に含まれたタイプは、サポートされていません。
GSS_S_BAD_NAME
desired_name パラメータのために供給された値が、不正な形式です。
GSS_S_DUPLICATE_ELEMENT
資格証明は、使用法と有効期間をオーバラップする要求されたメカニズムのための要素を既に含んでいます。
GSS_S_CREDENTIALS_EXPIRED
期限が切れたので、要求された資格証明を追加することができませんでした。
GSS_S_NO_CRED
資格証明は、指定された名前を見つけられませんでした。

規格

RFC 2743
Generic Security Service Application Program Interface Version 2, Update 1
RFC 2744
Generic Security Service API Version 2 : C-bindings

歴史

gss_add_cred のマニュアルページは、 FreeBSD 7.0 ではじめて登場しました。

作者

John Wray, Iris Associates

COPYRIGHT

Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

January 26, 2010 FreeBSD