Azure AD B2C ile Azure API Management API'lerinin güvenliğini sağlama

Önemli

1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.

Azure API Management API'nize erişimi Azure Active Directory B2C (Azure AD B2C) ile kimlik doğrulaması yapılmış istemcilerle kısıtlamayı öğrenin. Azure API Management'ta erişimi yalnızca geçerli bir Azure AD B2C tarafından verilen erişim belirteci içeren isteklerle kısıtlayan bir gelen ilkesi oluşturmak ve test etmek için bu makaledeki yönergeleri izleyin.

Önkoşullar

Başlamadan önce aşağıdaki kaynaklara sahip olduğunuzdan emin olun:

Azure AD B2C uygulama kimliğini alma

Azure AD B2C ile Azure API Management'ta bir API'nin güvenliğini sağlarken, Azure API Management'ta oluşturduğunuz gelen ilkesi için çeşitli değerlere ihtiyacınız vardır. İlk olarak, Azure AD B2C kiracınızda daha önce oluşturduğunuz bir uygulamanın uygulama kimliğini kaydedin. Önkoşulları karşılamak için oluşturduğunuz uygulamayı kullanıyorsanız webapp1 için uygulama kimliğini kullanın.

Azure AD B2C kiracınıza bir uygulama kaydetmek için yeni, birleşik Uygulama kayıtları deneyimimizi veya eski Uygulamalar deneyimimizi kullanabilirsiniz. Yeni kayıt deneyimi hakkında daha fazla bilgi edinin.

  1. Azure portalınaoturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.
  3. Sol bölmede Azure AD B2C'yi seçin. Alternatif olarak , Tüm hizmetler'i ve ardından Azure AD B2C'yi arayıp seçebilirsiniz.
  4. Uygulama kayıtları'nı ve ardından Sahip olunan uygulamalar sekmesini seçin.
  5. Değeri webapp1 veya daha önce oluşturduğunuz başka bir uygulama için Uygulama (istemci) kimliği sütununa kaydedin.

Belirteç veren uç noktası alma

Ardından, Azure AD B2C kullanıcı akışlarınızdan biri için iyi bilinen yapılandırma URL'sini alın. Ayrıca, Azure API Management'ta desteklemek istediğiniz belirteç veren uç nokta URI'sine de ihtiyacınız vardır.

  1. Azure portalında Azure AD B2C kiracınıza gidin.

  2. Politikalar altındaki Kullanıcı akışları'nı seçin.

  3. Var olan bir ilkeyi (örneğin , B2C_1_signupsignin1) ve ardından Kullanıcı akışını çalıştır'ı seçin.

  4. URL'yi sayfanın üst kısmındaki Kullanıcı akışını çalıştır başlığı altında görüntülenen köprüye kaydedin. Bu URL, kullanıcı akışı için OpenID Connect iyi bilinen bulma uç noktasıdır ve sonraki bölümde Azure API Management'ta gelen ilkesini yapılandırırken kullanacaksınız.

    Azure portalının

  5. OpenID Connect iyi bilinen yapılandırma sayfasına gitmek için köprüyü seçin.

  6. Tarayıcınızda açılan sayfada değeri kaydedin issuer . Örneğin:

    https://<tenant-name>.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/

    Azure API Management'ta API'nizi yapılandırırken sonraki bölümde bu değeri kullanacaksınız.

Bir sonraki bölümde kullanılmak üzere kaydedilmiş iki URL'niz olmalıdır: OpenID Connect iyi bilinen yapılandırma uç noktası URL'si ve veren URI'si. Örneğin:

https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration
https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/

Azure API Management'ta gelen ilkesini yapılandırma

Artık Azure API Management'ta API çağrılarını doğrulayan gelen ilkesini eklemeye hazırsınız. Erişim belirtecinde hedef kitleyi ve vereni doğrulayan bir JSON web belirteci (JWT) doğrulama ilkesi ekleyerek yalnızca geçerli belirteci olan API çağrılarının kabul edilmesini sağlayabilirsiniz.

  1. Azure portalında Azure API Management örneğine gidin.

  2. API’ler seçeneğini belirleyin.

  3. Azure AD B2C ile güvenliğini sağlamak istediğiniz API'yi seçin.

  4. Tasarım sekmesini seçin.

  5. Gelen işleme'nin altında/< öğesini seçerek> ilke kodu düzenleyicisini açın.

  6. Aşağıdaki <validate-jwt> etiketini <inbound> politikasının içine yerleştirin ve ardından aşağıdakileri yapın:

    a. url öğesindeki <openid-config> değerini, politikanızın tanınmış yapılandırma URL'si ile güncelleyin.
    b. <audience> öğesini daha önce B2C kiracınızda oluşturduğunuz uygulamanın uygulama kimliğiyle güncelleştirin (örneğin, webapp1).
    ç. <issuer> öğesini daha önce kaydettiğiniz jeton veren uç noktasıyla güncelleştirin.

    <policies>
        <inbound>
            <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
                <openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" />
                <audiences>
                    <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
                </audiences>
                <issuers>
                    <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
                </issuers>
            </validate-jwt>
            <base />
        </inbound>
        <backend> <base /> </backend>
        <outbound> <base /> </outbound>
        <on-error> <base /> </on-error>
    </policies>
    

Birden çok uygulama ve sağlayıcıyı destekleme

Birkaç uygulama genellikle tek bir REST API ile etkileşim kurar. API'nizin birden çok uygulamaya yönelik belirteçleri kabul edebilmesi için uygulama kimliklerini <audiences> Azure API Management gelen ilkesindeki öğesine ekleyin.

<!-- Accept tokens intended for these recipient applications -->
<audiences>
    <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
    <audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
</audiences>

Benzer şekilde, birden çok belirteç vereni desteklemek için uç nokta URI'lerini Azure API Management gelen ilkesindeki <issuers> öğesine ekleyin.

<!-- Accept tokens from multiple issuers -->
<issuers>
    <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
    <issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
</issuers>

b2clogin.com geçiş

Eski login.microsoftonline.com uç nokta tarafından verilen belirteçleri doğrulayan bir Azure API ManagementM API'niz varsa API'yi ve onu çağıran uygulamaları b2clogin.com tarafından verilen belirteçleri kullanacak şekilde geçirmeniz gerekir.

Aşamalı geçiş gerçekleştirmek için bu genel işlemi izleyebilirsiniz:

  1. Hem b2clogin.com hem de login.microsoftonline.com tarafından verilen belirteçlere destek eklemek için Azure API Management gelen ilkenize düzenleme yapın.
  2. b2clogin.com uç noktasından belirteçleri almak için uygulamalarınızı birer birer güncelleştirin.
  3. Tüm uygulamalarınız b2clogin.com'dan doğru belirteçler aldıktan sonra API'yi login.microsoftonline.com tarafından verilen belirteçlerin desteğini kaldırın.

Aşağıdaki örnek, Azure API Management'in gelen politikası, b2clogin.com ve login.microsoftonline.com tarafından verilen belirteçlerin nasıl kabul edildiğini örneklemektedir. Ayrıca, ilke iki uygulamadan API isteklerini destekler.

<policies>
    <inbound>
        <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
            <openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" />
            <audiences>
                <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
                <audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
            </audiences>
            <issuers>
                <issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
                <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
            </issuers>
        </validate-jwt>
        <base />
    </inbound>
    <backend> <base /> </backend>
    <outbound> <base /> </outbound>
    <on-error> <base /> </on-error>
</policies>

Sonraki Adımlar

Azure API Management ilkeleri hakkında ek bilgi için bkz. Azure API Management ilke başvuru dizini.

OWIN tabanlı web API'leri ve bunların uygulamalarını b2clogin.com'a taşıma hakkında bilgi için bkz. OWIN tabanlı bir web API'sini b2clogin.com'a taşıma.