API anahtarlarını zorunlu kılarak API'lerin güvenliğini sağlama

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

Neler öğreneceksiniz?

Bu eğitim sayesinde şunları öğreneceksiniz:

  • API anahtarı gerektiren bir API proxy'si oluşturun.
  • Bir API ürünü ekleyin.
  • Bir geliştirici ekleyin ve bir uygulamayı kaydedin.
  • API'nizi API anahtarıyla çağırın.

API'nizi yetkisiz erişime karşı korumak önemlidir. Paydaşların ihtiyaçlarını Bunu API anahtarlarıyla (ortak anahtarlar olarak da bilinir, tüketici anahtarları veya uygulama anahtarları).

Bir uygulama API kullanıyorsanız uygulamanın geçerli bir anahtar sağlaması gerekir. Çalışma zamanında, API Anahtarını Doğrula politikası sağlanan API anahtarının şu özelliklere sahip olup olmadığını kontrol eder:

  • Geçerli
  • İptal edilmemiş
  • İstenen isteği sunan API ürününün API anahtarıyla eşleşir kaynaklar

Anahtar geçerliyse isteğe izin verilir. Anahtar geçersizse isteği yetkilendirme hatasıyla sonuçlanır.

Bu eğiticide, geçerli bir API gerektiren API proxy'si oluşturacaksınız tuşuna basabilirsiniz.

Gerekenler

  • Bir Apigee Edge hesabı. Henüz hesabınız yoksa kaydolabilirsiniz şu adresteki yol tarifiyle: Apigee Edge hesabı oluşturma.
  • API çağrısı yapmak için bir web tarayıcısı.
  • (Ekstra kredi bölümü için gerekli değildir) cURL şurada yüklü: makinenizi komut satırından API çağrıları yapmasına olanak tanır.

API proxy'sini oluşturma

"Sahte hedef" hakkında

Apigee'de barındırılan mocktarget hizmeti basit sonuç verir. dışı verilerdir. API anahtarı veya erişim jetonu gerektirmez. Aslına bakarsanız, bir web tarayıcısında oturum açın. Aşağıdakileri tıklayarak deneyin:

http://mocktarget.apigee.net

Hedef, Hello, Guest! değerini döndürür. Şunu kullanın: /help mevcut diğer API kaynaklarının yardım sayfasını almak için kaynak

  1. sayfasına gidin. https://Apigee.com/edge adresine gidin ve oturum açın.
  2. yan gezinme çubuğunun üst kısmına gidin ve ardından seçin.

    kullanıcı profili menüsünde kuruluş seçin
  3. API'yi görüntülemek için açılış sayfasında API Proxy'leri'ni tıklayın. proxy'ler listesi.

    Edge API'leri Menüsü
  4. + Proxy'yi tıklayın.
    Proxy oluştur düğmesi
  5. Proxy Oluştur sayfasında, Ters proxy (en yaygın) seçeneğini belirleyin.
  6. Proxy Ayrıntıları sayfasında proxy'yi aşağıdaki gibi yapılandırın:
    Bu alanda bunu yap
    Proxy Adı Şunu girin: helloworld_apikey
    Proje Temel Yolu

    Şununla değiştir: /helloapikey

    Proje Temel Yolu, istek sayısı anlamına gelir.

    Not: Apigee'nin API sürümü önerileri için bkz. Web API Design: The Complete (Web API Tasarımı: Eksik) bölümünde sürüm oluşturma Bağlantı e-kitabı.

    Mevcut API

    Şunu girin: http://mocktarget.apigee.net

    Bu, Apigee Edge'in isteğidir.

    Açıklama Şunu girin: hello world protected by API key
  7. İleri'yi tıklayın.
  8. Ortak Politikalar sayfasında Güvenlik: Authorization (Yetkilendirme) bölümünde API Key'i (API Anahtarı) seçin ve Next'i (İleri) tıklayın. Bu API proxy'nize iki politika ekler.
  9. Virtual Hosts (Sanal Ana Makineler) sayfasında default'u (varsayılan) seçin ve güvenli olarak ayarlayın ve ardından İleri'yi tıklayın. Varsayılan'ın seçilmesi http:// ile API'nizi çağırmanızı öneririz. Güvenli'yi seçin. https:// ile API'nizi çağırmanıza olanak tanır.
  10. Summary (Özet) sayfasında test dağıtımının ortamını seçip Oluştur ve dağıt'ı tıklayın.
  11. Yeni API proxy'nizin ve API'nizin etkinleştirildiğini belirten bir onay görürsünüz. ürünün başarıyla oluşturulduğunu ve API proxy'sinin test ortamınızı destekler.
  12. Şuna ilişkin Genel Bakış sayfasını görüntülemek için Proxy'yi düzenle'yi tıklayın: API proxy'si.

