auth - TotalApi/SDK-dNet GitHub Wiki

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

Перед использованием API необходимо зарегистрировать своё приложение. При регистрации приложения будут предоставлены два уникальных ключа: секретный ключ ApiKey и публичный ключ AppKey. TotalAPI реализует гибкую модель аутентификации при обращении к интерфейсам API. В зависимости от того вызывается ли API из защищенной среды (например, серверная программа) или неконтролируемой среды (например, веб браузер) используется соответствующий вид аутентификации. Использование правильного вида аутентификации позволяет использовать API, так чтобы не скомпрометировать секретный ключ ApiKey и защитить данные пользователей от несанкционированного доступа.

Выполнение аутентификации

Аутентификация с использованием ApiKey или AppKey требуется при каждом вызове методов API, кроме редких исключений, таких как функции записи данных с датчиков. Для выполнения аутентификации необходимо заполнить одно или несколько полей класса TotalApiAuth и передать данные одним из следующих способов:

  1. Передача TotalApiAuth json-объекта как параметр auth в Endpoint URL сервиса:
https://totalapi.io/api/v1/wcf/ITelematicsService?auth={ApiKey:”456”}
  1. Передача TotalApiAuth json-объекта в заголовке Authorization HTTP-запроса к серверу:
Authorization: TOTALAPI {ApiKey:”456”}
  1. Передача объекта TotalApiAuth в заголовке с именем Authorization WCF-сообщения (только для WCF API).

Виды аутентификации TotalAPI

  • ApiKey- аутентификация Требует значения ApiKey. Используется при работе с API в защищенной среде (например, в backend Web-приложения). При успешной аутентификации предоставляется полный доступ ко всем данным приложения, для которого сгенерирован этот ключ.
  • AppKey- аутентификация Требует значения AppKey. Используется при работе с API в незащищенных клиентских приложениях исключительно для регистрации нового пользователя приложения. При успешной аутентификации разрешены только методы API для задания имени и пароля нового пользователя. Для удаления созданного пользователя требуется ApiKey- аутентификация.
  • AppUser- аутентификация Требует значений AppKey, UserLogin, UserPassword. Используется при работе с API в незащищенных клиентских приложениях. При успешной аутентификации предоставляется доступ ко всем данным только указанного пользователя.
  • SessionKey- аутентификация Требует значения SessionKey, полученного предварительным вызовом метода GetSessionKey. Используется при работе с API в незащищенных клиентских приложениях. При успешной аутентификации уровень доступа к данным такой-же, как и при вызове метода GetSessionKey. Для получения SessionKey необходима ApiKey или AppUser аутентификация.
  • SSID- аутентификация Требует значения SSID. Используется только при работе подсистем с подсистемой биллинга.
  • SuperApiKey- аутентификация Требует валидного значения ApiKey суперадминистративного приложения. Используется исключительно при работе с Billing API административным приложением. При успешной аутентификации предоставляется полный доступ ко всем данным биллинга. (Не нужно публично документировать эту возможность).

Общие рекомендации по аутентификации TotalAPI

  1. Держите свой ApiKey в секрете. В случае компрометации – получите новый ключ взамен старого.
  2. По возможности, обращайтесь к сервисам API из защищенной среды выполнения вашего приложения. Например, реализуйте все запросы к API на серверной стороне (backend).
  3. Используйте AppKey только в простых приложениях, не имеющих серверной части (backendless).

Класс аутентификации

Описание класса TotalApiAuth, передающего эту информацию.

⚠️ **GitHub.com Fallback** ⚠️