Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Apigee Edge предоставляет платформу OAuth 2.0 для защиты API. OAuth2 — одна из самых популярных схем аутентификации и авторизации на основе токенов с открытым стандартом. Это позволяет клиентским приложениям получать доступ к API от имени пользователей, не требуя от пользователей раскрытия своего имени пользователя и пароля.
Apigee Edge позволяет разработчикам генерировать токены доступа и/или обновления, реализуя любой из четырех типов предоставления OAuth2 — учетные данные клиента , пароль , неявный код и код авторизации — с использованием политики OAuthv2 . Клиентские приложения используют токены доступа для использования безопасных API. Каждый токен доступа имеет свой срок действия, который можно установить в политике OAuthv2 .
Токены обновления выдаются дополнительно вместе с токенами доступа с некоторыми типами грантов. Токены обновления используются для получения новых действительных токенов доступа после истечения срока действия или отзыва исходного токена доступа. Срок действия токенов обновления также можно установить в политике OAuthv2 .
Антипаттерн
Установка длительного срока действия токена доступа и/или токена обновления в политике OAuthv2 приводит к накоплению токенов OAuth и увеличению использования дискового пространства на узлах Cassandra.
В следующем примере политики OAuthV2 показан длительный срок действия токенов обновления — 200 дней.
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes --> <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days --> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
В приведенном выше примере:
- Токен доступа установлен с достаточно меньшим сроком действия — 30 минут.
- Токен обновления имеет очень длительный срок действия — 200 дней.
- Если трафик к этому API составляет 10 запросов в секунду, то он может генерировать до 864 000 токенов в день.
- Поскольку срок действия токенов обновления истекает только через 200 дней, они сохраняются в хранилище данных (Cassandra) в течение длительного времени, что приводит к непрерывному накоплению.
Влияние
- Приводит к значительному росту использования дискового пространства в хранилище данных (Кассандра).
- Для пользователей частного облака это может увеличить затраты на хранилище или, в худшем случае, диск может переполниться, что приведет к ошибкам во время выполнения или сбоям в работе.
Лучшая практика
Используйте соответствующий более низкий срок действия для токенов доступа и обновления OAuth в зависимости от ваших конкретных требований безопасности, чтобы они быстро очищались и тем самым избегали накопления.
Установите срок действия для токенов обновления таким образом, чтобы он был действителен в течение немного более длительного периода, чем токены доступа. Например, если вы установили 30 минут для токена доступа, а затем установили 60 минут для токена обновления.
Это гарантирует, что:
- У вас достаточно времени для использования токена обновления для создания новых токенов доступа и обновления после истечения срока действия токена доступа.
- Срок действия токенов обновления истечет через некоторое время, и их можно будет своевременно удалить, чтобы избежать накопления.