krb5 commit [krb5-1.11]: Document API for getting anonymous tickets
Tom Yu
tlyu at MIT.EDU
Wed Dec 12 16:20:52 EST 2012
https://github.com/krb5/krb5/commit/d4f2c5ce0c54400ca3ade0af55e5b636fdbe9f40
commit d4f2c5ce0c54400ca3ade0af55e5b636fdbe9f40
Author: Greg Hudson <ghudson at mit.edu>
Date: Wed Dec 12 15:46:41 2012 -0500
Document API for getting anonymous tickets
In init_creds.rst, document how to get anonymous credentials from an
application.
(cherry picked from commit 9973812776fc69bc5fb8e3c7f85784cb295625f0)
ticket: 7496
version_fixed: 1.11
status: resolved
doc/admin/pkinit.rst | 2 ++
doc/appdev/init_creds.rst | 26 ++++++++++++++++++++++++++
2 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/doc/admin/pkinit.rst b/doc/admin/pkinit.rst
index 84331b1..0ec8fb6 100644
--- a/doc/admin/pkinit.rst
+++ b/doc/admin/pkinit.rst
@@ -181,6 +181,8 @@ If the KDC and client are properly configured, it should now be
possible to run ``kinit username`` without entering a password.
+.. _anonymous_pkinit:
+
Anonymous PKINIT
----------------
diff --git a/doc/appdev/init_creds.rst b/doc/appdev/init_creds.rst
index f6012f7..1fc81d1 100644
--- a/doc/appdev/init_creds.rst
+++ b/doc/appdev/init_creds.rst
@@ -34,6 +34,32 @@ parameter (which can be a null pointer). Use the function
:c:func:`krb5_get_init_creds_opt_alloc` to allocate an options
structure, and :c:func:`krb5_get_init_creds_opt_free` to free it.
+Getting anonymous credentials
+-----------------------------
+
+As of release 1.8, it is possible to obtain fully anonymous or
+partially anonymous (realm-exposed) credentials, if the KDC supports
+it. The MIT KDC supports issuing fully anonymous credentials as of
+release 1.8 if configured appropriately (see :ref:`anonymous_pkinit`),
+but does not support issuing realm-exposed anonymous credentials at
+this time.
+
+To obtain fully anonymous credentials, call
+:c:func:`krb5_get_init_creds_opt_set_anonymous` on the options
+structure to set the anonymous flag, and specify a client principal
+with the KDC's realm and a single empty data component (the principal
+obtained by parsing ``@``\ *realmname*). Authentication will take
+place using anonymous PKINIT; if successful, the client principal of
+the resulting tickets will be
+``WELLKNOWN/ANONYMOUS at WELLKNOWN:ANONYMOUS``.
+
+To obtain realm-exposed anonymous credentials, set the anonymous flag
+on the options structure as above, but specify a normal client
+principal in order to prove membership in the realm. Authentication
+will take place as it normally does; if successful, the client
+principal of the resulting tickets will be ``WELLKNOWN/ANONYMOUS@``\
+*realmname*.
+
User interaction
----------------
More information about the cvs-krb5
mailing list