Tüm Ürünler
Search
Belge Merkezi

Function Compute:Bir HTTP tetikleyicisi için JWT kimlik doğrulamasını yapılandırın

Son Güncelleme:Oct 08, 2026

Function Compute içinde bir HTTP tetikleyicisi için JSON Web Token (JWT) kimlik doğrulamasını yapılandırabilirsiniz. Bu yapılandırma, işlevinize yalnızca geçerli bir JWT'ye sahip istemcilerin erişmesini sağlayarak HTTP hizmetinizin güvenliğini artırır ve yetkisiz erişim ile kötü amaçlı saldırıları önlemeye yardımcı olur.

Arka plan bilgileri

Genel bakış

Function Compute, bir HTTP tetikleyicisi için JWT kimlik doğrulamasını etkinleştirmenize olanak tanır. RFC 7519 standardında tanımlanan JWT, istekleri kimlik doğrulamak için belirteç tabanlı bir yöntemdir. Kullanıcı durumu bilgileri, istemci tarafından sağlanan bir token içinde saklanır; bu da işlevin (sunucunun) bu bilgiyi depolamasına gerek kalmadığı anlamına gelir. Bu durum, JWT'yi sunucusuz mimarilere uygun bir kimlik doğrulama yöntemi haline getirir. Function Compute, bir HTTP tetikleyicisi için yapılandırdığınız genel JSON Web Key Set (JWKS) kullanarak HTTP isteklerinde JWT kimlik doğrulaması gerçekleştirir. Tetikleyicinin yapılandırmasına bağlı olarak Function Compute, claims değerlerini parametre olarak işleve iletebilir. Bu sayede işleviniz, istekleri kimlik doğrulamak yerine iş mantığına odaklanabilir. JWT token kimlik doğrulama süreci ve temelleri hakkında daha fazla bilgi edinmek için JWT tabanlı belirteç kimlik doğrulaması ve JWT'ye Giriş konularına bakın.

JWT kimlik doğrulamasının çalışma şekli

Önceki şekilde, asimetrik şifreleme algoritması kullanan bir Function Compute HTTP tetikleyicisindeki JWT kimlik doğrulama iş akışının sırası gösterilmektedir. Adımlar şu şekildedir:

  1. İstemci, özel bir yetkilendirme hizmetine bir kimlik doğrulama isteği gönderir. Bu istek genellikle son kullanıcının kullanıcı adı ve parolasını içerir.

  2. Özel yetkilendirme hizmeti, kullanıcı adı ve parola gibi istekteki kimlik bilgilerini doğrular. Doğrulama başarılı olduktan sonra özel bir anahtar kullanarak standart bir belirteç oluşturur.

  3. Özel yetkilendirme hizmeti, belirteci içeren bir yanıtı istemciye geri gönderir. İstemcinin bu token değerini yerel olarak önbelleğe alması gerekir.

  4. İstemci, belirteci içeren bir iş isteğini HTTP tetikleyicisine gönderir.

  5. HTTP tetikleyicisi, yapılandırılmış genel anahtarı kullanarak istekteki belirteci doğrular.

  6. Belirteç doğrulandıktan sonra tetikleyici, isteği korunan işleve iletir.

  7. Korunan işlev, iş isteğini işler ve bir yanıt döndürür.

  8. HTTP tetikleyicisi, iş yanıtını istemciye iletir.

Önkoşullar

Bir işlev ve bir HTTP tetikleyicisi oluşturun. Daha fazla bilgi için bkz. İşlev oluşturma ve Tetikleyici oluşturma.

Sınırlamalar

  • JWT'leri oluşturmak ve dağıtmak için herhangi bir yöntemi kullanabilirsiniz. Function Compute, tetikleyici için yapılandırılan genel JWKS kullanarak JWT'leri kimlik doğrular.

  • Function Compute, kid (anahtar kimliği) içermeyen bir JSON Web Key (JWK) destekler.

  • Tetikleyici, bir belirteci istek header alanından, bir Query parametresinden (GET istekleri için), bir form parametresinden (POST istekleri için) veya bir cookie değerinden okuyabilir.

  • claims değerlerini işleve bir header alanı, bir form parametresi (POST istekleri için) veya bir cookie değeri olarak iletebilirsiniz.

  • Function Compute, bir HTTP tetikleyicisi için bir JWKS yapılandırmanıza olanak tanır. Sistem, JWKS içinde token içindeki kid değeriyle eşleşen bir genel JWK arar. Ardından bu genel anahtarı kullanarak token imzasını doğrular. Bir tetikleyici için kullanılan JWKS'te, kid değeri eksik olan veya boş dize olan en fazla bir JWK bulunabilir.

    Function Compute JWT aşağıdaki algoritmaları destekler.


    İmza algoritması


    Alg değeri


    RSASSA-PKCS1-V1_5


    RS256, RS384, RS512


    RSASSA-PSS


    PS256, PS384, PS512


    Eliptik Eğri (ECDSA)


    ES256, ES384, ES512


    HMAC


    HS256, HS384, HS512


    EdDSA


    EdDSA

    Önemli
    • HMAC imza algoritması simetrik şifreleme kullanır ve daha az güvenlidir. Daha güvenli bir asimetrik şifreleme algoritması kullanmanızı öneririz.

    • Asimetrik şifreleme algoritması kullanırken, güvenlik amacıyla JWT'niz yalnızca genel anahtar bilgilerini içermelidir. Özel anahtar bilgilerini dahil etmemenizi öneririz.

    • Belirteç sızıntısını önlemek için isteklerdeki token gibi hassas bilgileri korumak üzere HTTPS kullanmanızı öneririz.

