Re: 8.3 GSS Issues

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: "Henry B(dot) Hotz" <hotz(at)jpl(dot)nasa(dot)gov>
Cc: Stephen Frost <sfrost(at)snowman(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 8.3 GSS Issues
Date: 2007-10-27 08:36:50
Message-ID: 4722F8A2.7040606@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Henry B. Hotz wrote:
>>>>> What the krb5 method does is IMO a documented bug. The realm name
>>>>> is part of the name.
>>>>>
>>>>> As I explained at some length you cannot assume the username (first
>>>>> component of the principal) has any meaning by itself, except in
>>>>> small deployments with no external trust agreements. Kerberos (and
>>>>> AD) are designed to support larger infrastructures with multiple
>>>>> organizations.
>>>>
>>>> This isn't unexpected for PG as the current krb5 support does this.
>>>> I'm not a big fan of it but at the same time I don't feel it's
>>>> justification to drop it from 8.3. Having it only allow the default
>>>> realm would be an option which could work in 8.3, imv.
>>>
>>> I don't think the fact that the existing krb5 code does the wrong
>>> thing (and can't be used in an environment with cross-realm
>>> agreements) is justification for doing the wrong thing in a new
>>> capability. The code in my original patch would do the latter
>>> (default realm only).
>>>
>>> More precisely: if you do a gss_import_name() on "smith" and
>>> "smith(at)DEFAULT(dot)REALM" you get the same internal representation, and
>>> gss_compare_name() will tell you they're the same. Also
>>> gss_compare_name() will tell you "smith(at)OTHER(dot)REALM" is different
>>> from either of the first two.
>>
>> Wouldn't using a specific parameter like krb_match_realm=YOUR.REALM that
>> you set in the config file be more flexible? In that it actually allows
>> scenarios like server/resource domains (not sure how common they are in
>> unix krb setups, but they're certainly not unfamiliar in the Windows AD
>> world)?
>
> Yes and no. It certainly would have made it easier to test my original
> patch since the server was in a test realm and I couldn't use my normal
> production identity. I'd imagine deployments where the users are in a
> different realm from the servers are somewhat common.

Yes, that is the "resource domain" model that at least MS suggested you
use earlier on - they may still do so.

> The counter is that (if done naively) it would prevent you from
> supporting users from multiple realms at all. I never completely tested
> this, but I think with my original patch you could define both "smith"
> (== "smith(at)DEFAULT(dot)REALM") and "smith(at)OTHER(dot)REALM" as users to PG. They
> wouldn't be the same user (which you might want), but you could support
> both of them.

Well, you could turn it off, and use those usernames then, no?

> Is there any (other) code in PG that would barf on long usernames that
> contain "@" and/or "."?

I don't think there is any risk with it containing that, but there is a
max length of a username somewhere of course...

>>> If we don't use gss_compare_name(), or some similar mechanism, to
>>> compare connection names to PG usernames, then I don't think GSSAPI
>>> support should be included in 8.3.
>>
>> I think that's a horrible idea, given that it works perfectly fine the
>> way
>> it is now for the vast majority of users.
>>
>> That said, we should certainly fix it in one way or another for 8.3.
>> But if
>> that fails, I see no reason at all to pull the feature.
>
> If this isn't fixed then PG will never be a supported infrastructure
> service at JPL the way MySQL currently is. I had hoped to use the
> GSSAPI support as a feature to pry some people away from MySQL, but
> without the ability to integrate into a multi-realm infrastructure this
> won't fly. Of course even with proper support it still may never
> happen, so that isn't a threat.

Sure, but that's no reason to pull it from 8.3 if it can only be fixed
in 8.4. It's a good reason to work towards having it fixed in 8.3,
certainly, but not a reason to pull it if it isn't there.

FWIW, I'm fairly certain I can have a match_realm parameter done for beta3.

//Magnus

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Anton 2007-10-27 08:53:30 Re: partitioned table and ORDER BY indexed_field DESC LIMIT 1
Previous Message Gregory Stark 2007-10-27 08:18:16 Append nodes and orderings