|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
SPNEGO in Samba - Longhorn Server interop issues...When Windows shipped, there were no other SPNEGO implementations to
test against, and so Windows really didn't match SPNEGO RFC 2478 100%. Eventually, Larry, Paul "Mr. CIFS" Leach, & company at Microsoft made an effort to clean this mess up, and revisit the standard so that everyone could play well together. The end result is RFC 4178, which supersedes 2478. As such, in early versions of Windows SPNEGO, there were some "extra" fields added to the negTokenInit message which are being deprecated in Vista, Longhorn Server, and eventually service packs for older platforms. The most significant of these fields is the principal name - there is really no place in either standard which allows the return of a principal in negTokenInit messages. This is being corrected for in Vista and Longhorn server by continuing to add the field, but instead of a "real" principal, it now contains "not_defined_in_RFC4178 at please_ignore". From a security standpoint, allowing the server to specify its service principal is a "bad idea" - I'm OK with this change, but it means we'll need to fix up some Samba code, and we'll need to start using / generating real service principal names in order to get Kerberos authentication. Currently, we try to get a service ticket to the @please_ignore realm!!! Volker made a fix in cliconnect.c (http://lists.samba.org/archive/ samba-cvs/2006-October/071344.html) to partially address this. However, this does not address issues when operating against Longhorn Server (Windows 2008 server?). I'm sorting through the issues, but the first error occurs when trying to join a Samba server to the domain - the code in ads_sasl_spnego_bind() uses this principal to attempt to get a Kerberos ticket to the ldap head. I'm sure this is the first layer of the onion (there are encoding issues in the old Microsoft implementation as well), but there'll be more - before I get too deep, is this work already being done elsewhere??? If not, I should be able to get fairly solid Longhorn Server interop moving forward in the next week, and will submit a patch. Thanks, Todd Todd Stecher | Windows Interop Dev Isilon Systems P +1-206-315-7500 F +1-206-315-7501 www.isilon.com D +1-206-315-7638 M +1-425-205-1180 |
|
|
Re: SPNEGO in Samba - Longhorn Server interop issues...On Tue, Jul 03, 2007 at 04:10:30PM -0700, Todd Stecher wrote:
> > I'm sure this is the first layer of the onion (there are encoding > issues in the old Microsoft implementation as well), but there'll be > more - before I get too deep, is this work already being done > elsewhere??? If not, I should be able to get fairly solid Longhorn > Server interop moving forward in the next week, and will submit a patch. Not to my knowledge ("work already being done elsewhere"). I'd appreciate a patch and I'll definately review it asap. Thanks ! Jeremy. |
|
|
Re: SPNEGO in Samba - Longhorn Server interop issues...4 jul 2007 kl. 01.10 skrev Todd Stecher:
> When Windows shipped, there were no other SPNEGO implementations to > test against, and so Windows really didn't match SPNEGO RFC 2478 > 100%. Eventually, Larry, Paul "Mr. CIFS" Leach, & company at > Microsoft made an effort to clean this mess up, and revisit the > standard so that everyone could play well together. The end result > is RFC 4178, which supersedes 2478. > > As such, in early versions of Windows SPNEGO, there were some > "extra" fields added to the negTokenInit message which are being > deprecated in Vista, Longhorn Server, and eventually service packs > for older platforms. The most significant of these fields is the > principal name - there is really no place in either standard which > allows the return of a principal in negTokenInit messages. This is > being corrected for in Vista and Longhorn server by continuing to > add the field, but instead of a "real" principal, it now contains > "not_defined_in_RFC4178 at please_ignore". > > From a security standpoint, allowing the server to specify its > service principal is a "bad idea" - I'm OK with this change, but it > means we'll need to fix up some Samba code, and we'll need to start > using / generating real service principal names in order to get > Kerberos authentication. Currently, we try to get a service ticket > to the @please_ignore realm!!! > > Volker made a fix in cliconnect.c (http://lists.samba.org/archive/ > samba-cvs/2006-October/071344.html) to partially address this. > However, this does not address issues when operating against > Longhorn Server (Windows 2008 server?). I'm sorting through the > issues, but the first error occurs when trying to join a Samba > server to the domain - the code in ads_sasl_spnego_bind() uses this > principal to attempt to get a Kerberos ticket to the ldap head. > > I'm sure this is the first layer of the onion (there are encoding > issues in the old Microsoft implementation as well), but there'll > be more - before I get too deep, is this work already being done > elsewhere??? If not, I should be able to get fairly solid Longhorn > Server interop moving forward in the next week, and will submit a > patch. We have an implementation RFC4178 in Heimdal, its farly easy to test it with LH with gssmaggot/gssmaster (or using heimdal's gssmask/ gssmaestro). Love |
|
|
|
|
|
Re: SPNEGO in Samba - Longhorn Server interop issues... - KRB5.CONFHow about use the the servicePricipalName attribute from Active Directory for the target HOST.
|
|
|
Re: SPNEGO in Samba - Longhorn Server interop issues... - KRB5.CONF-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 eddietse wrote: > How about use the the servicePricipalName attribute from > Active Directory for the target HOST. The SPN doesn't contain the realm. You need to search for (dNSHostName=$fqdn) in GC and then you could deduce the realm from the DN by converting the RFC2247 DC syntax back to a dns domain. However, this wouldn't really work well for cross realm trusts as you can't tell the difference between a host in another forest and one that is just not in AD. > Todd Stecher-4 wrote: >> >> I have this all working (against NT4, W2000, 2003, 2008), but our >> implementation has taken a dependency to start adding the default >> realm to krb5.conf when making outbound CIFS request from a Samba >> server (e.g. RPC). >> >> This is because before these changes we used to rely on the principal >> returned in the spnego negtokeninit message (which had the form host/ >> machinename.domain.com@...). However, now the principals >> we're passing into the kerberos libraries are of the form host/ >> machinename.domain.com (no info after the @ sign). This means it has >> to fall back on the default realm value provided in krb5.conf for >> realm location. >> >> Is it fairly normal for people to add in the default realm into >> krb5.conf when running in ADS mode? Any suggestions on a "better" >> way to divine the service's realm, if its not available in the SPNEGO >> message? Todd, If I understand you correctly, using the default realm from krb5.conf means that we break when contacting a server via a cross realm trust, no? cheers, jerry -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGpLj7IR7qMdg1EfYRAt+tAJ48LmsLilg2nXhLLnRe4uM/6rBygQCdGm9L pVnuyIeCQa/47CCpmr/IV7Y= =j26Y -----END PGP SIGNATURE----- |
| Free embeddable forum powered by Nabble | Forum Help |