Вы просматриваете документацию Apigee Edge .
 Перейдите к документации Apigee X. информация
Apigee Edge предоставляет платформу OAuth 2.0 для защиты API. OAuth2 — одна из самых популярных схем аутентификации и авторизации на основе токенов с открытым стандартом. Это позволяет клиентским приложениям получать доступ к API от имени пользователей, не требуя от пользователей раскрытия своего имени пользователя и пароля.
Apigee Edge позволяет разработчикам создавать токены доступа и/или обновления, реализуя любой из четырех типов предоставления OAuth2 — учетные данные клиента , пароль , неявный код и код авторизации — с использованием политики OAuthv2 . Клиентские приложения используют токены доступа для использования безопасных API. Каждый токен доступа имеет свой срок действия, который можно установить в политике OAuthv2 .
Токены обновления выдаются дополнительно вместе с токенами доступа с некоторыми типами грантов. Токены обновления используются для получения новых действительных токенов доступа после истечения срока действия или отзыва исходного токена доступа. Срок действия токенов обновления также можно установить в политике OAuthv2 .
Этот антипаттерн связан с антипаттерном установки длительного срока действия токенов OAuth .
Антипаттерн
Установка срока действия для токена обновления в политике OAuthv2 приводит к накоплению токенов OAuth и увеличению использования дискового пространства на узлах Cassandra.
 В следующем примере политики OAuthV2 показана отсутствующая конфигурация для <RefreshTokenExpiresIn> :
<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <!--<RefreshTokenExpiresIn> is missing -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>В приведенном выше примере:
- Токен доступа имеет достаточно короткий срок действия — 30 минут.
 - Срок действия токена обновления не установлен.
 - Токен обновления сохраняется в хранилище данных (Cassandra) навсегда, вызывая накопление данных.
 - Токен обновления, созданный без истечения срока действия, может использоваться неопределенно долго для создания токенов доступа.
 - Если трафик к этому API составляет 10 запросов в секунду, он может генерировать до 864 000 токенов в день.
 
Влияние
-  Если токен обновления создается без истечения срока действия, есть два основных последствия:
- Токен обновления можно использовать в любое время в будущем, возможно, в течение многих лет, для получения токена доступа. Это может иметь последствия для безопасности.
 - Строка в Cassandra, содержащая токен обновления, никогда не будет удалена. Это приведет к накоплению данных в Cassandra.
 
 - Если вы не используете токен обновления для получения нового токена доступа, а вместо этого создаете новый токен обновления и токен доступа, старый токен обновления останется в Cassandra. В результате токены обновления будут продолжать накапливаться в Cassandra, что приведет к дальнейшему раздуванию, увеличению использования диска и более сильному сжатию и в конечном итоге приведет к задержкам чтения/записи в Cassandra.
 
Лучшая практика
Используйте достаточно короткий срок действия для токенов обновления и доступа. См. рекомендации по установке сроков действия токенов обновления и доступа. Обязательно укажите в политике конфигурацию срока действия как для токена доступа, так и для токена обновления. Дополнительные сведения о настройке политики см. в документации по политике OauthV2 .
Рекомендации специально для клиентов Edge for Private Cloud
В этом разделе описаны лучшие практики специально для клиентов Edge for Private Cloud.
Укажите срок действия токена обновления по умолчанию.
По умолчанию, если срок действия токена обновления не указан в конфигурации политики, Edge создает токен обновления без срока действия. Это поведение можно переопределить с помощью следующей процедуры:
-  На узле процессора сообщений отредактируйте или создайте файл переопределения конфигурации 
$APIGEE_ROOT/customer/application/message-processor.properties. Убедитесь, что этот файл доступен для чтения пользователюapigee. -  Добавьте в файл следующую строку:
 Это установит срок действия токена обновления по умолчанию, если он не указан в политике, равным 1 часу. Вы можете изменить это значение по умолчанию в соответствии с потребностями вашего бизнеса.conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
 -  Перезапустите службу обработчика сообщений: 
apigee-service edge-message-processor restart
 - Повторите вышеописанные шаги на всех узлах процессора сообщений один за другим.
 
Лучшие практики в Кассандре
Попробуйте обновить Apigee до последней общедоступной версии. Apigee продолжает выпускать исправления и улучшения, которые улучшают и оптимизируют управление токенами в Apigee. В Apigee токены доступа и обновления хранятся в Cassandra в пространстве ключей «kms». Вы должны убедиться, что для стратегии сжатия этого пространства ключей установлено значениеLeveledCompactionStrategy . Вы должны проверить, что следующие индексы отсутствуют :- kms.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx #f0f0f0 и
 - kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx
 
 Вы также можете уменьшить gc_grace_seconds в таблице kms.oauth_20_access_tokens с 10 дней по умолчанию до более низкого значения (например, 3 дней), чтобы гарантировать, что захоронения, созданные в результате удаления токенов, быстрее удаляются из хранилища данных.