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