Аутентификация

Для доступа к API elles-dns-api необходимо в заголовке HTTP-запроса Authorization предоставить действующий билет Kerberos, полученный через протокол SPNEGO:

Authorization: Negotiate <base64-encoded-token>

Например, чтобы выполнить запрос с помощью curl:

  1. Убедитесь, что на клиентской машине установлен и настроен Kerberos-клиент.

  2. Получите билет TGT (Ticket Granting Ticket) с помощью команды kinit:

    kinit <user_name>@<REALM>

    Пример:

    kinit vivanov@example.com
  3. Для аутентификации в API используйте curl с флагами --negotiate и --user ::

    curl -k --negotiate -u : \
      "https://<dns_api_host_server>:<port>/<api_endpoint>"

    Пример:

    curl -k --negotiate -u : \
      "https://api-host.example.com:9443/health"

    Описание параметров:

    • --negotiate — включает SPNEGO/Kerberos аутентификацию;

    • -u : — указывает curl использовать текущий Kerberos-билет без явного указания имени пользователя;

    • -k — отключает проверку TLS-сертификата (только для тестирования).

Если в конфигурации сервера задан параметр rbac.group_roles, доступ разрешен только пользователям, чьи собственные SID (или SID групп, членами которых они являются) соответствуют ролям, определенным в Casbin-политиках.

Обновлено: