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

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Apigee Edge, API'leri güvenli hale getirmek için OAuth 2.0 çerçevesini sunar. OAuth2, en popüler açık standartlı, jeton tabanlı kimlik doğrulama ve yetkilendirme şemalarından biridir. Bu API, kullanıcıların kullanıcı adlarını ve şifrelerini belirtmelerine gerek kalmadan istemci uygulamalarının kullanıcılar adına API'lere erişmesini sağlar.

Apigee Edge, geliştiricilerin dört OAuth2 izin türünden (istemci kimlik bilgileri, şifre, dolaylı ve yetkilendirme kodu) herhangi birini OAuthv2 politikasını kullanarak uygulayarak erişim ve/veya jeton yenileme jetonları oluşturmasına olanak tanır. İstemci uygulamaları, güvenli API'leri kullanmak için erişim jetonları kullanır. Her erişim jetonunun kendi geçerlilik süresi vardır. Bu süre OAuthv2 politikasından ayarlanabilir.

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

Antipattern

OAuthv2 politikasında erişim jetonu ve/veya yenileme jetonu için uzun bir süre sonu belirlenmesi, OAuth jetonlarının birikmesine ve Cassandra düğümlerinde disk alanı kullanımının artmasına neden olur.

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 makul ölçüde daha düşük bir geçerlilik bitiş süresiyle ayarlanmıştır.
  • Yenileme jetonu, 200 günlük çok uzun bir geçerlilik süresine sahiptir.
  • Bu API'ye giden trafik saniyede 10 istekse günde 864.000'e kadar jeton oluşturabilir.
  • Yenileme jetonları yalnızca 200 gün sonra sona erdiğinden uzun süre veri deposunda (Cassandra) kalır ve bu sayede sürekli birikmeye yol açarlar.

Etki

  • Veri deposundaki (Cassandra) disk alanı kullanımının önemli ölçüde artmasını sağlar.
  • Private Cloud kullanıcıları için bu durum depolama maliyetlerini artırabilir. En kötü durumda da disk dolu olabilir ve bu da çalışma zamanı hatalarına ya da kesintiye neden olabilir.

En İyi Uygulama

OAuth erişimi ve yenileme jetonları için özel güvenlik gereksinimlerinize göre uygun daha kısa bir süre sonu kullanın. Böylece jetonlar hızlı bir şekilde kalıcı olarak silinir ve birikmesini önler.

Yenileme jetonları için geçerlilik süresini, erişim jetonlarından daha uzun bir süre geçerli olacak şekilde ayarlayın. Örneğin, erişim jetonu için 30 dakika ve daha sonra yenileme jetonu için 60 dakika ayarlarsanız.

Bu sayede:

  • Erişim jetonunun süresi dolduktan sonra yeni erişim ve yenileme jetonları oluşturmak amacıyla yenileme jetonu kullanmak için yeterli zamanınız vardır.
  • Yenileme jetonlarının süresi bir süre sonra dolar ve birikmesini önlemek için zamanında kalıcı olarak silinebilir.

Daha fazla bilgi