Перейти к основному содержимому

Сервис авторизации

Что это

Сервис авторизации занимается хранением пользовательских и клиентских реквизитов, и выдачей токенов доступа, по которым другие приложения могут авторизовать контекст.

подсказка

Реквизиты для обращения в сервис можно получить у сотрудников технической поддержки Brainysoft, либо самостоятельно в интерфейсе сервиса авторизации.

Расшифровать access token (bsauth)

Access token содержит в себе контекст пользователя, его можно получить отправив запрос в ядро. Если токен будет не валидный/протухший - в ответ вернется код с ошибкой

curl 'https://{CORE_ENDPOINT}/bs-core/utils/session/whoami' --header 'bsauth: {{ACCESS_TOKEN}}'

Ответ

{
"timestamp": 1632340000000,
"status": "ok",
"data": {
"userId": 123,
"branchId": 101301,
"subdivisionId": 101791,
"legalEntityId": 102071,
"accessRightId": 102036,
"customerKey": "your-customer-key"
}
}

Сервисное приложение / client credentials

В этом руководстве представлена инструкция по получению учетных данных клиента и токена доступа с помощью OAuth API. В инструкции описана авторизация по логину и паролю (или в соответствии со спецификацией grant_type=client_credentials). Полное описание протокола можно получить в спецификации OAuth 2.0.

Авторизация по логину и паролю представляет простой POST-запрос, в результате которого возвращается access token. Для получения access token нужно иметь:

Пример получения access token.

> POST {HOST}/oauth/token
> Content-Type: application/x-www-form-urlencoded
> grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}

Учетные данные client_id и client_secret, которые действительны для необходимых учетных записей.

Host - Адрес куда будет отправлен запрос

{
"access_token": "12346abcdef=/",
"token_type": "bsauth",
"expires_in": 299,
"scope": "core_basic admin:read admin:write account:read account:write account:pswrd",
"sessid": "1234567"
}

Ответ содержит:

  • access_token - токен
  • token_type – тип токена, в данном случае bsauth
  • expires_in – Время жизни токена в сек
  • scope – привилегии пользователя
  • sessid – ID сессии