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 koruyacak şekilde 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 Management ö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. API'ye erişimi korumak için Microsoft Entra Id'ye bir uygulama (bu makalede arka uç-uygulama olarak adlandırılır) kaydedin.

    API'ye erişmek için kullanıcılar veya uygulamalar, her API isteğiyle bu uygulamaya erişim izni veren geçerli bir OAuth belirteci alır ve sunar.

  2. Gelen her API isteğinde sunulan OAuth belirtecini doğrulamak için API Management'ta validate-jwt ilkesini yapılandırın. 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 sonraki adımlara 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 uç-uygulama gibi uygulamanın kullanıcılarına görüntülenecek anlamlı bir uygulama adı girin.
    • 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 bir 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 kullanmak üzere not alın.

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

Aşağıdaki örnek ilke, ilke bölümüne eklendiğinde <inbound> , 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 bkz . İlkeleri ayarlama veya düzenleme. 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 Management 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.

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

  3. API Management, ilkeyi validate-jwt kullanarak belirteci doğrular.

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

    • Bir isteğe geçerli bir belirteç eşlik ederse, ağ geçidi isteği API'ye iletebilir.

Sonraki adımlar