<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://k5wiki.test.kerberos.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mrogers</id>
		<title>K5Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://k5wiki.test.kerberos.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mrogers"/>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki/Special:Contributions/Mrogers"/>
		<updated>2026-05-14T20:32:08Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_TGS_Policy_plugin&amp;diff=5825</id>
		<title>Projects/KDC TGS Policy plugin</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_TGS_Policy_plugin&amp;diff=5825"/>
				<updated>2017-05-01T17:14:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project implements a plugin interface for the KDC to enable modification of service ticket attributes based on the Pre-authentication indicator.&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
&lt;br /&gt;
As an administrator I would like to be able to define the lifetime or other attributes of a service ticket based on the strength of the pre-authentication used. We have high value services that require 2FA and as an added precaution we want to ensure that these service tickets have a shorter lifetime/renew time.&lt;br /&gt;
&lt;br /&gt;
For example, it would be possible to configure:&lt;br /&gt;
* Client obtains a TGT using a password, sends TGS_REQ for service fileserver@REALM; returned ticket has a 8 hour lifetime&lt;br /&gt;
* Client obtains a TGT with PKINIT, sends TGS_REQ for service fileserver@REALM; returned ticket has a 2 hour lifetime&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
A new plugin interface is defined with methods that are called during process_tgs_req(). These methods will take the auth indicators (from get_auth_indicators()) and the server db entry as inputs, and output the module-suggested value for an element of the policy (lifetime/renew-time/skey etype) that goes into creating the resulting ticket. &lt;br /&gt;
&lt;br /&gt;
One design option is to convert the current behavior to be a built-in module that runs in addition to custom modules. &lt;br /&gt;
Currently, the ticket times are determined by kdc_get_ticket_endtime() and kdc_get_ticket_renewtime(), using options from the realm profile, request, and db entries. The session key encryption type is determined by select_session_keytype(), called by gen_session_key(). This is shared by the AS req code. The keytype is computed based on the request and what the KDC and KDB can support.&lt;br /&gt;
&lt;br /&gt;
Another option is to leave the current functions alone, and have the plugin method(s) run separately afterwards, replacing the function provided values with the module provided ones. This might be less code and less complexity than option A, allowing for a single method without requiring that the plugin framework runs multiple modules.&lt;br /&gt;
&lt;br /&gt;
==Open questions==&lt;br /&gt;
&lt;br /&gt;
* If multiple modules are supported and each output their desired policy values, how do we decide which to use?&lt;br /&gt;
** For lifetime/renew time; If the plugins should only allow a time less than the built-in time, then use the shortest time from all modules?&lt;br /&gt;
** For session key type; Custom module overrides built-in?&lt;br /&gt;
* Is there anything else in the TGS policy that should be influenced by the AI and included in the interface?&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_TGS_Policy_plugin&amp;diff=5805</id>
		<title>Projects/KDC TGS Policy plugin</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_TGS_Policy_plugin&amp;diff=5805"/>
				<updated>2017-04-24T22:09:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: Created page with &amp;quot;{{project-early}}  This project implements a plugin interface for the KDC to enable modifying server ticket attributes based on the Pre-authentication indicator.  ==Problem== ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project implements a plugin interface for the KDC to enable modifying server ticket attributes based on the Pre-authentication indicator.&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
