Пример GNU SASL GSSAPI - PullRequest
       108

Пример GNU SASL GSSAPI

0 голосов
/ 14 марта 2020

Кажется, я нигде не могу найти пример того, как использовать GNU SASL с механизмом gssapi. Я попытался запустить его так (просто догадываясь, как это работает):

        gsasl_init(&ctx);
        gsasl_client_start(ctx, "GSSAPI", &session);

Но я получаю ошибку GSASL_UNKNOWN_MECHANISM от gsasl_client_start. Кто-нибудь знает, как использовать gsasl? Может ли кто-нибудь указать мне учебник?

1 Ответ

2 голосов
/ 14 марта 2020

Это явно связано с тем, что библиотека не создается с поддержкой GSSAPI; Глядя на источник (`libgasl-1.8.1 '), единственное место, которое может вернуть это:

// src/xstart.c
static int
setup (Gsasl * ctx,
       const char *mech,
       Gsasl_session * sctx,
       size_t n_mechs, Gsasl_mechanism * mechs, int clientp)
{
  Gsasl_mechanism *mechptr = NULL;
  int res;

  mechptr = find_mechanism (mech, n_mechs, mechs);
  if (mechptr == NULL)
    return GSASL_UNKNOWN_MECHANISM;

Так что это означает, что не случай библиотеки, поддерживающей его но он не может найти ресурсы на компьютере для его резервного копирования (например, Kerberos).

Когда я попытался скомпилировать это в моей собственной системе, configure не включил GSSAPI, потому что не смог найдите что-то важное:

...
checking if DIGEST-MD5 should be used... yes
checking if SCRAM-SHA-1 should be used... yes
checking if SAML20 should be used... yes
checking if OPENID20 should be used... yes
configure: checking for GSS implementation (yes)
configure: auto-detecting GSS/MIT/Heimdal
configure: use --with-gssapi-impl=IMPL to hard code
configure: where IMPL is `gss', `mit', or `heimdal'
checking for libgss... no
configure: WARNING: GNU GSS not found (see http://www.gnu.org/software/gss/)...
configure: WARNING: Auto-detecting MIT/Heimdal is unreliable, disabling GSSAPI
checking if KERBEROS_V5 should be used... no
...

, поэтому либо отсутствует какой-либо базовый пакет, либо вам нужно получить связанный, но по-другому названный пакет (который включает эту поддержку), либо вам нужно создать его самостоятельно с параметрами, которые позволяют ты хочешь.

...