API’nizi dönüştürme ve korumaTransform and protect your API

Öğreticide, özel bir arka uç bilgisini açığa çıkarmaması için API’nizin nasıl dönüştürüleceği gösterilmektedir.The tutorial shows how to transform your API so it does not reveal a private backend info. Örneğin, arka uçta çalıştırılan teknoloji yığını hakkındaki bilgileri gizlemek isteyebilirsiniz.For example, you might want to hide the info about technology stack that is running on the backend. API’lerin HTTP yanıt gövdesinde görüntülenen özgün URL’leri gizlemek ve bunları APIM ağ geçidine yeniden yönlendirmek isteyebilirsiniz.You might also want to hide original URLs that appear in the body of API's HTTP response and instead redirect them to the APIM gateway.

Bu öğreticide size Azure API Yönetimi ile hız sınırı yapılandırarak arka uç API’niz için koruma eklemenin ne kadar kolay olduğu gösterilmektedir.This tutorial also shows you how easy it is to add protection for your backend API by configuring rate limit with Azure API Management. Örneğin, geliştiriciler tarafından aşırı kullanılmaması için API çağrısı sayısını sınırlamak isteyebilirsiniz.For example, you may want to limit a number of calls the API is called so it is not overused by developers. Daha fazla bilgi için bkz. API Yönetimi ilkeleriFor more information, see API Management policies

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:In this tutorial, you learn how to:

  • Yanıt üst bilgilerini gizlemek için API’yi dönüştürmeTransform an API to strip response headers
  • API yanıt gövdesindeki özgün URL’leri, APIM ağ geçidi URL’leri ile değiştirmeReplace original URLs in the body of the API response with APIM gateway URLs
  • Hız sınırı ilkesi ekleyerek (azaltma) bir API’yi korumaProtect an API by adding rate limit policy (throttling)
  • Dönüştürmeleri test etmeTest the transformations

İlkeler

ÖnkoşullarPrerequisites

API Management örneğinize gidinGo to your API Management instance

API Management örneğine gitme

  1. Azure Portal oturum açın.Sign in to the Azure portal.

  2. Tüm Hizmetler’i seçin.Select All services.

  3. Arama kutusuna api management yazın.In the search box, enter api management.

  4. Arama sonuçlarından API Management hizmetlerini seçin.In the search results, select API Management services.

  5. API Management hizmet örneğinizi seçin.Select your API Management service instance.

İpucu

API Management’ı Azure portaldaki sık kullanılanlarınıza eklemek için yıldızı seçin.To add API Management to your favorites in the Azure portal, select the star.

API Management simgesi (The API Management icon (API Management simgesi) artık portalın sol tarafındaki menüde görünüyor.) now appears in the left menu in the portal.

Yanıt üst bilgilerini gizlemek için API’yi dönüştürmeTransform an API to strip response headers

Bu bölümde, kullanıcılarınıza göstermek istemediğiniz HTTP üst bilgilerinin nasıl gizleneceği gösterilmektedir.This section shows how to hide the HTTP headers that you do not want to show to your users. Bu örnekte, aşağıdaki üst bilgiler HTTP yanıtında silinir:In this example, the following headers get deleted in the HTTP response:

  • X-Destekleyen:X-Powered-By
  • X-AspNet-SürümüX-AspNet-Version

Özgün yanıtı test etmeTest the original response

Özgün yanıtı görmek için:To see the original response:

  1. APIM hizmet örneğinizde API'ler’i (API YÖNETİMİ altında) seçin.In your APIM service instance, select APIs (under API MANAGEMENT).
  2. API listenizden Tanıtım Konferansı API’sine tıklayın.Click Demo Conference API from your API list.
  3. Ekranın üst kısmındaki Test sekmesine tıklayın.Click the Test tab, on the top of the screen.
  4. GetSpeakers işlemini seçin.Select the GetSpeakers operation.
  5. Ekranın alt kısmındaki Gönder düğmesine basın.Press the Send button, at the bottom of the screen.

