Re: GSS Auth issue when user member of lots of AD groups

Поиск
Список
Период
Сортировка
От Jacob Champion
Тема Re: GSS Auth issue when user member of lots of AD groups
Дата
Msg-id CAOYmi+nZpOu_Yd_dvQQehK78B48MB-TT1Z7Myp1xSQ1uUHHZVQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: GSS Auth issue when user member of lots of AD groups  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: GSS Auth issue when user member of lots of AD groups
Список pgsql-bugs
On Thu, May 22, 2025 at 8:46 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Hmm.  That must be coming from this bit in libpq:
>
>     /* Must have output.length > 0 */
>     if (output.length > PQ_GSS_SEND_BUFFER_SIZE - sizeof(uint32))
>     {
>         pg_GSS_error(libpq_gettext("GSSAPI context establishment error"),
>                      conn, major, minor);
>         gss_release_buffer(&minor, &output);
>         return PGRES_POLLING_FAILED;
>     }
>
> which makes it look like gss_init_sec_context wants us to send a
> packet larger than PQ_GSS_SEND_BUFFER_SIZE, which perhaps is a
> plausible thing to happen if the user belongs to enough groups.

Yeah, it seems like we need to be able to handle up to
PG_MAX_AUTH_TOKEN_LENGTH (64k) for that initial ticket, at least?

>  * Therefore, these two #define's are effectively part of the protocol
>  * spec and can't ever be changed.
>  */
> #define PQ_GSS_SEND_BUFFER_SIZE 16384
> #define PQ_GSS_RECV_BUFFER_SIZE 16384

We can't increase our send buffer size without risking breakage, but a
peer could choose to receive larger initial packets without issue.
Then it comes down to deciding when to flip the sender into that
extended mode. Unfortunately this happens prior to feature
negotiation, and I don't see any obvious extension points yet. (Other
than introducing a completely new negotiation code, which would make
the existing fallback logic even worse than it is today.) Maybe the
user could just opt in for a few releases.

But also, the current behavior is just to fail hard, so if the client
tries to do something extra that also sometimes fails hard, it may not
really be a regression...

--Jacob



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