Re: GSSAPI server side on Linux, SSPI client side on Windows

Поиск
Список
Период
Сортировка
От Christian Ullrich
Тема Re: GSSAPI server side on Linux, SSPI client side on Windows
Дата
Msg-id 52794120.1000005@chrullrich.net
обсуждение исходный текст
Ответ на Re: GSSAPI server side on Linux, SSPI client side on Windows  ("Francisco Figueiredo Jr." <francisco@npgsql.org>)
Список pgsql-general
* Francisco Figueiredo Jr. wrote:

> On Tue, Nov 5, 2013 at 2:35 PM, Christian Ullrich <chris@chrullrich.net
> <mailto:chris@chrullrich.net>> wrote:
>
>     * Stephen Frost wrote:
>
>         * Brian Crowell (brian@fluggo.com <mailto:brian@fluggo.com>) wrote:
>
>             However, the eventual goal was to connect to this same
>             server from a
>             .NET app running on Windows, and here I've run into a snag.
>             The Npgsql
>             library does not support GSSAPI—it only supports SSPI, which is
>             nearly-but-not-enough-like the same thing to count in this
>             situation,
>
>
>         Uhhh, why not?
>
>
>     Because the server on Linux sends AUTH_REQ_GSS, which Npgsql does
>     not recognize.
>
>     I tried to fix it using the reverse of they one-line fix that worked
>     in both JDBC and libpq. There, the problem was that they only
>     supported GSSAPI and had no clue about SSPI (except libpq on
>     Windows). The fix was to basically declare GSSAPI and SSPI to be the
>     same. It didn't work.
>
>     In Npgsql's case, the problem is the other way around -- it only
>     knows SSPI. While making GSSAPI the same as SSPI should work in
>     principle, there must be some difference somewhere.
>
>
>
> Did you make your changes in the NpgsqlState.cs file?

Yes.

> Also, while checking this part of the code, it seems Npgsql isn't
> handling the AuthenticationGSS message. It is only handling
> AuthenticationGSSContinue messages.
 >
 > I think you could try adding the  AuthenticationGSS case to Npgsql
 > and see if it can authenticate correctly. You could add a second
 > switch case below the case
 > AuthenticationRequestType.AuthenticationSSPI and see if Npgsql can
 > also handle the GSS authentication correctly.

That is exactly what I did.

I remember from my work on libpq that there is a slight difference in
how it handles the two authentication types, but there it is just a flag
for whether to treat the user name case-sensitively or not. Here, I
control the case of the user part of the UPN, the claimed user name in
the startup packet, and the role name in the database, and I know they
are all identical. Therefore it should not matter for now whether Npgsql
has similar logic already. To make GSSAPI support production-ready, I
may have to add it, of course.

--
Christian


В списке pgsql-general по дате отправления:

Предыдущее
От: Steve Crawford
Дата:
Сообщение: Re: Junk date getting uploaded into date field
Следующее
От: Christian Ullrich
Дата:
Сообщение: Re: GSSAPI server side on Linux, SSPI client side on Windows