Politikaları görüntüle

  1. API proxy düzenleyicisinde Geliştir sekmesini tıklayın. Göreceğiniz API proxy'sinin istek akışına iki politika eklendi:
    • Verify API Key: API çağrısını kontrol ederek, geçerli bir API anahtarı mevcut (sorgu parametresi olarak gönderilir).
    • Query Param apikey'i kaldırma: Aşağıdaki işlemlerin gerçekleştirilmesini sağlayan geçilmemesi için API anahtarı kontrol edildikten sonra kaldırılır gereksiz şekilde ortaya çıkabilir.
  2. Akış görünümündeki API Anahtarını Doğrula politikasını tıklayın ve politikanın XML yapılandırmasını alt kod görünümünde değiştirin. İlgili içeriği oluşturmak için kullanılan <APIKey> öğesi, politikaya sırasında API anahtarını arayın. Varsayılan olarak, anahtarını, HTTP'de apikey adlı bir sorgu parametresi olarak istek:

    <APIKey ref="request.queryparam.apikey" />
    

    apikey adı rastgeledir ve herhangi bir mülk olabilir. ifadesini girin.

API'yi çağırmayı deneyin

Bu adımda, doğrudan hedefe başarılı bir API çağrısı yapacaksınız bir çağrının nasıl çalıştırıldığını görmek için API proxy'sine politikalar tarafından korunuyor.

  1. Başarılı

    Web tarayıcısında aşağıdaki adrese gidin. Bu, API proxy'sinin yönlendirmek üzere yapılandırıldığı hedef hizmettir ancak şimdilik doğrudan bu isteğe ulaşacaksınız:

    http://mocktarget.apigee.net
    

    Şu başarılı yanıtı almanız gerekir: Hello, Guest!

  2. Hata

    Şimdi API proxy'nizi çağırmayı deneyin:

    http://ORG_NAME-test.apigee.net/helloapikey
    

    ORG_NAME yerine Uç düzenleme.

    API Anahtarını Doğrula politikası olmadan, bu çağrı size geri bildirimde bulunun. Ancak bu durumda, şu hata yanıtı:

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
    

    Bu durum, doğru bir şekilde, geçerli bir API anahtarı ( bir sorgu parametresi) kullandığınızdan emin olun.

Sonraki adımlarda bir API ürünü ekleyeceksiniz.

API ürünü ekleyin

Apigee kullanıcı arayüzünü kullanarak bir API ürünü eklemek için:

  1. Yayınla > API Ürünleri.
  2. +API Product'ı (+API Ürünü) tıklayın.
  3. API ürününüzle ilgili Ürün ayrıntıları'nı girin.

    Alan Açıklama
    Ad API ürününün dahili adı. Şunları yapmayın: Adda özel karakterler belirtme.
    Not: API ürünü oluşturulduktan sonra adı düzenleyemez. Örneğin, örnek, helloworld_apikey-Product.
    Görünen ad API ürününün görünen adı. Görünen ad şurada kullanılıyor: istediğiniz zaman düzenleyebilirsiniz. Belirtilmezse Ad değeri kullanılır. Bu alan, Ad değeri; bu sohbetin içeriğini düzenleyebilir veya silebilirsiniz. Ekran adında özel karakterler bulunabilir. Örneğin, helloworld_apikey-Product
    Açıklama API ürününün açıklaması. Örneğin, Test product for tutorial.
    Ortam API ürününün erişim izni vereceği ortamlar. Örneğin, test veya prod.
    Erişim Herkese açık'ı seçin.
    Erişim isteklerini otomatik olarak onayla Bu API için önemli isteklerin otomatik olarak onaylanmasını etkinleştir bir ürün oluşturabilirsiniz.
    Kota Bu eğitim için yoksayın.
    İzin Verilen OAuth Kapsamları Bu eğitim için yoksayın.
  4. API kaynakları bölümünde az önce oluşturduğunuz API proxy'sini seçin oluşturuldu. Örneğin, helloworld_apikey.
  5. Ekle'yi tıklayın.
  6. Yollar bölümünde "/" yolunu ekleyin.
  7. Ekle'yi tıklayın.
  8. Kaydet'i tıklayın.

Sonraki adımlarda, gerekli API anahtarını alacaksınız.

Profilinize bir geliştirici ve uygulama ekleyin kuruluş

Ardından, API'lerinizi kullanın. Bir geliştiricinin API'lerinizi çağıran bir veya daha fazla uygulaması olur, ve her uygulama benzersiz bir API anahtarı alır. Bu sayede API sağlayıcısı olarak siz, API'lerinize erişim üzerinde daha ayrıntılı kontrol ve Uygulamaya göre API trafiği.