Özgün yanıt şu şekilde görünmelidir:The original response should look like this:

İlkeler

Dönüştürme ilkesi ayarlamaSet the transformation policy

Giden ilkesini ayarlama

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Ekranın üst kısmında Tasarım sekmesini seçin.On the top of the screen, select Design tab.

  3. Tüm işlemler’i seçin.Select All operations.

  4. Giden işleme bölümünde </> simgesine tıklayın.In the Outbound processing section, click the </> icon.

  5. İmleci <giden> öğesinin içine konumlandırın.Position the cursor inside the <outbound> element.

  6. Sağ pencerede Dönüştürme ilkeleri bölümünde + HTTP üst bilgisini ayarla seçeneğine iki defa tıklayın (iki ilke kod parçacığı eklemek için).In the right window, under Transformation policies, click + Set HTTP header twice (to insert two policy snippets).

    İlkeler

  7. Değişiklik, <giden > kod şuna benzer:Modify your <outbound> code to look like this:

    <set-header name="X-Powered-By" exists-action="delete" />
    <set-header name="X-AspNet-Version" exists-action="delete" />
    

    İlkeler

  8. Kaydet düğmesine tıklayın.Click the Save button.

API yanıt gövdesindeki özgün URL’leri, APIM ağ geçidi URL’leri ile değiştirmeReplace original URLs in the body of the API response with APIM gateway URLs

Bu bölümde, API’lerin HTTP yanıt gövdesinde görüntülenen özgün URL’lerin nasıl gizleneceği ve bunların APIM ağ geçidine nasıl yeniden yönlendirileceği gösterilmektedir.This section shows how to hide original URLs that appear in the body of API's HTTP response and instead redirect them to the APIM gateway.

Özgün yanıtı test etmeTest the original response

Özgün yanıtı görmek için:To see the original response:

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Ekranın üst kısmındaki Test sekmesine tıklayın.Click the Test tab, on the top of the screen.

  3. GetSpeakers işlemini seçin.Select the GetSpeakers operation.

  4. Ekranın alt kısmındaki Gönder düğmesine basın.Press the Send button, at the bottom of the screen.

    Gördüğünüz gibi özgün yanıt şuna benzer:As you can see the original response looks like this:

    İlkeler

Dönüştürme ilkesi ayarlamaSet the transformation policy

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Tüm işlemler’i seçin.Select All operations.

  3. Ekranın üst kısmında Tasarım sekmesini seçin.On the top of the screen, select Design tab.

  4. Giden işleme bölümünde </> simgesine tıklayın.In the Outbound processing section, click the </> icon.

  5. İmleci <giden> öğesinin içine konumlandırın.Position the cursor inside the <outbound> element.

  6. Sağ pencerede Dönüştürme ilkeleri bölümünde + Gövdedeki dizeyi bul ve değiştir seçeneğine tıklayın.In the right window, under Transformation policies, click + Find and replace string in body.

  7. URL’yi APIM ağ geçidinizle eşleşecek şekilde değiştirmek için find-and-replace kodunuzu (<giden> öğesinde) değiştirin.Modify your find-and-replace code (in the <outbound> element) to replace the URL to match your APIM gateway. Örneğin:For example:

    <find-and-replace from="://conferenceapi.azurewebsites.net" to="://apiphany.azure-api.net/conference"/>
    

Hız sınırı ilkesi ekleyerek (azaltma) bir API’yi korumaProtect an API by adding rate limit policy (throttling)

Bu bölümde, hız sınırları yapılandırılarak arka uç API’niz için nasıl koruma ekleneceği gösterilmektedir.This section shows how to add protection for your backend API by configuring rate limits. Örneğin, geliştiriciler tarafından aşırı kullanılmaması için API çağrısı sayısını sınırlamak isteyebilirsiniz.For example, you may want to limit a number of calls the API is called so it is not overused by developers. Bu örnekte, her bir abonelik kimliği için sınır 15 saniyede 3 çağrıya ayarlanmıştır. 15 saniye sonra geliştirici, API’yi çağırmayı yeniden deneyebilir.In this example, the limit is set to 3 calls per 15 seconds for each subscription Id. After 15 seconds, a developer can retry calling the API.