Yordam

1. Adım: JWT kimlik doğrulamasını yapılandırın

  1. Function Compute konsolu üzerinde oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneğini tıklayın.

  2. Üst gezinme çubuğunda bir bölge seçin. Functions sayfasında hedef işlevi tıklayın.

  3. İşlev ayrıntıları sayfasında Trigger sekmesini tıklayın. HTTP tetikleyicisini bulun ve Actions sütunundaki Modify seçeneğini tıklayın.

  4. Tetikleyiciyi Düzenle panelinde aşağıdaki parametreleri yapılandırın ve ardından OK öğesini tıklayın.

    1. Authentication Method için JWT Authentication seçeneğini seçin.

    2. JWKS değerini yapılandırın.

      Bir HTTP tetikleyicisi için JWT kimlik doğrulamasını yapılandırmak için geçerli bir JWKS sağlamalısınız. Kendi JWKS'nizi oluşturabilir veya JSON Web Key Generator gibi çevrimiçi araçları arayarak mkjwk.org gibi bir araç kullanabilirsiniz. PEM formatında bir anahtarınız varsa, bunu JWKS formatına dönüştürmek için jwx gibi bir araç kullanabilirsiniz.

      Bu konuda örnek olarak mkjwk.org kullanılarak bir JWKS oluşturulması ele alınmaktadır. Aşağıdaki şekilde gösterildiği gibi Key Use değerini Signature, Algorithm değerini RS256 ve Show X.509 değerini Yes olarak ayarlayın ve ardından Generate öğesini tıklayın. JWT belirtecini vermek için kodunuzda Özel Anahtarı (şekildeki ①) kullanmanız gerektiğinden bunu güvenli bir şekilde saklayın. Genel Anahtarın (şekildeki ②) içeriğini kopyalayıp konsoldaki JWKS yapılandırmasının keys dizisine yapıştırabilirsiniz.

      image.png

      image

      Aşağıdaki kod bir JWKS yapılandırma örneği sunar.

      {
          "keys": [
              {
                  "alg": "RS256",
                  "e": "AQAB",
                  "kty": "RSA",
                  "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ",
                  "use": "sig"
              }
          ]
      }
    3. JWT Token Configuration bölümünde Token konumunu ve Token adını belirtin.

      Token konumu Header, Cookie, sorgu parametreleri (GET) ve form parametrelerini (POST) destekler. Token konumu Header olarak ayarlandığında Parameter Name ve Remove Prefix değerlerini de belirtmeniz gerekir. Function Compute, belirteci elde ederken Remove Prefix içinde belirtilen ön eki kaldırır.

      image

    4. JWT Claim Conversion bölümünde işlev için parametre aktarım konumunu, orijinal parametre adını ve yeni parametre adını belirtin.

      Claim'leri bir Header, Cookie veya Form parametresine (POST) eşleyebilirsiniz.

      image

    5. İstek eşleştirme modunu ayarlayın.

      • Match All: Tüm HTTP istekleri JWT kimlik doğrulaması gerektirir.

      • Whitelist Mode: Whitelist of Request Paths içinde belirtilen yollar için yapılan HTTP istekleri JWT kimlik doğrulaması gerektirmez. Diğer tüm istekler JWT kimlik doğrulaması gerektirir.

      • Blacklist Mode: Blacklist of Request Paths içinde belirtilen yollar için yapılan HTTP istekleri JWT kimlik doğrulaması gerektirir. Diğer tüm istekler JWT kimlik doğrulaması gerektirmez.

      Whitelist Mode ve Blacklist Mode aşağıdaki iki eşleştirme türünü destekler:

      • Tam eşleşme

        Bir istek yolu, yalnızca yapılandırılan yolla tamamen aynı olduğunda eşleşir. Örneğin, Blacklist of Request Paths değerini /a olarak ayarlarsanız /a yoluna yapılan istekler JWT kimlik doğrulaması gerektirir ancak /a/ yoluna yapılan istekler gerektirmez.

      • Karma eşleşme

        Bir yolda joker karakter () kullanabilirsiniz ancak joker karakter () yolun sonunda olmalıdır. Örneğin, Blacklist of Request Paths değerini /login/* olarak ayarlarsanız /login/ ön ekine sahip /login/a ve /login/b/c/d gibi tüm yollara yapılan istekler JWT kimlik doğrulaması gerektirir.

2. Adım: Yapılandırmayı doğrulayın

Postman gibi bir test aracı kullanarak bir uç nokta, belirteç ve diğer bilgileri sağlayarak HTTP tetikleyicisinin JWT yapılandırmasına göre HTTP hizmetine beklenen şekilde erişebildiğinizi doğrulayın.

  1. Adımda oluşturduğunuz X.509 PEM formatındaki özel anahtarı kullanarak bir JWT belirteci verin. Aşağıdaki adımlar, yerel bir Python betiği kullanarak nasıl belirteç oluşturulacağını göstermektedir.

    1. PyJWT modülünü yükleyin.

      pip install 'PyJWT>=2.0'
    2. Bir JWT belirteci oluşturmak için aşağıdaki örnek Python betiğini yerel olarak çalıştırın.

      import jwt
      import time
      
      private_key = """
      -----BEGIN PRIVATE KEY-----
      <The X.509 PEM-format private key generated in Step 1>
      -----END PRIVATE KEY-----
      """
      
      headers = {
          "alg": "RS256",
          "typ": "JWT"
      }
      
      payload = {
          "sub": "1234567890",
          "name": "John Snow",
          "iat": int(time.time()),   # The time when the token was issued.
          "exp": int(time.time()) + 60 * 60,   # Set the token to be valid for 1 hour.
      }
      
      encoded = jwt.encode(payload=payload, key=private_key.encode(), headers=headers)
      print("Generated token: %s" % encoded)
      
  2. HTTP hizmetine erişilebildiğini doğrulamak için Postman'i kullanın.

    1. İşlev ayrıntıları sayfasının Trigger sekmesinde HTTP tetikleyicisinin genel uç noktasını alın ve Postman'deki URL alanına girin.

    2. Postman'de başlıklardaki belirteç parametresini yapılandırın ve Send öğesini tıklayın. Aşağıdaki tabloda belirteç yapılandırmasına ilişkin bir örnek verilmiştir.


      Parametre


      Değer


      Açıklama


      Anahtar


      Authentication


      JWT Token Configuration bölümünde belirttiğiniz parametre adı.


      Değer


      Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9uIFNub3ciLCJhZG1pbiI6dHJ1ZSwiZXhwIjo0ODI5NTk3NjQxfQ.eRcobbpjAd3OSMxcWbmbicOTLjO2vuLR9F2QZMK4rz1JqfSRHgwQVqNxcfOIO9ckDMNlF_3jtdfCfvXfka-phJZpHmnaQJxmnOA8zA3R4wF4GUQdz5zkt74cK9jLAXpokwrviz2ROehwxTCwa0naRd_N9eFhvTRnP3u7L0xn3ll4iOf8Q4jS0mVLpjyTa5WiBkN5xi9hkFxd__p98Pah_Yf0hVQ2ldGSyTtAMmdM1Bvzad-kdZ_wW0jcctIla9bLnOo-Enr14EsGvziMh_QTZ3HQtJuToSKZ11xkNgaz7an5de6PuF5ISXQzxigpFVIkG765aEDVtEnFkMO0xyPGLg


      JWT Token Configuration bölümünde belirttiğiniz Remove Prefix parametresinin değeri ile JWT belirtecinin birleştirilmiş hali. Örnek değer, Remove Prefix değerinin Bearer olarak ayarlandığını varsayar.

      Önemli

      İstek başlığında bulunan JWT parametresinin ön eki ve boşluğu, JWT Token Configuration bölümünde belirttiğiniz Remove Prefix değeriyle tam olarak eşleşmelidir. Aksi takdirde tetikleyici belirteci ayrıştıramaz ve invalid or expired jwt hatası döndürür.

SSS

Neden "invalid or expired jwt" hatası alıyorum?

Function Compute belirteci aldı ancak doğrulama sırasında reddetti. Olası nedenler şunlardır:

  • Belirtecinizin imzası veya formatı geçersiz.

  • Belirtecinizin süresi doldu. Yeni bir belirteç oluşturun.

  • Belirtecin anahtar kimliği (kid), özel alan adınız için yapılandırılan JWKS ile eşleşmiyor veya eşleşen JWK doğru değil.

Neden "the jwt token is missing" hatası alıyorum?

Function Compute istekte belirteci bulamadı. Belirtecin istekte mevcut olduğunu ve Read Position ile JWT Token Configuration içindeki parametre adının, belirteci gönderdiğiniz konumla tam olarak eşleştiğini kontrol edin. Read Position değeri Header olarak ayarlandıysa başlık değeri, belirteçten önce Remove Prefix değerini ve ardından bir boşluk içermelidir.

JWT kimlik doğrulaması ayrıca faturalandırılır mı?

Hayır. JWT kimlik doğrulamasının ek bir ücreti yoktur. Function Compute, JWT kimlik doğrulamasının etkin olup olmadığından bağımsız olarak işlev çağrı sayısı üzerinden faturalandırma yapar.