Geliştirici oluşturma

Geliştirici oluşturmak için:

  1. Yayınla > Geliştiriciler'i seçin.
  2. + Geliştirici'yi tıklayın.
  3. Yeni Geliştirici penceresine aşağıdakileri girin:

    Bu alanda enter
    Ad Keyser
    Soyadı Soze
    Kullanıcı Adı keyser
    E-posta keyser@example.com
  4. Oluştur'u tıklayın.

Uygulama kaydetme

Bir geliştirici uygulamasını kaydetmek için:

  1. Yayınla > Uygulamalar'a gidin.
  2. + Uygulama'yı tıklayın.
  3. Yeni Uygulama penceresine aşağıdaki bilgileri girin:

    p
    Bu alanda bunu yap
    Ad ve Görünen Ad Şunu girin: keyser_app
    Şirket / Geliştirici Seç: Developer
    Developer Seç: Keyser Soze (keyser@example.com)
    Geri çağırma URL'si ve Notlar Boş bırakın
  4. Credentials (Kimlik Bilgisi) bölümünde, şuradan Hiçbir zaman'ı seçin: Süre sonu menüsü. Bu uygulama için kimlik bilgilerinin süresi hiçbir zaman dolmaz.
  5. Ürünler bölümünün altında Ürün ekle'yi tıklayın.
  6. helloworld_apikey-Product'ı seçin.
  7. Ekle'yi tıklayın.
  8. Uygulama Ayrıntıları'nın üst ve sağ tarafında Oluştur'u tıklayın bölümünü seçin.

API anahtarını alma

API anahtarını almak için:

  1. Uygulamalar sayfasında (Yayınla > Uygulamalar), keyser_app ile değiştirin.
  2. keyser_app sayfasında, Key'in (Anahtar) yanındaki Show (Göster) seçeneğini tıklayın. Credentials (Kimlik Bilgileri) bölümündeki bilgileri girin. Ürün bölümünde anahtarın helloworld_apikey ile ilişkili olduğuna dikkat edin

    , .
  3. Anahtarı seçip kopyalayın. Sonraki adımda bu adı kullanacaksınız.

API'yi bir anahtarla çağırma

Artık bir API anahtarınız var. Şimdi bu anahtarı kullanarak API proxy'sini çağırabilirsiniz. Girin web tarayıcınızda aşağıdaki bağlantıdan öğrenebilirsiniz. Edge kuruluş adınızı girin ORG_NAME için ve API_KEY için API anahtarını aşağıda görebilirsiniz. Sorgu parametresinde fazladan boşluk bulunmadığından emin olun.

http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY

Artık API proxy'sine çağrı yaptığınızda şu yanıtı alırsınız: Hello, Guest!.

Tebrikler! Bir API proxy'si oluşturdunuz ve bunu çağrıya geçerli bir API anahtarının eklenmesini gerektirir.

Genel olarak, API anahtarının sorgu parametresidir. Şunları göz önünde bulundurmalısınız: bunu HTTP üstbilgisine aktarmanızı öneririz.

En iyi uygulama: HTTP üstbilgisindeki anahtarı iletme

Bu adımda proxy'yi, API anahtarını x-apikey adlı başlık.

  1. API proxy'sini düzenleyin. Geliştir > API Proxy'leri > helloworld_apikey ve Develop görünümüne gidin.
  2. API Anahtarını Doğrula politikasını seçin ve politika XML'sini olarak değil, header içinde incelemeniz queryparam:

    <APIKey ref="request.header.x-apikey"/>
    
  3. Değişikliği dağıtmak için API proxy'sini kaydedin.
  4. API anahtarını x-apikey adlı başlık. kuruluş adı.

    curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
    

Değişikliği tam olarak tamamlayabilmek için Sorgu parametresi yerine üstbilgiyi kaldırmaya yönelik Atayan politikası. Örneğin:

<Remove>
<Headers>
    <Header name="x-apikey"/>
</Headers>
</Remove>

İlgili konular

Doğrudan bu eğitimle ilgili olan bazı konular şunlardır:

Biraz daha derine inmek, API anahtarlarıyla API'leri korumak işin sadece bir kısmıdır. Çoğu zaman API koruması, OAuth gibi ek güvenlik önlemleri içerir.

OAuth, bir Özetle, kullanıcı adı ve şifre gibi kimlik bilgilerini (ör. kullanıcı adı ve şifre) erişim jetonlarıdır. Erişim jetonları bir iletinin çevresinde iletilebilen uzun, rastgele dizelerdir ardışık düzende uygulama ile bağlantılı hale getirilmiştir. Erişme jetonların ömürleri genellikle kısadır, bu nedenle sürekli yenileri oluşturulmaktadır.