Gelen ilkesi ayarlama

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Tüm işlemler’i seçin.Select All operations.

  3. Ekranın üst kısmında Tasarım sekmesini seçin.On the top of the screen, select Design tab.

  4. İçinde gelen işlem bölümünde </> simgesi.In the Inbound processing section, click the </> icon.

  5. İmleci <gelen> öğesinin içine konumlandırın.Position the cursor inside the <inbound> element.

  6. Sağ pencerede Erişim kısıtlama ilkeleri bölümünde + Anahtar başına çağrıyı sınırla seçeneğine tıklayın.In the right window, under Access restriction policies, click + Limit call rate per key.

  7. rate-limit-by-key kodunuzu (<gelen> öğesinde) aşağıdaki kodla değiştirin:Modify your rate-limit-by-key code (in the <inbound> element) to the following code:

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Dönüştürmeleri test etmeTest the transformations

Bu noktada kod düzenleyicisinde koda bakarsanız, ilkeleriniz şöyle görünür:At this point if you look at the code in the code editor, your policies look like this:

<policies>
    <inbound>
        <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
        <base />
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <set-header name="X-Powered-By" exists-action="delete" />
        <set-header name="X-AspNet-Version" exists-action="delete" />
        <find-and-replace from="://conferenceapi.azurewebsites.net:443" to="://apiphany.azure-api.net/conference"/>
        <find-and-replace from="://conferenceapi.azurewebsites.net" to="://apiphany.azure-api.net/conference"/>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

Bu bölümün geri kalanında, bu makalede ayarladığınız ilke dönüştürmeleri test edilmektedir.The rest of this section tests policy transformations that you set in this article.

Gizlenmiş yanıt üst bilgilerini test etmeTest the stripped response headers

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Test sekmesini seçin.Select the Test tab.

  3. GetSpeakers işlemine tıklayın.Click the GetSpeakers operation.

  4. Gönder’e basın.Press Send.

    Gördüğünüz gibi üst bilgiler gizlenmiştir:As you can see the headers have been stripped:

    İlkeler

Değiştirilen URL’yi test etmeTest the replaced URL

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Test sekmesini seçin.Select the Test tab.

  3. GetSpeakers işlemine tıklayın.Click the GetSpeakers operation.

  4. Gönder’e basın.Press Send.

    Gördüğünüz gibi URL değiştirilmiştir.As you can see the URL has been replaced.

    İlkeler

Hız sınırını test etme (azaltma)Test the rate limit (throttling)

  1. Tanıtım Konferansı API’si seçeneğini belirleyin.Select Demo Conference API.

  2. Test sekmesini seçin.Select the Test tab.

  3. GetSpeakers işlemine tıklayın.Click the GetSpeakers operation.

  4. Art arda üç defa Gönder düğmesine basın.Press Send three times in a row.

    İsteği 3 defa gönderdikten sonra 429 Çok sayıda istek var yanıtını alırsınız.After sending the request 3 times, you get 429 Too many requests response.

  5. 15 saniye kadar bekleyin ve tekrar Gönder düğmesine basın.Wait 15 seconds or so and press Send again. Bu defa 200 OK yanıtını almanız gerekir.This time you should get a 200 OK response.

    Azaltma

VideoVideo

Sonraki adımlarNext steps

Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:In this tutorial, you learned how to:

  • Yanıt üst bilgilerini gizlemek için API’yi dönüştürmeTransform an API to strip response headers
  • API yanıt gövdesindeki özgün URL’leri, APIM ağ geçidi URL’leri ile değiştirmeReplace original URLs in the body of the API response with APIM gateway URLs
  • Hız sınırı ilkesi ekleyerek (azaltma) bir API’yi korumaProtect an API by adding rate limit policy (throttling)
  • Dönüştürmeleri test etmeTest the transformations

Sonraki öğreticiye ilerleyin:Advance to the next tutorial: