Azure Yük Testi ile güvenli uç noktaları yük testi yapmak

Bu makalede, kimlik doğrulaması gerektiren uygulama uç noktalarıyla Azure Yük Testi'ni kullanmayı öğreneceksiniz. Uygulama uygulamanıza bağlı olarak, isteklerin kimliğini doğrulamak için erişim belirteci, kullanıcı kimlik bilgileri, yönetilen kimlik veya istemci sertifikaları kullanabilirsiniz.

Azure Yük Testi, kimliği doğrulanmış uç noktalar için aşağıdaki seçenekleri destekler:

Önkoşullar

Paylaşılan gizli anahtar veya kimlik bilgileri ile kimlik doğrulaması yapın

Bu senaryoda, uygulama uç noktası kimlik doğrulaması için erişim belirteci, API anahtarı veya kullanıcı kimlik bilgileri gibi paylaşılan bir gizli dizi kullanmanızı gerektirir.

Aşağıdaki diyagramda, yük testinizde bir uygulama uç noktasıyla kimlik doğrulaması yapmak için paylaşılan gizli dizilerin veya kimlik bilgilerinin nasıl kullanılacağı gösterilmektedir.

Azure Load Testing ile paylaşılan gizli kimlik doğrulamasının nasıl kullanılacağını gösteren diyagram.

Paylaşılan gizli dizi veya kullanıcı kimlik bilgileriyle kimlik doğrulaması için akış şöyledir:

  1. Gizli diziyi veya kimlik bilgilerini, örneğin Azure Key Vault'ta veya CI/CD gizli dizi deposunda güvenli bir şekilde depolayın.
  2. Yük testi yapılandırmasında gizli bilgiye referans verin.
  3. JMeter tabanlı testler için, GetSecret işleviyle gizli değeri alın. Çekirge tabanlı testler için getenv işleviyle gizli bilgiyi alın. Gizli değeri uygulama isteğine iletin.

Gizliyi güvenli bir şekilde depolayın

Güvenlik bilgilerini test betiğinde depolamaktan ve açıklamaktan kaçınmak için, gizli dizileri Azure Key Vault'ta veya CI/CD gizli dizi deposunda güvenli bir şekilde depolayabilirsiniz.

Güvenlik bilgilerini bir gizli dizi deposuna iki yoldan biriyle ekleyebilirsiniz:

Yük testi yapılandırmasında gizli bilgiye referans verme

Gizli değeri JMeter test betiğinde alabilmeniz için, önce yük testi yapılandırmasında bu gizli değere başvurmanız gerekir.

Azure portalında Azure Key Vault'ta depolanan gizli dizilere başvurabilirsiniz. Azure portalında yük testi gizli dizisi eklemek ve yapılandırmak için:

  1. Azure portalında yük testi kaynağınıza gidin ve yük testlerinin listesini görüntülemek için Testler'i seçin.

  2. Listeden testinizi seçin ve ardından Düzenle'yi seçerek yük testi yapılandırmasını düzenleyin.

    Azure portalında yük testinin nasıl düzenlendiğini gösteren ekran görüntüsü.

  3. Parametreler sekmesinde gizlinin ayrıntılarını girin.

    Veri Alanı Değer
    İsim Gizlinin adı. Test betiğinde gizli değeri almak için bu adı GetSecret işlevine sağlarsınız.
    Değer Azure Key Vault Gizli Dizi tanımlayıcısı ile eşleşir.

    Azure portalında yük testine gizli dizi ekleme işlemini gösteren ekran görüntüsü.

  4. Yük testi yapılandırma değişikliklerini kaydetmek için Uygula'yı seçin.

JMeter betiğinde gizli değeri al ve kullan

Artık özel işlevi kullanarak GetSecret JMeter betiğindeki gizli dizi değerini alabilir ve uygulama isteğine geçirebilirsiniz. Örneğin, bir Authorization istekte OAuth belirteci geçirmek için HTTP üst bilgisi kullanın.

  1. Kullanıcı tanımlı bir değişken oluşturun, bu değişken GetSecret özel işleviyle gizli değeri alacak.

    İşlev, GetSecret değerini Azure Key Vault'tan veya CI/CD gizli anahtar deposundan almayı soyutlar.

    JMeter'da GetSecret işlevini kullanan kullanıcı tanımlı bir değişkenin nasıl ekleneceğini gösteren ekran görüntüsü.

  2. JMeter örnek alıcı bileşenini istekte gizli bilgiyi geçirmek için güncelleyin.

    Örneğin, bir OAuth2 erişim belirteci sağlamak için, HTTP üst bilgisine bir Authorization ekleyerek HTTP Header Manager yapılandırabilirsiniz.

    JMeter'da bir isteğe yetkilendirme üst bilgisi eklemeyi gösteren ekran görüntüsü.

Locust betiğindeki gizli değeri geri alma ve kullanma

Artık Locust betiğindeki gizli değeri alabilir ve uygulama isteğine iletebilirsiniz. Örneğin, bir Authorization istekte OAuth belirteci geçirmek için HTTP üst bilgisi kullanın.

