Aracılığıyla paylaş


Microsoft Entra ID ile OAuth 2.0 yetkilendirmesini kullanarak Azure API Management’da bir API’yi koruma

UYGULANANLAR: Tüm API Management katmanları

Bu makalede, Microsoft Entra ID ile OAuth 2.0 protokolunu kullanarak Azure API Management örneğinizi bir API'yi korumak üzere yapılandırmaya yönelik üst düzey adımları öğreneceksiniz.

API yetkilendirmesine kavramsal bir genel bakış için bkz . API Management'ta API'ler için kimlik doğrulaması ve yetkilendirme.

Önkoşullar

Bu makaledeki adımları takip etmeden önce şunlara sahip olmanız gerekir:

  • API Management örneği
  • API Yönetimi örneği kullanılarak yayımlanan bir API
  • Bir Microsoft Entra kiracısı

Genel bakış

Microsoft Entra Id ile OAuth 2.0 yetkilendirmesini kullanarak API Management'ta bir API'yi korumak için bu adımları izleyin.

  1. Microsoft Entra Id'de bir uygulamayı (bu makalede arka uç-uygulama olarak adlandırılır) kaydedin.

    API'ye erişmek için, kullanıcıların veya uygulamaların her API isteğiyle bu uygulamaya erişim veren geçerli bir OAuth belirteci alması ve sunması gerekir.

  2. API Management'ta validate-jwt ilkesini yapılandırın. Bu ilke, gelen her API isteğinde sunulan OAuth belirtecini doğrular. GEÇERLI istekler API'ye geçirilebilir.

OAuth yetkilendirme akışları ve gerekli OAuth belirteçlerinin nasıl oluşturulacağı hakkındaki ayrıntılar bu makalenin kapsamı dışındadır. Genellikle, API'ye erişim yetkisi veren Microsoft Entra Id'den belirteçleri almak için ayrı bir istemci uygulaması kullanılır. Daha fazla bilgi için ilgili içerik bölümüne bakın.

API'yi temsil etmek için Bir uygulamayı Microsoft Entra Id'ye kaydetme

Önce API'yi temsil eden bir uygulamayı kaydederek Azure portalını kullanarak Bir API'yi Microsoft Entra Id ile koruyun.

Uygulama kaydı hakkında ayrıntılı bilgi için bkz . Hızlı Başlangıç: Web API'sini kullanıma açmak için uygulama yapılandırma.

  1. Azure portalında Uygulama kayıtları arayın ve seçin.

  2. Yeni kayıt öğesini seçin.

  3. Bir uygulamayı kaydet sayfası göründüğünde, uygulamanızın kayıt bilgilerini girin:

    • Ad bölümünde, arka plan uygulaması gibi anlamlı bir uygulama adı girin. Bu ad, uygulamanın kullanıcılarına görüntülenir.
    • Desteklenen hesap türleri bölümünde senaryonuza uygun bir seçenek belirleyin.
  4. Yeniden Yönlendirme URI'sini boş bırakın.

  5. Uygulamayı kaydetmek için Kaydet'i seçin.

  6. Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra için kaydedin.

  7. Yan menünün Yönet bölümünde Api'yi kullanıma sunma'yı seçin ve Uygulama Kimliği URI'sini varsayılan değerle ayarlayın. Arka uç uygulamasına erişim için OAuth 2.0 belirteçlerini almak için ayrı bir istemci uygulaması geliştiriyorsanız, bu değeri daha sonra kullanmak üzere kaydedin.

  8. Kapsam ekle düğmesini seçerek Kapsam ekle sayfasını görüntüleyin:

    1. Yeni Kapsam adı, Yönetici onayı görünen adı ve Yönetici onayı açıklaması girin.
    2. Etkin kapsam durumunun seçili olduğundan emin olun.
  9. Kapsamı oluşturmak için Kapsam ekle düğmesini seçin.

  10. API'niz tarafından desteklenen tüm kapsamları eklemek için önceki iki adımı yineleyin.

  11. Kapsamlar oluşturulduktan sonra, bunları ileride kullanmak üzere not edin.

İstekleri önceden yetkilendirmek için JWT doğrulama ilkesi yapılandırma

tr-TR: Aşağıdaki örnek ilke, <inbound> ilke bölümüne eklendiğinde, Yetkilendirme üst bilgisinde sunulan Microsoft Entra Kimliği'nden alınan erişim belirtecinde, hedef kitle talebi değerini denetler. Belirteç geçerli değilse bir hata iletisi döndürür. Bu ilkeyi senaryonuza uygun bir ilke kapsamında yapılandırın.

  • URL'de openid-config , aad-tenant Microsoft Entra Id'deki kiracı kimliğidir. Bu değeri Azure portalında, örneğin Microsoft Entra kaynağınızın Genel Bakış sayfasında bulabilirsiniz. Gösterilen örnekte tek kiracılı bir Microsoft Entra uygulaması ve v2 yapılandırma uç noktası olduğu varsayılır.
  • değerinin claim değeri, Microsoft Entra Id'ye kaydettiğiniz arka uç uygulamasının istemci kimliğidir.
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
    <openid-config url="https://login.microsoftonline.com/{aad-tenant}/v2.0/.well-known/openid-configuration" />
    <audiences>
        <audience>{audience-value - (ex:api://guid)}</audience>
    </audiences>
    <issuers>
        <issuer>{issuer-value - (ex: https://sts.windows.net/{tenant id}/)}</issuer>
    </issuers>
    <required-claims>
        <claim name="aud">
            <value>{backend-app-client-id}</value>
        </claim>
    </required-claims>
</validate-jwt>

Not

Yukarıdaki openid-config URL, v2 uç noktasına karşılık gelir. v1 openid-config uç noktası için kullanın https://login.microsoftonline.com/{aad-tenant}/.well-known/openid-configuration.

İlkeleri yapılandırma hakkında bilgi için İlkeleri ayarlama veya düzenleme bölümüne bakın. JWT doğrulamalarında daha fazla özelleştirme için validate-jwt başvurusuna bakın. Microsoft Entra hizmeti tarafından sağlanan bir JWT'yi doğrulamak için API Yönetimi ilkeyi validate-azure-ad-token de sağlar.

Yetkilendirme iş akışı

  1. Kullanıcı veya uygulama, Microsoft Entra Id'den arka uç uygulamasına erişim izni veren izinlere sahip bir belirteç alır. v2 uç noktasını kullanıyorsanız, accessTokenAcceptedVersion özelliğinin arka uç uygulamasının ve yapılandırdığınız herhangi bir istemci uygulamasının uygulama bildiriminde 2 olarak ayarlandığından emin olun.

  2. Belirteç, API Management'a API isteklerinin Yetkilendirme üst bilgisine eklenir.

  3. API Management, validate-jwt politikasını kullanarak belirteci doğrular.

    • İsteğin geçerli bir belirteci yoksa API Management bunu engeller.

    • bir isteğin geçerli bir belirteci varsa, ağ geçidi isteği API'ye iletebilir.