Автор Гілка: gssapi і kerberos5  (Прочитано 4249 раз)

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
gssapi і kerberos5
« : 2008-02-23 12:36:45 »
Добрий день. Я хочу спробувати додати підтримку gssapi перевірки особи (аутентифікацію) в socks сервер відповідно до rfc1961. Але я не знаю ні с ні gssapi :(. Можливо у кого є довідкові матеріали по темі чи досвід роботи то я буду дуже вдячний.

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: gssapi і kerberos5
« Відповідей #1 : 2008-03-23 08:22:50 »
Добрий день. Я хочу спробувати додати підтримку gssapi перевірки особи (аутентифікацію) в socks сервер відповідно до rfc1961. Але я не знаю ні с ні gssapi :(. Можливо у кого є довідкові матеріали по темі чи досвід роботи то я буду дуже вдячний.

Не дуже зрозуміло про що йде мова. GSS-API по-перше RFC2743. По-друге, це тільки механізм аутентифікації, який зазвичай вішають на Kerberos 5. Тобто, для початку ваші програми повинні підтримувати, наприклад, Kerberos. А потім їх вже пов'язувати між собою способами аутентифікації. Все це має сенс, коли хочеться мати в компанії SSO. А інакше це мало потрібні речі, IMO.

Можливо, детальніше поясніть про що йде мова й що ви хочете робити?

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
Re: gssapi і kerberos5
« Відповідей #2 : 2008-03-23 19:18:31 »
Про GSS-API:
Використання GSS-API для протоколу SOCKS 5 описане в rfc1961. Наскільки я зрозумів суть GSS-API у тому і полягає що програма може і не знати який протокол використовується - KERBEROS, SPNEGO тощо, це проблема GSS-API.
Про SSO:
Я створив SSO на базі Heimdal Kerberos. На Win поставив бібліотеки від MIT Kerberos, на Lin - PAM+Heimdal. Клієнти ходять в інет через SOCKS сервер ss5, в якому нема підтримки GSS-API (rfc1961).
По темі:
На даний момент я реалізував підримку GSS-API в сервері ss5. Написав автору і тестую в себе в організації. Тепер я думаю додати підримку GSS-API в tsocks.

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: gssapi і kerberos5
« Відповідей #3 : 2008-04-02 05:53:52 »
Наскільки я зрозумів суть GSS-API у тому і полягає що програма може і не знати який протокол використовується - KERBEROS, SPNEGO тощо, це проблема GSS-API.

Ну не змішуйте все докупи. :-) GSS-API — це тільки інтерфейс до сервісів інфраструктури безпеки. SPNEGO — це псевдомехаізм, який фактично «навішений» на GSSAPI щоби вибрати протокол ААА, що може бути Kerberos або NTLM,  RADIUS або ще якась біда. SASL — це сервіс... SSO — це взагалі метод контролювання доступу, а Слава КПСС вабщє нє чєлавєк. :-)

Я особисто займавсь більш «керберизацією» конкретного софта, щоби воно говорило до системних частин через GSSAPI щоби підтримувати SSO. А далі вже по трубах там воно вже через SASL до LDAP там...

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
Re: gssapi і kerberos5
« Відповідей #4 : 2008-04-04 14:05:17 »
Про Славу я зрозумів :)
Стосовно sso - чудово було б прикрутити до якогось jabber клієтну ( kopete, pidgin тощо ) підримку gssapi. Бо наскільки я знаю тільки spark підтримує gsspai, але він на java і дуже тормозить.  

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: gssapi і kerberos5
« Відповідей #5 : 2008-04-10 03:44:23 »
Про Славу я зрозумів :)
Стосовно sso - чудово було б прикрутити до якогось jabber клієтну ( kopete, pidgin тощо ) підримку gssapi. Бо наскільки я знаю тільки spark підтримує gsspai, але він на java і дуже тормозить.  
GSS-API так просто не прикрутиш іззовні. Прога сама повинна це робити або хоча-б давати відповідні «гачки» для того... :(

А Jabber клієнт в самому принцимі не може цього, бо треба логінитись-же на ремотний сервер з конкретним акаунтом. А у вас-же немає встановленого SSO-звязку — well, якщо є, то негайно зніміть... :-) Хіба-що якщо мова йде про внутрішній чат...
« Змінено: 2008-04-10 03:49:57 від BM »

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
Re: gssapi і kerberos5
« Відповідей #6 : 2008-04-12 22:15:51 »
Питання про Gss-Api:
Чи обов'язково очищати буфери gssapi після використання чи бажано? Наприклад я використав функцію gss_accept_sec_context
major_status = gss_accept_sec_context(
                  &minor_status,
                  &context,
                  gss_srv_cred,
                  &input_buffer,
                  GSS_C_NO_CHANNEL_BINDINGS,
                  &src_name,
                  NULL,
                  &output_buffer,
                  &rtflags,
                  NULL,
                  NULL );
мені треба використовувати gss_release_buffer(&minor_status, &output_buffer) чи воно і так згодится?

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
Re: gssapi і kerberos5
« Відповідей #7 : 2008-04-18 13:13:18 »
Ще питання: як дізнатись повністю визначене доменне ім'я (ПВДІ - FQDN)? Бо gethostname повертає ім'я хоста а getdomainname у мене нічого не повертає ( точніше - '(none)'). Я отримую ПВДІ зі змінної 'HOSTNAME'. Але це мені здається трошки неправильним. А коли в іншому дистрі цієї змінної не буде?

Відсутній pvl

  • Новачок
  • *
  • дописів: 39
  • Карма: +0/-0
Re: gssapi і kerberos5
« Відповідей #8 : 2008-04-18 20:45:24 »
з ПВДІ я розібрався - може кого цікавить ось приклад:

#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

void main(void) {
      char buf[255];
      int res;
      struct hostent *hp;
      
      gethostname(buf, 255);
      hp = gethostbyname(buf);
      
      printf("hostname: %s fqdn: %s\n", buf, hp->h_name);
      
}