正常使用 GSS-API 时,启动器的标识会在建立上下文的过程中提供给接受器。 但是,上下文启动器会请求不将其标识显示给上下文接受器。
例如,请考虑提供对医疗数据库进行无限制访问的应用程序。 此类服务的客户机可能需要对该服务进行验证。此方法会信任从该数据库中检索的所有信息。例如,出于保密性方面的考虑,客户机可能不希望暴露其标识。
要请求进行匿名验证,请将 gss_init_sec_context() 的 req_flags 参数设置为 GSS_C_ANON_FLAG。要验证匿名验证是否可用,请检查 gss_init_sec_context() 或 gss_accept_sec_context() 的 ret_flags 参数,查看是否返回了 GSS_C_ANON_FLAG。
如果匿名验证有效,则针对 gss_accept_sec_context() 或 gss_inquire_context() 返回的客户机名称调用 gss_display_name() 时会生成通用的匿名名称。
应用程序负责在所请求的匿名验证不被许可时采取相应的措施。在此类情况下,GSS-API 不会终止上下文。