Yük testi yapılandırmasında yapılandırılan gizli dizilere ortam değişkenleri olarak erişilebilir.

  1. Yük testi yapılandırmasında belirtilen gizli İsim'i kullanarak gizli değerle bir değişken başlatın.
my_secret = os.getenv("appToken")
  1. Azure KeyVault'ta depolanan gizli dizi değerini kullanmak için test betiğinizdeki değişkene başvurun.

İstemci sertifikalarıyla kimlik doğrulama

Bu senaryoda, uygulama uç noktası kimlik doğrulaması için bir istemci sertifikası kullanmanızı gerektirir. Azure Yük Testi, Ortak Anahtar Sertifikası Standart #12 (PKCS12) sertifika türünü destekler. Yük testinde birden çok istemci sertifikası da kullanabilirsiniz .

Aşağıdaki diyagramda, yük testinizde bir uygulama uç noktasıyla kimlik doğrulaması yapmak için istemci sertifikasının nasıl kullanılacağı gösterilmektedir.

Azure Yük Testi ile istemci sertifikası kimlik doğrulamasının nasıl kullanılacağını gösteren diyagram.

İstemci sertifikalarıyla kimlik doğrulaması için akış şöyledir:

  1. İstemci sertifikasını Azure Key Vault'ta güvenli bir şekilde depolayın.
  2. Yük testi yapılandırmasında sertifikaya başvurun.
  3. JMeter tabanlı testler için Azure Load Testing, sertifikayı tüm uygulamaya saydam bir şekilde geçirir. Çekirge tabanlı testler için, test betiğinizdeki sertifikayı alabilir ve isteklere geçirebilirsiniz.

İstemci sertifikasını Azure Key Vault'ta depolama

JMeter betiğinin yanı sıra istemci sertifikasını depolamaktan ve açıklamaktan kaçınmak için sertifikayı Azure Key Vault'ta depolarsınız.

Sertifikanızı Azure Key Vault'ta depolamak için Sertifikayı içeri aktarma'daki adımları izleyin.

Önemli

Azure Yük Testi yalnızca PKCS12 sertifikalarını destekler. İstemci sertifikasını PFX dosya biçiminde karşıya yükleyin.

Azure anahtar kasanıza erişim izni verme

Yük testi gizli dizilerini veya sertifikalarını Azure Key Vault'ta depoladığınızda, yük testi kaynağınız anahtar kasasına erişmek için yönetilen bir kimlik kullanır. Yönetilen kimlik yapılandırmasını yaptıktan sonra, yük testi kaynağının yönetilen kimliğine anahtar kasasındaki bu değerleri okuma izni vermeniz gerekir.

Azure Key Vault'unuzdan gizli dizileri veya sertifikaları okumak için Azure yük testi kaynağınıza izin vermek için:

  1. Azure portalında Azure Key Vault kaynağınıza gidin.

    Anahtar kasanız yoksa, bir anahtar kasası oluşturmak için Azure Key Vault Hızlı Başlangıç kılavuzundaki yönergeleri izleyin.

  2. Sol bölmede Erişim İlkeleri'ni ve ardından + Oluştur'u seçin.

  3. İzinler sekmesindeki Gizli izinler altında Al'ı ve ardından İleri'yi seçin.

    Uyarı

    Azure Load Testing, sertifikanın özel anahtarının kullanılabilir olduğundan emin olmak için sertifikaları gizli dizi olarak alır.

  4. Sorumlu sekmesinde, yük testi kaynağı için yönetilen kimliği arayıp seçin ve ardından İleri'yi seçin.

    Sistem tarafından atanan bir yönetilen kimlik kullanıyorsanız, yönetilen kimlik adı Azure yük testi kaynağınızla eşleşir.

  5. İleri'yi yeniden seçin.

    Testiniz çalıştırıldığında, yük testi kaynağınızla ilişkili yönetilen kimlik artık anahtar kasanızdan yük testinizin gizli dizilerini veya sertifikalarını okuyabilir.

Yük testi yapılandırmasında sertifikaya başvurma

İstemci sertifikasını uygulama taleplerine geçirmek için yük testi yapılandırmasında sertifikaya referans vermeniz gerekir.

Azure portalında yük testinize bir istemci sertifikası eklemek için:

  1. Azure portalında yük testi kaynağınıza gidin. Henüz bir yük testimiz yoksa JMeter betiği kullanarak yeni bir yük testi oluşturun.

  2. Sol bölmede Testler'i seçerek yük testlerinin listesini görüntüleyin.

  3. Yük testi yapılandırmasını düzenlemek için listeden testinizi seçin ve ardından Düzenle'yi seçin.

    Azure portalında yük testinin nasıl düzenlendiğini gösteren ekran görüntüsü.

  4. Parametreler sekmesinde sertifikanın ayrıntılarını girin.

    Veri Alanı Değer
    İsim Sertifikanın adı.
    Değer Sertifikanın Azure Key Vault Gizli Dizi tanımlayıcısı ile eşleşir.
  5. Yük testi yapılandırma değişikliklerini kaydetmek için Uygula'yı seçin.

