Antipattern: OAuth jetonları için uzun geçerlilik süresi belirleme

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Apigee Edge, şunlar için OAuth 2.0 çerçevesini sağlar: güvenli API'ler. OAuth2; açık standart, jeton tabanlı kimlik doğrulama ve yetkilendirme şemalarını kullanabilirsiniz. İstemci uygulamalarının kullanıcılar adına API'lere erişmesine olanak tanır. kullanıcılardan kullanıcı adlarını ve şifrelerini ifşa etmelerini istemek.

Apigee Edge, geliştiricilerin aşağıdakilerden herhangi birini uygulayarak erişim oluşturmalarına ve/veya jeton yenilemelerine olanak tanır. şunlardır: istemci kimlik bilgileri şifre implicit ve yetkilendirme kodu - OAuthv2 politikasını kullanarak. İstemci uygulamaları, güvenli API'leri kullanmak için erişim jetonlarını kullanır. Her erişim jetonunun kendi geçerlilik bitiş tarihi vardır zamanıdır (OAuthv2 politikasında ayarlanabilir).

Yenileme jetonları isteğe bağlı olarak, bazı izin türlerini içeren erişim jetonlarıyla birlikte verilir. Yenile jetonlar, orijinal erişim jetonunun süresi dolduktan sonra yeni ve geçerli erişim jetonları almak için kullanılır. iptal edilmiştir. Yenileme jetonlarının süre sonu, OAuthv2 politikasında da ayarlanabilir.

Antipattern

OAuthv2 politikasında erişim jetonu ve/veya yenileme jetonu için uzun bir geçerlilik süresi ayarlama OAuth jetonlarının birikmesine ve Cassandra düğümlerinde disk alanı kullanımının artmasına yol açar.

Aşağıdaki örnek OAuthV2 politikasında, yenileme jetonları için 200 günlük uzun bir geçerlilik süresi gösterilmektedir:

<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>

Yukarıdaki örnekte:

  • Erişim jetonu, 30 dakikalık oldukça daha kısa bir geçerlilik süresi olacak şekilde ayarlanmıştır.
  • Yenileme jetonu, 200 günlük çok uzun bir geçerlilik süresi olacak şekilde ayarlanmıştır.
  • Bu API'ye gelen trafik saniyede 10 istekse 864.000 jeton oluşturabilir bir gün içinde.
  • Yenileme jetonlarının kullanım süresi 200 gün sonra dolduğundan veri deposunda (Cassandra) kalırlar. Bu da sürekli birikim anlamına geliyor.

Etki

  • Veri deposundaki (Cassandra) disk alanı kullanımının önemli ölçüde artmasına yol açar.
  • Private Cloud kullanıcıları için bu durum depolama maliyetlerini artırabilir veya en kötü durumda, disk dolup çalışma zamanı hatalarına veya kesintiye neden olabilir.

En İyi Uygulama

OAuth erişimi için daha düşük bir son geçerlilik tarihi kullanın ve jetonları özelliklerinize göre yenileyin. hızlı şekilde silinmesi ve birikmesi önlenmesi için güvenlik gereksinimlerinden yararlanırsınız.

Yenileme jetonlarının son kullanma zamanını, biraz daha uzun bir süre boyunca geçerli olacak şekilde ayarlama daha iyi performans gösterir. Örneğin, erişim jetonu için 30 dakika, ardından erişim jetonu için 60 dakika yenileme jetonuna dokunun.

Bu sayede:

  • erişim jetonunun süresi doldu.
  • Yenileme jetonlarının kullanım süresi kısa süre sonra dolar ve bu jetonlar zamanında temizlenebilir. birikmesi önlenir.

Daha fazla bilgi