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.
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.
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.
Yeni kayıt öğesini seçin.
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.
Uygulamayı kaydetmek için Kaydet'i seçin.
Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra için kaydedin.
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.
Kapsam ekle düğmesini seçerek Kapsam ekle sayfasını görüntüleyin:
- Yeni bir Kapsam adı, Yönetici onay görünen adı ve Yönetici onay açıklaması girin.
- Etkin kapsam durumunun seçili olduğundan emin olun.
Kapsamı oluşturmak için Kapsam ekle düğmesini seçin.
API'niz tarafından desteklenen tüm kapsamları eklemek için önceki iki adımı yineleyin.
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ışı
Kullanıcı veya uygulama, Microsoft Entra Id'den arka uç uygulamasına erişim izni veren izinlere sahip bir belirteç alır.
Belirteç, API Management'a API isteklerinin Yetkilendirme üst bilgisine eklenir.
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
Uygulama oluşturma ve OAuth 2.0 uygulama hakkında daha fazla bilgi edinmek için bkz . Microsoft Entra kod örnekleri.
API Management geliştirici portalında OAuth 2.0 kullanıcı yetkilendirmesini yapılandırmanın uçtan uca bir örneği için bkz . OAuth 2.0 kullanıcı yetkilendirmesini yapılandırarak geliştirici portalının test konsolunu yetkilendirme.
Microsoft Entra Id ve OAuth2.0 hakkında daha fazla bilgi edinin.
Arka uç hizmetinizin güvenliğini sağlamanın diğer yolları için bkz . Karşılıklı sertifika kimlik doğrulaması.