Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
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), что приводит к их непрерывному накоплению.
Влияние
- Это приводит к значительному увеличению объема используемого дискового пространства в хранилище данных (Cassandra).
- Для пользователей частного облака это может привести к увеличению затрат на хранение данных, а в худшем случае — к заполнению диска и возникновению ошибок во время работы или сбою в системе.
Передовая практика
В зависимости от ваших конкретных требований к безопасности, используйте подходящий более короткий срок действия для токенов доступа и обновления OAuth, чтобы они быстро удалялись и, таким образом, избегали их накопления.
Установите время истечения срока действия токенов обновления таким образом, чтобы они были действительны немного дольше, чем токены доступа. Например, если вы установите 30 минут для токена доступа, а затем 60 минут для токена обновления.
Это гарантирует, что:
- После истечения срока действия токена доступа остается достаточно времени для использования токена обновления, чтобы сгенерировать новые токены доступа и обновления.
- Токены обновления истекут через некоторое время и могут быть своевременно удалены, чтобы избежать их накопления.