Аутентификация и авторизация
Процесс проверки подлинности пользовательских данных и выдача пользователю определённых прав в FastReport Corporate Server осуществляется по одному из двух доступных способов:
Через JWT token.
В этом случае аутентификацию нужно пройти лично, а токен будет действовать только 5 минут, за которые пользователь должен войти в своё приложение. При подключении к серверу браузер перенаправит на сервер аутентификации, после чего сгенерирует токен доступа. С точки зрения безопасности мы ограничиваем возможность получения JWT токена только лично пользователем.
Если в течении 5 минут пользователь не зашёл в приложение, то аутентификацию необходимо пройти заново. Если пользователь зашёл в приложение, повторная аутентификация не требуется.
Через API key.
В этом случае процесс получения прав доступа осуществляется для серверных приложений. Для получения ключа доступа (API key) необходимо присутствие пользователя. Однако сам ключ может действовать продолжительное время, например, год.
Получение первого API key
Для получения первого API key воспользуйтесь пользовательской панелью. Если по какой то причине доступа к пользовательской панели нет, можно запросить ключ по описанию ниже.
Откройте ссылку в браузере: https://fastreport.cloud/account/signin?r=https://fastreport.cloud/api/manage/v1/ApiKeys.
Переход по этой ссылке направит вас на автоматический процесс аутентификации браузера.
Теперь когда аутентификация пройдена, необходимо запросить новый ключ.
Нажмите
F12
илиCtrl+Shift+I
, что бы открыть панель разработчика. Сочетание клавиш могут отличаться от стандартных, в этом случае откройте панель разработчика через меню браузера.Скопируйте и выполните код в консоли JavaScript.
Этот код сделает
POST
запрос на URLhttps://fastreport.cloud/api/manage/v1/ApiKeys
для создания нового ключа доступа до 2030 года.await fetch('https://fastreport.cloud/api/manage/v1/ApiKeys', { method: 'POST', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: JSON. stringify({ "description": "Generated by js develop panel", "expired": "2030-01-01T07:41:23.399Z" }) });
Обновите страницу браузера и заберите результат.
{ "apiKeys": [ { "value": "cc355oeu1z5d5wncayo33me6c1g5junqdqk4pkupid7t8ynjshey", "description": "Generated by js develop panel", "expired": "2030-01-01T07:41:23.399Z" } ], "count": 1 }
Теперь вы можете использовать API key, в случае выше это cc355oeu1z5d5wncayo33me6c1g5junqdqk4pkupid7t8ynjshey
.
Повторно получать новый API key через браузер нет необходимости.
Как использовать API key
Ключ следует передавать с каждым запросом в заголовке Authorization: Basic
. В качестве имени пользователя следует использовать apikey
, а в качестве пароля значение ключа. Например.
Authorization: Basic Base64Encode(apikey:cc355oeu1z5d5wncayo33me6c1g5junqdqk4pkupid7t8ynjshey);
Где Base64Encode
это функция преобразования строки в base64
при использовании кодировки UTF8
.
Получение нового API key
Для получения нового ключа сделайте POST
запрос на точку входа https://fastreport.cloud/api/manage/v1/ApiKeys
и передайте JSON в теле запроса по схеме ниже.
{
"description": "string",
"expired": "string($date-time)"
}
Пример запроса.
curl -X POST "https://fastreport.cloud/api/manage/v1/ApiKeys" -H "accept: text/plain" -H "authorization: Basic YXBpa2V5OmNjMzU1b2V1MXo1ZDV3bmNheW8zM21lNmMxZzVqdW5xZHFrNHBrdXBpZDd0OHluanNoZXk=" -H "Content-Type: application/json-patch+json" -d "{ \"description\": \"Generated by js develop panel\", \"expired\": \"2030-01-01T07:41:23.399Z\"}"
Схема ответа.
{
"value": "string",
"description": "string",
"expired": "2020-12-02T08:47:43.270Z"
}