Доступ и Developer Portal
Applications, subscriptions, scopes, rate limits и безопасная работа с credentials.
Доступ и Developer Portal
Доступ Consumer состоит из нескольких независимых элементов. Наличие пользователя в Developer Portal само по себе не означает, что runtime-приложение может вызвать любой API.
Модель доступа
| Элемент | Назначение |
|---|---|
| Portal user | Вход в Developer Portal и управление доступными приложениями |
| Application | Логическое представление Consumer в конкретном окружении |
| Subscription | Разрешение application использовать API или API Product |
| Role | Группа полномочий пользователя или Consumer |
| Scope | Набор доступов, связанный с конкретными API resources |
| Rate limit | Разрешённая интенсивность вызовов |
| Runtime credentials | Данные, которыми приложение подтверждает свою идентичность |
Найти API
В Developer Portal Consumer проверяет:
- название API или API Product;
- опубликованную версию;
- доступные resources и методы;
- OpenAPI-документацию и примеры;
- security scheme;
- scopes и subscription plan;
- формат ошибок и ограничения.
Если нужный API не виден, не создавайте обходной доступ: проверьте, опубликована ли нужная версия и разрешена ли она вашей роли.
Application и подписка
Application создаётся отдельно для каждого окружения. Sandbox и Production не должны использовать общие credentials.
После создания application ESB Team назначает согласованные подписки и ограничения. Consumer не получает доступ к операциям, которых нет в утверждённой заявке.
Аутентификация
Конкретный механизм указывается в карточке подключения и OpenAPI security scheme. В проектных материалах предусмотрены Basic Authentication, API keys и OAuth 2.0; использовать следует только способ, назначенный для данного API и окружения.
Не угадывайте security scheme
Нельзя подставлять Basic credentials вместо API key или OAuth token. Если OpenAPI, Developer Portal и карточка подключения расходятся, остановите тестирование и запросите уточнение у ESB Team.
Работа с credentials
- Получайте credentials только через согласованный защищённый канал.
- Не размещайте secrets в исходном коде, тикетах, логах и screenshots.
- Храните их в secret manager или защищённом runtime storage.
- Используйте разные значения для Sandbox и Production.
- Ограничьте круг людей и сервисов, имеющих доступ.
- Запрашивайте ротацию при подозрении на компрометацию.
Scopes и resources
Scope связывает разрешение с конкретными API-операциями. Доступ формируется последовательно:
- создаётся или выбирается роль;
- создаётся scope;
- API resources привязываются к scope;
- роль назначается Consumer;
- subscription связывает application с API.
Ошибка 403 Forbidden часто означает, что идентичность распознана, но необходимый scope, role или resource access отсутствует.
Rate limits
Rate limit назначается по согласованной нагрузке и защищает платформу от неконтролируемого трафика. Consumer должен:
- ограничивать исходящий поток на своей стороне;
- корректно обрабатывать
429 Too Many Requests; - использовать backoff, а не немедленный бесконечный retry;
- заранее запрашивать изменение лимита при росте нагрузки.