Yük testinizi çalıştırdığınızda, Azure Load Testing istemci sertifikasını Azure Key Vault'tan alır ve her JMeter web isteğine otomatik olarak ekler.

Locust tabanlı testler için sertifikayı alabilir ve test betiğinizde kullanabilirsiniz. Sertifika, yük testi yapılandırmasında ALT_CERTIFICATES_DIR içinde kullanılabilir.

cert_dir = os.getenv("ALT_CERTIFICATES_DIR")

key_path = "client.key.pem"
crt_path = "client.crt.pem"


@events.test_start.add_listener
def on_test_start(environment, **kwargs):
    pfx_path = open(os.path.join(cert_dir, "cert_name_in_keyvault.pfx"))

    # Generate the private key
    subprocess.check_output(
        f'openssl pkcs12 -in "{pfx_path}" -out "{key_path}" -nocerts -nodes -passin pass:',
        shell=True,
        stderr=subprocess.STDOUT,
    )

    # Generate the public certificate
    subprocess.check_output(
        f'openssl pkcs12 -in "{pfx_path}" -out "{crt_path}" -clcerts -nokeys -passin pass:',
        shell=True,
        stderr=subprocess.STDOUT,
    )

Kimlik doğrulamasını yönetilen kimlikle yapın

Bu senaryoda, uygulama uç noktası kimlik doğrulaması için yönetilen kimlik kullanmanızı gerektirir. Hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlikleri kullanabilirsiniz.

Yönetilen kimlik kullanarak kimlik doğrulaması için akış şöyledir:

  1. Hedef uç noktanın tanımlamış olduğu yönetilen kimliği Azure Yük Testi kaynağına atayın.
  2. Yük testi yapılandırmasında yönetilen kimliği seçin.

Yönetilen kimlik kullanarak erişim belirtecini getirmek ve hedef uç noktaya yönelik isteklerin kimliğini doğrulamak için belirteci kullanmak için yük testleri betiğinizi ayarlamanız gerekir. Örneğin, Azure Örnek Meta Veri Hizmeti (IMDS) uç noktasına bir HTTP REST çağrısı aracılığıyla belirteç alabilir ve ardından belirteci HTTP üst bilgisini kullanarak Authorization bir isteğe geçirebilirsiniz.

Yönetilen kimliği atayın

Hedef uç noktaya gerekli erişime sahip yönetilen kimliği Azure Yük Testi kaynağınıza atayın. Testi çalıştırdığınızda Azure Load Testing bu kimliği altyapı örneklerine atar. Bu, yönetilen kimliği kullanarak erişim belirteçlerini getirme isteklerinizin başarılı olmasını sağlar.

Sistem tarafından atanan yönetilen kimliği veya kullanıcı tarafından atanan yönetilen kimliği kullanabilirsiniz.

  • Sistem tarafından atanan yönetilen kimliği kullanmak için öncelikle Azure Yük Testi kaynağınıza sistem tarafından atanan bir yönetilen kimlik atayın . Etkinleştirildikten sonra, hedef uç noktada bu kimlik için gerekli RBAC izinlerini sağlayın.

  • Kullanıcı tarafından atanan yönetilen kimliği kullanmak için önce kullanıcı tarafından atanan kimliği Azure Yük Testi kaynağınıza atayın. Bu kimlik hedef uç noktada gerekli RBAC izinlerine sahip değilse, gerekli izinleri sağlayın. Test betiğiniz kullanıcı tarafından atanan birden çok kimlik kullanıyorsa, kaynağınıza birden çok kimlik atayın ve gerekli RBAC izinlerine sahip olduklarından emin olun.

Yük testi yapılandırmasında yönetilen kimliği seçme

Azure Load Testing'te test oluştururken veya düzenlerken gerekli yönetilen kimliği seçin.

Azure portalında kimlik doğrulaması için yönetilen kimlik seçmek ve yapılandırmak için:

  1. Azure portalında yük testi kaynağınıza gidin ve yük testlerinin listesini görüntülemek için Testler'i seçin.

  2. Listeden testinizi seçin ve ardından Düzenle'yi seçerek yük testi yapılandırmasını düzenleyin.

    Azure portalında yük testinin nasıl düzenlendiğini gösteren ekran görüntüsü.

  3. Test planı sekmesinde, kimlik doğrulama senaryoları için Yönetilen kimliği yapılandırın. Gerektiği gibi 'Sistem tarafından atanan kimlik' veya 'Kullanıcı tarafından atanan kimlik' seçeneğini belirleyin.

    Azure portalındaki bir yük testinde kimlik doğrulaması için yönetilen kimliğin nasıl seçildiğini gösteren ekran görüntüsü.

  4. 'Kullanıcı tarafından atanan kimlik' seçeneğini belirlediyseniz, Kullanıcı tarafından atanan kimlik açılan listesinden gerekli kimlikleri seçin.

  5. Yük testi yapılandırma değişikliklerini kaydetmek için Uygula'yı seçin.

Önemli

Kimlik doğrulaması için yönetilen kimlikler kullandığınızda bölgeler arasında yük dağıtımı etkinleştirilmez.