Бързо начало за автентификация чрез Shell
Въведение
API-то за автентификация чрез Shell позволява на партньорските приложения да се автентифицират в API Gateway, като използват потока за клиентски идентификационни данни по OAuth 2.0. Този API предоставя токени за достъп с ограничена валидност, които оторизират заявки към API-та на Shell, като осигуряват сигурна комуникация между вашето приложение и услугите на Shell.
| Предимства | Описание |
|---|---|
| Сигурен достъп | Стандарт OAuth 2.0 с токени с ограничена валидност |
| Лесна интеграция | Единна крайна точка за генериране на токени |
| Гъвкави среди | Поддръжка както за тестови, така и за производствени среди |
Удостоверяване
Забележка за миграция
Този API предоставя както версия v1, така и версия v2 на крайната точка за токени по OAuth. Версия 1 е остаряла и ще бъде премахната при следващия цикъл на промени. Новите интеграции трябва да използват v2, а съществуващите потребители трябва да мигрират към v2 възможно най-скоро. Основните разлики са във формата на отговора: v2 използва стандартни имена на полета за OAuth (expires_in вместо expires_in(seconds) и Bearer вместо BearerToken).
Процес на оторизация
- Искане на клиентски идентификатор и тайна
Свържете се с екипа на Shell API, за да поискате достъп до OAuth автентификация. Екипът на Shell API ще ви предостави клиентски идентификатор и тайна.
- Искане на Bearer токен
След като получите данните за достъп, изпратете заявка към крайната точка за OAuth токен на Shell Authentication API, като използвате вашите идентификационни данни.
Пример за заявка:
curl --location --request POST 'https://api-test.shell.com/v2/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=**************' \
--data-urlencode 'client_secret=**************' \
--data-urlencode 'grant_type=client_credentials'В отговора ще получите токен от типа „Bearer“:
{
"access_token": "**************",
"expires_in": "899",
"token_type": "Bearer"
}Забележка: Времето за изтичане на валидността на токена „Bearer“ се посочва в секунди.
- Упълномощаване на API заявки
Когато извиквате Shell API-та, включете следното в заглавката на заявката.
Authorization: Bearer access_tokenБазови URL адреси
| Среда | URL |
|---|---|
| Тест | https://api-test.shell.com |
| Производствена среда | https://api.shell.com |
Основна интеграция
1. Генериране на OAuth токен
Описание: Искане на OAuth токен за достъп, използвайки вашите клиентски идентификационни данни. API-то връща Bearer токен с ограничена валидност, който трябва да бъде включен в заглавката „Authorization“ на всички последващи API заявки. Поради мерки за сигурност се използва методът POST вместо GET, за да се предотврати кеширането.
Път: POST /v2/oauth/token
Примерно заявка
curl --location --request POST 'https://api-test.shell.com/v2/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=twuwywTYUHAH6AHHJ' \
--data-urlencode 'client_secret=yuahaYThdvdowoUUU7wjsjMM' \
--data-urlencode 'grant_type=client_credentials'Параметри на заявката
| Параметър | Тип | Задължителен | Описание |
|---|---|---|---|
| client_id | низ | Да | Идентификатор на клиента, предоставен от Shell |
| client_secret | низ | Да | Тайна на клиента, предоставена от Shell |
| grant_type | низ | Да | Стойност на типа на разрешението за достъп (използвайте "client_credentials") |
Пример за отговор
{
"access_token": "NiE3gzPNVFpwYYMyyWu6mGFYtKN5",
"expires_in": "899",
"token_type": "Bearer"
}Параметри на отговора
| Параметър | Тип | Описание |
|---|---|---|
| access_token | string | Генериран токен за достъп, който се използва в заявките към API |
| expires_in | string | Срок на валидност в секунди |
| token_type | string | Тип на токена (Bearer) |
Обработка на грешки
API-то използва стандартни HTTP статусни кодове. В случай на грешка в тялото на отговора ще бъдат предоставени допълнителни подробности.
| Код на грешката | Описание | Решение |
|---|---|---|
| 400 | Невалидно заявка - Заявката съдържа грешки в синтаксиса или не може да бъде изпълнена | Уверете се, че всички задължителни параметри са включени и правилно форматирани |
| 401 | Невалиден идентификатор на клиента - Липсва заглавката „Authorization“ или данните за удостоверяване са невалидни | Уверете се, че client_id и client_secret са правилни и правилно кодирани |
| 403 | Забранено - Клиентът няма права за достъп | Свържете се с екипа на Shell API, за да проверите разрешенията си за достъп |
| 404 | Не е намерено - Не е възможно да се идентифицира прокси сървърът за поискания URL | Уверете се, че URL адресът на крайната точка е правилен за вашата среда |
| 405 | Методът не е разрешен - HTTP методът не се поддържа за този ресурс | Уверете се, че използвате метода POST за крайната точка на токена |
| 500 | Вътрешна грешка на сървъра - Изпълнението се провали на сървъра | Опитайте отново заявката; свържете се с поддръжката на Shell, ако проблемът продължава |