&lt;br /&gt;
As an administrator I would like to be able to define the lifetime or other attributes of a service ticket based on the strength of the pre-authentication used. We have high value services that require 2FA and as an added precaution we want to ensure that these service tickets have a shorter lifetime/renew time, or a stronger session key type than the standard Kerberos ticket policy.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
* User A got TGT with password authentication, asks for a TGS for service fileserver@REALM; returned ticket has a 30 minute lifetime&lt;br /&gt;
* User B got TGT with 2FA authentication, asks for a TGS for service fileserver@REALM; returned ticket has a 2 hour lifetime&lt;br /&gt;
* User C got TGT with PKINIT, asks for a TGS for service fileserver@REALM; returned ticket has a 8 hour lifetime&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
A plugin interface used during process_tgs_req(), separately from the KDB check_policy_tgs, that will accept an indicator and server entry and output a ticket lifetime (renew time?) and/or session key etype. The resulting ticket lifetime can be no longer than the entry max_life (or header ticket lifetime) and the etype can be no weaker than the normally allowed etype.&lt;br /&gt;
&lt;br /&gt;
==Open questions and Misc==&lt;br /&gt;
- http://mailman.mit.edu/pipermail/krbdev/2016-September/012664.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5667</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5667"/>
				<updated>2016-10-25T15:10:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-rel|1.15}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following URI records:&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _krb5kdc.REALM (KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
The URI record includes a priority and weight, and contains a URI string of the krb5srv scheme name, flags, transport, and target (containing optional port and path) fields, separated by colons. &lt;br /&gt;
&lt;br /&gt;
* krb5srv:[flags]:transport:host[:port][/path]&lt;br /&gt;
&lt;br /&gt;
The priority and weight are as defined in RFC 2782. Weight may or may not be implemented, and priority must be implemented. On the initial KDC contact, all KDCs will be tried according to priority regardless of master status. On the fallback contact, master KDCs will be tried according to priority, excluding non-masters.&lt;br /&gt;
&lt;br /&gt;
The flags field contains zero or more flag characters. Currently the only valid character is M, indicating that the record is for a master server. On the initial contact, if a non-master KDC has answered and returns an error such as PREAUTH_FAILED, entries that are marked as master will be contacted.&lt;br /&gt;
&lt;br /&gt;
The transport field indicates the transport type for the given host address. It can be either &amp;quot;tcp&amp;quot;, &amp;quot;udp&amp;quot;, or &amp;quot;kkdcp&amp;quot; for MS-KKDCP.&lt;br /&gt;
&lt;br /&gt;
The host field in the udp and tcp transport cases can be a hostname, IPv4 address, or bracket-enclosed IPv6 address, and can be followed by a port extension. A host for the MS-KKDCP transport type uses a https:// URL, and can include a port and/or path extension. &lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* _krb5kdc IN URI 10 1 &amp;lt;nowiki&amp;gt;&amp;quot;krb5srv:M:kkdcp:https://kdc.example.com/path&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* _krb5kdc IN URI 20 1 &amp;lt;nowiki&amp;gt;&amp;quot;krb5srv::kkdcp:https://kdc2.example.com&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* _kerberos-adm IN URI 10 1 &amp;quot;krb5srv::tcp:192.168.1.20:1333&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;br /&gt;
&lt;br /&gt;
* KDC Discovery may fail with URI entries served by RHEL7 bind: https://bugzilla.redhat.com/show_bug.cgi?id=1388534&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5643</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5643"/>
				<updated>2016-07-12T17:13:43Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following URI records:&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _krb5kdc.REALM (KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
The URI record includes a priority and weight, and contains a URI string of the krb5srv scheme name, flags, transport, and target (containing optional port and path) fields, separated by colons. &lt;br /&gt;
&lt;br /&gt;
* krb5srv:[flags]:transport:host[:port][/path]&lt;br /&gt;
&lt;br /&gt;
The priority and weight are as defined in RFC 2782. Weight may or may not be implemented, and priority must be implemented. On the initial KDC contact, all KDCs will be tried according to priority regardless of master status. On the fallback contact, master KDCs will be tried according to priority, excluding non-masters.&lt;br /&gt;
&lt;br /&gt;
The flags field contains zero or more flag characters. Currently the only valid character is M, indicating that the record is for a master server. On the initial contact, if a non-master KDC has answered and returns an error such as PREAUTH_FAILED, entries that are marked as master will be contacted.&lt;br /&gt;
&lt;br /&gt;
The transport field indicates the transport type for the given host address. It can be either &amp;quot;tcp&amp;quot;, &amp;quot;udp&amp;quot;, or &amp;quot;kkdcp&amp;quot; for MS-KKDCP.&lt;br /&gt;
&lt;br /&gt;
The host field in the udp and tcp transport cases can be a hostname, IPv4 address, or bracket-enclosed IPv6 address, and can be followed by a port extension. A host for the MS-KKDCP transport type uses a https:// URL, and can include a port and/or path extension. &lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* _krb5kdc IN URI 10 1 &amp;lt;nowiki&amp;gt;&amp;quot;krb5srv:M:kkdcp:https://kdc.example.com/path&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* _krb5kdc IN URI 20 1 &amp;lt;nowiki&amp;gt;&amp;quot;krb5srv::kkdcp:https://kdc2.example.com&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* _kerberos-adm IN URI 10 1 &amp;quot;krb5srv::tcp:192.168.1.20:1333&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5642</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5642"/>
				<updated>2016-07-08T17:00:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following URI records:&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _krb5kdc.REALM (KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
The URI record includes a priority and weight, and contains a URI string of the krb5srv scheme name, flags, transport, and target (containing optional port and path) fields, separated by colons. &lt;br /&gt;
&lt;br /&gt;
* krb5srv:[flags]:transport:host[:port][/path]&lt;br /&gt;
&lt;br /&gt;
The priority and weight are as defined in RFC 2782. Weight may or may not be implemented, and priority must be implemented. On the initial KDC contact, all KDCs will be tried according to priority regardless of master status. On the fallback contact, master KDCs will be tried according to priority, excluding non-masters.&lt;br /&gt;
&lt;br /&gt;
The flags field contains zero or more flag characters. Currently the only valid character is M, indicating that the record is for a master server. On the initial contact, if a non-master KDC has answered and returns an error such as PREAUTH_FAILED, entries that are marked as master will be contacted.&lt;br /&gt;
&lt;br /&gt;
The transport field indicates the transport type for the given host address. It can be either &amp;quot;tcp&amp;quot;, &amp;quot;udp&amp;quot;, or &amp;quot;kkdcp&amp;quot; for MS-KKDCP.&lt;br /&gt;
&lt;br /&gt;
The host field in the udp and tcp transport cases can be a hostname, IPv4 address, or bracket-enclosed IPv6 address, and can be followed by a port. A host for the MS-KKDCP transport type uses a https:// URL, and can include a path extension. &lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* _krb5kdc IN URI 10 1 &amp;lt;nowiki&amp;gt;&amp;quot;krb5srv:M:kkdcp:https://kdc.example.com/path&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* _krb5kdc IN URI 20 1 &amp;lt;nowiki&amp;gt;&amp;quot;krb5srv::kkdcp:https://kdc2.example.com&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* _kerberos-adm IN URI 10 1 &amp;quot;krb5srv::tcp:192.168.1.20:1333&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5637</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5637"/>
				<updated>2016-06-01T16:30:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type, however it was decided that a TXT record will be used with a (currently non-standardized) URI payload format.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following TXT records:&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _krb5kdc.REALM (KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
An entry will contain a string of priority, weight, flags, transport, and target (containing optional port and path) fields, separated by colons. &lt;br /&gt;
&lt;br /&gt;
* priority:weight:[flags]:transport:host[:port][/path]&lt;br /&gt;
&lt;br /&gt;
Priority and weight are as defined in RFC 2782. Weight may or may not be implemented, and priority must be implemented. On the initial KDC contact, all KDCs will be tried according to priority regardless of master status. On the fallback contact, master KDCs will be tried according to priority, excluding non-masters.&lt;br /&gt;
&lt;br /&gt;
The flags field contains zero or more flag characters. Currently the only valid character is M, indicating that the record is for a master server. On the initial contact, if a non-master KDC has answered and returns an error such as PREAUTH_FAILED, entries that are marked as master will be contacted.&lt;br /&gt;
&lt;br /&gt;
The transport field indicates the transport type for the given host address. It can be either &amp;quot;tcp&amp;quot;, &amp;quot;udp&amp;quot;, or &amp;quot;kkdcp&amp;quot; for MS-KKDCP.&lt;br /&gt;
&lt;br /&gt;
The host field can be an IPv4 or bracket-enclosed IPv6 address (k5_parse_host_string(), part of PR#380 will help with this). A host for the MS-KKDCP transport type uses a https:// address with an optional port and path. &lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5636</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5636"/>
				<updated>2016-06-01T14:44:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type, however it was decided that a TXT record will be used with a (currently non-standardized) URI payload format.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following TXT records:&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _krb5kdc.REALM (KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
An entry will contain a URI formatted string of priority, weight, flags, transport, and target (containing optional port and path), separated by colons. The host field can be an IPv4 or bracket-enclosed IPv6 address (k5_parse_host_string(), part of PR#380 will help with this). The MS-KKDCP transport type uses a http/https host address target with an optional port and path. &lt;br /&gt;
&lt;br /&gt;
* priority:weight:[flags]:udp:host[:port]&lt;br /&gt;
* priority:weight:[flags]:tcp:host[:port]&lt;br /&gt;
* priority:weight:[flags]:tls:host[:port]&lt;br /&gt;
* priority:weight:[flags]:kkdcp:&amp;lt;nowiki&amp;gt;http://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
* priority:weight:[flags]:kkdcp:&amp;lt;nowiki&amp;gt;https://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
&lt;br /&gt;
The flags field contains zero or more flag characters, and is ignored for admin and password service lookups. Currently the only valid character is M, indicating that the record is for a master server. On the initial contact, if a non-master KDC has answered and returns an error such as PREAUTH_FAILED, entries that are marked as master will be contacted.&lt;br /&gt;
&lt;br /&gt;
Priority is the lowest number first. Weight will not be used for now. On the initial KDC contact, all KDCs will be tried according to priority regardless of master status. On the fallback contact, master KDCs will be tried according to priority, excluding non-masters.&lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5635</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5635"/>
				<updated>2016-05-31T20:10:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type, however it was decided that a TXT record will be used with a (currently non-standardized) URI payload format.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following TXT records:&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _kerberos.REALM (KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
An entry will contain a URI formatted string of priority, weight, flags, transport, target, and optional port, separated by colons. The MS-KKDCP transport type uses a http/https host address target with an optional port and path.&lt;br /&gt;
&lt;br /&gt;
* priority:weight:flags:udp:host[:port]&lt;br /&gt;
* priority:weight:flags:tcp:host[:port]&lt;br /&gt;
* priority:weight:flags:tls:host[:port]&lt;br /&gt;
* priority:weight:flags:kkdcp:&amp;lt;nowiki&amp;gt;http://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
* priority:weight:flags:kkdcp:&amp;lt;nowiki&amp;gt;https://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
&lt;br /&gt;
The flags field contains zero or more flag characters. Currently the only valid character is M, indicating that the record is a master server.&lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
The host field can be an IPv4 or IPv6 address (k5_parse_host_string(), part of PR#380 will help with this)&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5634</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5634"/>
				<updated>2016-05-27T18:01:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type, however it was decided that a TXT record will be used with a (currently non-standardized) URI payload format.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following TXT records:&lt;br /&gt;
* _kerberos-master.REALM (Master KDC)&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _kerberos.REALM (Normal KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
&lt;br /&gt;
An entry will contain a URI formatted string of priority, weight, transport, target, and optional port, separated by colons. The MS-KKDCP transport type uses a http/https host address target with an optional port and path.&lt;br /&gt;
&lt;br /&gt;
* priority:weight:udp:host[:port]&lt;br /&gt;
* priority:weight:tcp:host[:port]&lt;br /&gt;
* priority:weight:tls:host[:port]&lt;br /&gt;
* priority:weight:kkdcp:&amp;lt;nowiki&amp;gt;http://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
* priority:weight:kkdcp:&amp;lt;nowiki&amp;gt;https://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
(Password service discovery)&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5633</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5633"/>
				<updated>2016-05-27T18:00:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type, however it was decided that a TXT record will be used with a (currently non-standardized) URI payload format.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
* Does not assist in locating password services&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a DNS lookup for one or more of the following TXT records:&lt;br /&gt;
* _kerberos-master.REALM (Master KDC)&lt;br /&gt;
* _kerberos-adm.REALM (Admin service)&lt;br /&gt;
* _kerberos.REALM (Normal KDC)&lt;br /&gt;
* _kpasswd.REALM (Password service)&lt;br /&gt;
* _krb524.REALM (K5 to K4 service)&lt;br /&gt;
&lt;br /&gt;
An entry will contain a URI formatted string of priority, weight, transport, target, and optional port, separated by colons. The MS-KKDCP transport type uses a http/https host address target with an optional port and path.&lt;br /&gt;
&lt;br /&gt;
* priority:weight:udp:host[:port]&lt;br /&gt;
* priority:weight:tcp:host[:port]&lt;br /&gt;
* priority:weight:tls:host[:port]&lt;br /&gt;
* priority:weight:kkdcp:&amp;lt;nowiki&amp;gt;http://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
* priority:weight:kkdcp:&amp;lt;nowiki&amp;gt;https://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
(Password service discovery)&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	<entry>
		<id>https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5632</id>
		<title>Projects/KDC Discovery</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.test.kerberos.org/wiki?title=Projects/KDC_Discovery&amp;diff=5632"/>
				<updated>2016-05-27T15:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mrogers: Created page with &amp;quot;{{project-target|1.15}} {{project-early}}  This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{project-target|1.15}}&lt;br /&gt;
{{project-early}}&lt;br /&gt;
&lt;br /&gt;
This project will implement Kerberos service discovery by DNS as specified by {{idref|draft-mccallum-kitten-krb-service-discovery-02}}. The draft currently specifies a new URI DNS record type, however it was decided that a TXT record will be used with a (currently non-standardized) URI payload format.&lt;br /&gt;
&lt;br /&gt;
The current method of KDC discovery using DNS SRV records has the following drawbacks:&lt;br /&gt;
&lt;br /&gt;
* Only UDP and TCP protocols can be specified&lt;br /&gt;
* Multiple queries are needed to discover both protocol records&lt;br /&gt;
* The DNS administrator has no influence on client protocol use&lt;br /&gt;
* Does not assist in locating password services&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The client performs a single DNS lookup for the _kerberos.REALM TXT record containing priority, weight, transport, target, and optional port, separated by colons. The MS-KKDCP transport type uses a http/https host address target with an optional port and path.&lt;br /&gt;
&lt;br /&gt;
* priority:weight:udp:host[:port]&lt;br /&gt;
* priority:weight:tcp:host[:port]&lt;br /&gt;
* priority:weight:tls:host[:port]&lt;br /&gt;
* priority:weight:kkdcp:&amp;lt;nowiki&amp;gt;http://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
* priority:weight:kkdcp:&amp;lt;nowiki&amp;gt;https://host&amp;lt;/nowiki&amp;gt;[:port][/path]&lt;br /&gt;
&lt;br /&gt;
Discovery using this new method should be attempted before searching SRV records.&lt;br /&gt;
&lt;br /&gt;
(Password service discovery)&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
src/lib/krb5/os/dnsglue.c: k5_try_realm_txt_rr() has existing TXT lookup code, but only retrieves a realm name from the record. Make a generalized TXT lookup function to pass the result to a new parsing function for the URI format. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* https://tools.ietf.org/html/draft-mccallum-kitten-krb-service-discovery-02&lt;br /&gt;
* http://mailman.mit.edu/pipermail/krbdev/2016-May/012588.html&lt;/div&gt;</summary>
		<author><name>Mrogers</name></author>	</entry>

	</feed>