Aracılığıyla paylaş


Azure AD B2C'de API bağlayıcıları için kullanılan güvenli API'ler

Ö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.

Bir REST API'yi Azure AD B2C kullanıcı akışıyla tümleştirirken, REST API uç noktanızı kimlik doğrulamasıyla korumanız gerekir. REST API kimlik doğrulaması, yalnızca Azure AD B2C gibi uygun kimlik bilgilerine sahip hizmetlerin uç noktanıza çağrı yapabilmesini sağlar. Bu makalede REST API'nin güvenliğini sağlama işlemleri incelenir.

Önkoşullar

Kaydolma kullanıcı akışına API bağlayıcısı ekleme kılavuzundaki adımları tamamlayın.

HTTP temel kimlik doğrulaması veya HTTPS istemci sertifikası kimlik doğrulaması kullanarak API uç noktanızı koruyabilirsiniz. Her iki durumda da, Azure AD B2C'nin API uç noktanızı çağırırken kullandığı kimlik bilgilerini sağlarsınız. Ardından API uç noktanız kimlik bilgilerini denetler ve yetkilendirme kararları alır.

HTTP temel kimlik doğrulaması

HTTP temel kimlik doğrulaması RFC 2617'de tanımlanır. Temel kimlik doğrulaması aşağıdaki gibi çalışır:

  • Azure AD B2C, HTTP isteğini istemci kimlik bilgileri username ve password ile Authorization header'ında gönderir.

  • Kimlik bilgileri base64 ile kodlanmış dizesi username:passwordolarak biçimlendirilir.

  • Ardından API'niz, diğer yetkilendirme kararlarını gerçekleştirmek için bu değerleri denetlemekle sorumludur.

API Bağlayıcısını HTTP temel kimlik doğrulamasıyla yapılandırmak için şu adımları izleyin:

  1. Azure portalınaoturum açın.
  2. Azure hizmetleri'nin altında Azure AD B2C'yi seçin veya Azure AD B2C'yi arayın ve seçin.
  3. API bağlayıcıları'nı seçin ve ardından yapılandırmak istediğiniz API Bağlayıcısı'nı seçin.
  4. Kimlik doğrulama türü için Temel'i seçin.
  5. REST API uç noktanızın Kullanıcı Adını ve Parolasını belirtin. API bağlayıcısı için temel kimlik doğrulama yapılandırması sağlama.
  6. Kaydetseçeneğini seçin.

REST API kullanıcı adı ve parola ilkesi anahtarları ekleme

HTTP temel kimlik doğrulaması ile bir REST API teknik profili yapılandırmak için, kullanıcı adını ve parolayı depolamak üzere aşağıdaki şifreleme anahtarlarını oluşturun:

  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. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin ve daha sonra Ekle'yi seçin.
  6. Seçenekler için El ile'yi seçin.
  7. Ad alanına RestApiUsername yazın. Önek B2C_1A_ otomatik olarak eklenebilir.
  8. Gizli kod kutusuna REST API kullanıcı adını girin.
  9. Anahtar kullanımı için Şifreleme'yi seçin.
  10. Oluştur'i seçin.
  11. İlke Anahtarları'nı yeniden seçin.
  12. Add (Ekle) seçeneğini belirleyin.
  13. Seçenekler için El ile'yi seçin.
  14. Ad alanına RestApiPassword yazın. Önek B2C_1A_ otomatik olarak eklenebilir.
  15. Gizli kod kutusuna REST API parolasını girin.
  16. Anahtar kullanımı için Şifreleme'yi seçin.
  17. Oluştur'i seçin.

REST API teknik profilinizi HTTP temel kimlik doğrulamasını kullanacak şekilde yapılandırma

Gerekli anahtarları oluşturduktan sonra, REST API teknik profil meta verilerinizi kimlik bilgilerine başvuracak şekilde yapılandırın.

  1. Çalışma dizininizde uzantı ilkesi dosyasını (TrustFrameworkExtensions.xml) açın.
  2. REST API teknik profilini arayın. Örneğin REST-ValidateProfile, veya REST-GetProfile.
  3. <Metadata> öğesini bulun.
  4. AuthenticationType değerini şu şekilde Basicdeğiştirin: .
  5. AllowInsecureAuthInProductionfalse olarak değiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML kod parçacığını ekleyin:
    <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
    </CryptographicKeys>
    

Aşağıdaki XML kod parçacığı, HTTP temel kimlik doğrulaması ile yapılandırılmış bir RESTful teknik profil örneğidir:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

HTTPS istemci sertifikası kimlik doğrulaması

İstemci sertifikası kimlik doğrulaması, istemcinin Azure AD B2C'nin kimliğini kanıtlamak için istemci sertifikasını sunucuya sağladığı karşılıklı sertifika tabanlı bir kimlik doğrulamasıdır. Bu, SSL el sıkışmasının bir parçası olarak gerçekleşir. API'niz, sertifikaların Azure AD B2C gibi geçerli bir istemciye ait olduğunu doğrulamak ve yetkilendirme kararlarını gerçekleştirmek için sorumludur. İstemci sertifikası bir X.509 dijital sertifikasıdır.

Önemli

Üretim ortamlarında sertifikanın bir sertifika yetkilisi tarafından imzalanması gerekir.

Sertifika oluşturma

Sertifika oluşturmak için, otomatik olarak imzalanan sertifikalar ve imzalı sertifikalar için sertifika veren sağlayıcılarla tümleştirme seçenekleri içeren Azure Key Vault'u kullanabilirsiniz. Önerilen ayarlar şunlardır:

  • Konu: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • İçerik Türü: PKCS #12
  • Yaşam Süresi Eylem Türü: Email all contacts at a given percentage lifetime veya Email all contacts a given number of days before expiry
  • Anahtar Türü: RSA
  • Anahtar Boyutu: 2048
  • Dışarı Aktarılabilir Özel Anahtar: Yes (dosyayı dışarı aktarabilmek .pfx için)

Ardından sertifikayı dışarı aktarabilirsiniz.

Seçenek 2: PowerShell modülünü kullanarak otomatik olarak imzalanan bir sertifika hazırlama

Henüz bir sertifikanız yoksa, otomatik olarak imzalanan bir sertifika kullanabilirsiniz. Otomatik olarak imzalanan sertifika, sertifika yetkilisi (CA) tarafından imzalanmayan ve CA tarafından imzalanan bir sertifikanın güvenlik garantilerini sağlamayan bir güvenlik sertifikasıdır.

Windows'da, sertifika oluşturmak için PowerShell'de New-SelfSignedCertificate cmdlet'ini kullanın.

  1. Otomatik olarak imzalanan bir sertifika oluşturmak için aşağıdaki PowerShell komutunu çalıştırın. -Subject bağımsız değişkenini, uygulamanıza ve Azure AD B2C kiracı adınıza uygun olacak şekilde, contosowebapp.contoso.onmicrosoft.com olarak değiştirin. Ayrıca, sertifika için -NotAfter farklı bir süre sonu belirtmek üzere tarihi ayarlayabilirsiniz.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Windows bilgisayarda Kullanıcı sertifikalarını yönet'i arayın ve seçin

  3. Sertifikalar - Geçerli Kullanıcı altında Kişisel>Sertifikalar>yourappname.yourtenant.onmicrosoft.com seçin.

  4. Sertifikayı seçin ve ardından Seçenekler>Tüm Görevler>Dışa Aktar seçeneğini seçin.

  5. İleri Sonraki>Evet, özel anahtarı dışa aktar>Sonraki seçin.

  6. Dosya Biçimini Dışarı Aktar varsayılanlarını kabul edin ve İleri'yi seçin.

  7. Parolayı Etkinleştir seçeneğini belirleyin, sertifika için bir parola girin ve İleri'yi seçin.

  8. Sertifikanızı kaydedeceğiniz konumu belirtmek için Gözat'ı seçin ve istediğiniz bir dizine gidin.

  9. Farklı Kaydet penceresinde bir Dosya adı girin ve Kaydet'i seçin.

  10. İleri>Bitiş öğesini seçin.

Azure AD B2C'nin .pfx dosya parolasını kabul etmesi için, parolanın AES256-SHA256 yerine Windows Sertifika Deposu Dışarı Aktarma yardımcı programındaki TripleDES-SHA1 seçeneğiyle şifrelenmesi gerekir.

API Bağlayıcınızı yapılandırma

api bağlayıcısını istemci sertifikası kimlik doğrulamasıyla yapılandırmak için şu adımları izleyin:

  1. Azure portalınaoturum açın.
  2. Azure hizmetleri'nin altında Azure AD B2C'yi seçin.
  3. API bağlayıcıları'nı seçin ve ardından yapılandırmak istediğiniz API Bağlayıcısı'nı seçin.
  4. Kimlik doğrulama türü için Sertifika'yı seçin.
  5. Sertifikayı karşıya yükle kutusunda, özel anahtarla sertifikanızın .pfx dosyasını seçin.
  6. Parola Girin kutusuna sertifikanın parolasını yazın. API bağlayıcısı için sertifika kimlik doğrulama yapılandırması sağlama.
  7. Kaydetseçeneğini seçin.

Yetkilendirme kararları gerçekleştirme

API'nizin, API uç noktalarını korumak için gönderilen istemci sertifikalarını temel alan yetkilendirmeyi uygulaması gerekir. Azure Uygulaması Hizmeti ve Azure İşlevleri için API kodunuzdan sertifikayı etkinleştirmeyi ve doğrulamayı öğrenmek için bkz. TLS karşılıklı kimlik doğrulamasını yapılandırma. alternatif olarak, istemci sertifikası özelliklerini istenen değerlerle denetlemek için azure API Management'ı herhangi bir API hizmetinin önünde katman olarak kullanabilirsiniz.

Sertifikaları yenileme

Sertifikanızın süresinin ne zaman dolacağına dair anımsatıcı uyarıları ayarlamanız önerilir. Yeni bir sertifika oluşturmanız ve kullanılmış sertifikaların süresi dolmak üzereyken yukarıdaki adımları tekrarlamanız gerekir. Yeni bir sertifikanın kullanımını "almak" için API hizmetiniz, yeni sertifika dağıtılırken geçici bir süre için eski ve yeni sertifikaları kabul etmeye devam edebilir.

Mevcut bir API bağlayıcısına yeni bir sertifika yüklemek için API bağlayıcıları'nın altında API bağlayıcısını seçin ve Yeni sertifika yükle'ye tıklayın. Süresi dolmayan ve başlangıç tarihi geçen en son karşıya yüklenen sertifika, Azure AD B2C tarafından otomatik olarak kullanılır.

Zaten mevcut olan bir API bağlayıcısına yeni bir sertifika sağlama.

İstemci sertifika ilkesi anahtarı ekle

  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. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin ve daha sonra Ekle'yi seçin.
  6. Seçenekler kutusunda Karşıya Yükle'yi seçin.
  7. Ad kutusuna RestApiClientCertificate yazın. Önek B2C_1A_ otomatik olarak eklenir.
  8. Dosya yükleme kutusunda, sertifikanızın özel anahtarlı .pfx dosyasını seçin.
  9. Parola kutusuna, sertifikanın parolasını yazın.
  10. Oluştur'i seçin.

REST API teknik profilinizi istemci sertifikası kimlik doğrulamasını kullanacak şekilde yapılandırma

Gerekli anahtarı oluşturduktan sonra, REST API teknik profil meta verilerinizi istemci sertifikasına başvuracak şekilde yapılandırın.

  1. Çalışma dizininizde uzantı ilkesi dosyasını (TrustFrameworkExtensions.xml) açın.
  2. REST API teknik profilini arayın. Örneğin REST-ValidateProfile, veya REST-GetProfile.
  3. <Metadata> öğesini bulun.
  4. AuthenticationType değerini şu şekilde ClientCertificatedeğiştirin: .
  5. AllowInsecureAuthInProductionfalse olarak değiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML kod parçacığını ekleyin:
    <CryptographicKeys>
       <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
    </CryptographicKeys>
    

Aşağıdaki XML kod parçacığı, bir HTTP istemci sertifikasıyla yapılandırılmış bir RESTful teknik profil örneğidir:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">ClientCertificate</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

OAuth2 taşıyıcı kimlik doğrulaması

Taşıyıcı belirteç kimlik doğrulaması, OAuth 2.0 Yetkilendirme Çerçevesi'nde tanımlanır: Taşıyıcı Belirteç Kullanımı (RFC 6750). Taşıyıcı belirteç kimlik doğrulamasında Azure AD B2C, yetkilendirme üst bilgisinde belirteç içeren bir HTTP isteği gönderir.

Authorization: Bearer <token>

Taşıyıcı belirteç, opak bir dizedir. Bu bir JWT erişim belirteci veya REST API'nin Azure AD B2C'nin yetkilendirme üst bilgisinde göndermesini beklediği herhangi bir dize olabilir. Azure AD B2C aşağıdaki türleri destekler:

  • Taşıyıcı belirteci. RESTful teknik profilinde taşıyıcı belirteci gönderebilmek için ilkenizin önce taşıyıcı belirteci alması ve ardından RESTful teknik profilinde kullanması gerekir.
  • Statik taşıyıcı belirteci. REST API'niz uzun vadeli bir erişim belirteci verdiğinde bu yaklaşımı kullanın. Statik taşıyıcı belirteci kullanmak için bir ilke anahtarı oluşturun ve RESTful teknik profilinden ilke anahtarınıza bir başvuru yapın.

OAuth2 Taşıyıcısını Kullanma

Aşağıdaki adımlarda, bir taşıyıcı belirteci almak ve bunu REST API çağrılarının Yetkilendirme üst bilgisine geçirmek için istemci kimlik bilgilerinin nasıl kullanılacağı gösterilmektedir.

Taşıyıcı belirteci depolamak için bir talep tanımlayın

Talep, Azure AD B2C ilkesi yürütme sırasında verilerin geçici olarak depolanmasını sağlar. Talep şeması, taleplerinizi bildirdiğiniz yerdir. Erişim belirtecinin daha sonra kullanılmak üzere bir talepte depolanması gerekir.

  1. Politika uzantı dosyanızı açın. Örneğin, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
  2. BuildingBlocks öğesini arayın. Öğesi yoksa ekleyin.
  3. ClaimsSchema öğesini bulun. Öğesi yoksa ekleyin.
  4. ClaimsSchema öğesine aşağıdaki talepleri ekleyin.
<ClaimType Id="bearerToken">
  <DisplayName>Bearer token</DisplayName>
  <DataType>string</DataType>
</ClaimType>
<ClaimType Id="grant_type">
  <DisplayName>Grant type</DisplayName>
  <DataType>string</DataType>
</ClaimType>
<ClaimType Id="scope">
  <DisplayName>scope</DisplayName>
  <DataType>string</DataType>
</ClaimType>

Erişim belirteci edinme

Bir erişim belirteci elde etmek için birkaç yöntem kullanabilirsiniz: bir federe kimlik sağlayıcı, erişim belirteci döndüren bir REST API'yi çağırarak, bir ROPC akışı kullanarak veya istemci kimlik bilgileri akışını kullanarak. İstemci kimlik bilgileri akışı genellikle, bir kullanıcıyla anında etkileşim olmadan arka planda çalışması gereken sunucular arası etkileşimler için kullanılır.

Uyarı

Microsoft, ROPC akışını kullanmamanızı önerir. Bu akış, uygulamada çok yüksek derecede güven gerektirir ve diğer akışlarda bulunmayan riskler taşır. Bu akışı yalnızca diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.

Microsoft Entra erişim belirteci edinme

Aşağıdaki örnek, HTTP temel kimlik doğrulaması olarak geçirilen istemci kimlik bilgilerini kullanarak Microsoft Entra belirteç uç noktasına istekte bulunmak için bir REST API teknik profili kullanır. Daha fazla bilgi için bkz. Microsoft kimlik platformu ve OAuth 2.0 istemci kimlik bilgileri akışı.

Teknik profilin bir erişim belirteci almak için Microsoft Entra Kimliği ile etkileşim kurabilmesi için önce bir uygulama kaydetmeniz gerekir. Azure AD B2C, Microsoft Entra platformuna dayanır. Uygulamayı Azure AD B2C kiracınızda veya yönettiğiniz herhangi bir Microsoft Entra kiracısında oluşturabilirsiniz. Bir başvuruyu kaydetmek için:

  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 menüde Microsoft Entra Kimliği'ni seçin. Alternatif olarak, Tüm hizmetler'i seçin ve Microsoft Entra Kimliği'ni arayın ve seçin.
  4. Uygulama kayıtlarıöğesini seçin, ve ardından Yeni kayıtöğesini seçin.
  5. Uygulama için bir Ad girin. Örneğin, Client_Credentials_Auth_app.
  6. Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki Hesaplar'ı seçin.
  7. Kaydıseçin.
  8. Uygulama (istemci) kimliğini kaydedin.

İstemci kimlik bilgileri akışı için bir uygulama sırrı oluşturmanız gerekir. İstemci parolası, uygulama parolası olarak da bilinir. Uygulamanız, bir erişim belirteci almak için gizliyi kullanır.

  1. Microsoft Entra Kimliği - Uygulama kayıtları sayfasında, oluşturduğunuz uygulamayı seçin (örneğin, Client_Credentials_Auth_app).
  2. Soldaki menüde, Yönetaltında Sertifikalar & gizli anahtarlarseçin.
  3. Yeni istemci gizli anahtarını seçin.
  4. Açıklama kutusuna istemci sırrı için bir açıklama girin. Örneğin, clientsecret1.
  5. Süre Sonu altında, gizli anahtarın geçerli olacağı süreyi seçin ve ardından Ekle'yi seçin.
  6. Gizli anahtarın Değerini istemci uygulama kodunuzda kullanmak üzere kaydedin. Bu sayfadan ayrıldıktan sonra bu gizli anahtar değeri hiçbir zaman görüntülenmez. Bu değeri uygulamanızın kodunda uygulama gizli dizisi olarak kullanırsınız.

Azure AD B2C ilke anahtarları oluşturma

Daha önce Azure AD B2C kiracınızda kaydettiğiniz istemci kimliğini ve istemci gizli anahtarı değerini depolamanız gerekir.

  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. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin, sonra Ekle'yi seçin.
  6. Seçenekler için Manual öğesini seçin.
  7. İlke anahtarı için bir Ad girin, SecureRESTClientId. Ön ek B2C_1A_ , anahtarınızın adına otomatik olarak eklenir.
  8. Gizli alanına, daha önce kaydettiğiniz istemci kimliğinizi girin.
  9. Anahtar kullanımı için Signature seçin.
  10. Oluştur'i seçin.
  11. Aşağıdaki ayarlarla başka bir ilke anahtarı oluşturun:
    • Adı: SecureRESTClientSecret.
    • Gizli Anahtar: Daha önce kaydettiğiniz istemci gizli anahtarınızı girin

ServiceUrl için your-tenant-name değerini Microsoft Entra kiracınızın adıyla değiştirin. Mevcut tüm seçenekler için RESTful teknik profil referansına bakın.

<TechnicalProfile Id="REST-AcquireAccessToken">
  <DisplayName></DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ServiceUrl">https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token</Item>
    <Item Key="AuthenticationType">Basic</Item>
     <Item Key="SendClaimsIn">Form</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_SecureRESTClientId" />
    <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_SecureRESTClientSecret" />
  </CryptographicKeys>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="client_credentials" AlwaysUseDefaultValue="true" />
    <InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" />
  </OutputClaims>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Uyarı

Eğer grant_type veya scope taleplerini başka teknik profillerde kullanıyorsanız, yanlış değere karşı bağlamada olası çakışmaları önlemek için DefaultValue belirtmenizi ve AlwaysUseDefaultValue="true" kullanmanızı öneririz.

REST teknik profilini taşıyıcı belirteç kimlik doğrulamasını kullanacak şekilde değiştirme

Özel ilkenizde taşıyıcı belirteç kimlik doğrulamasını desteklemek için, aşağıdaki adımları kullanarak REST API teknik profilini değiştirin:

  1. Çalışma dizininizde TrustFrameworkExtensions.xml uzantı ilkesi dosyasını açın.

  2. <TechnicalProfile> öğesini Id="REST-API-SignUp"içeren düğümü arayın.

  3. <Metadata> öğesini bulun.

  4. AuthenticationType'ı aşağıdaki gibi Bearer olarak değiştirin:

    <Item Key="AuthenticationType">Bearer</Item>
    
  5. UseClaimAsBearerToken'ı aşağıda gösterildiği şekilde bearerToken olarak değiştirin veya ekleyin. bearerToken, taşıyıcı belirtecin alındığı beyanın adıdır (REST-AcquireAccessToken'den gelen çıktının beyanı).

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Önceki adımdaki talebi giriş talebi olarak ekleyin:

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

İlkenizi güncelleştirdikten sonra, teknik profiliniz aşağıdaki XML koduna benzer şekilde görünmelidir:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Bearer</Item>
        <Item Key="UseClaimAsBearerToken">bearerToken</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="bearerToken"/>
      </InputClaims>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

REST teknik profilini arayın

REST-GetProfile teknik profilini çağırmak için önce REST-AcquireAccessToken teknik profilini kullanarak bir Microsoft Entra erişim belirteci edinmeniz gerekir. Aşağıdaki örnek, bir REST-GetProfile teknik profilin nasıl çağrılacağını gösterir.

<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
  <ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>

Aşağıdaki örnekte, teknik profilin REST-GetProfile bir kullanıcı yolculuğundan veya alt yolculuktan nasıl çağrılacağı gösterilmektedir:

<OrchestrationSteps>
  <OrchestrationStep Order="2" Type="ClaimsExchange">
    <ClaimsExchanges>
      <ClaimsExchange Id="REST-AcquireAccessTokens" TechnicalProfileReferenceId="REST-AcquireAccessToken" />
    </ClaimsExchanges>
  </OrchestrationStep>

  <OrchestrationStep Order="3" Type="ClaimsExchange">
    <ClaimsExchanges>
      <ClaimsExchange Id="REST-GetProfile" TechnicalProfileReferenceId="REST-GetProfile" />
    </ClaimsExchanges>
  </OrchestrationStep>
</OrchestrationSteps>

Statik OAuth2 taşıyıcısı kullanma

OAuth2 taşıyıcı belirteci politika anahtarını ekleme

OAuth2 taşıyıcı belirteciyle bir REST API teknik profili yapılandırmak için REST API sahibinden bir erişim belirteci alın. Ardından, taşıyıcı belirteci depolamak için aşağıdaki şifreleme anahtarını oluşturun.

  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. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin ve daha sonra Ekle'yi seçin.
  6. Seçenekler için Manual öğesini seçin.
  7. İlke anahtarı için bir Ad girin. Örneğin, RestApiBearerToken. Ön ek B2C_1A_ , anahtarınızın adına otomatik olarak eklenir.
  8. Gizli alanına daha önce kaydettiğiniz istemci gizli anahtarını girin.
  9. Anahtar kullanımı için Encryption seçin.
  10. Oluştur'i seçin.

REST API teknik profilinizi taşıyıcı belirteç ilke anahtarını kullanacak şekilde yapılandırma

Gerekli anahtarı oluşturduktan sonra, REST API teknik profil meta verilerinizi taşıyıcı belirtecine başvuracak şekilde yapılandırın.

  1. Çalışma dizininizde uzantı ilkesi dosyasını (TrustFrameworkExtensions.xml) açın.
  2. REST API teknik profilini arayın. Örneğin REST-ValidateProfile, veya REST-GetProfile.
  3. <Metadata> öğesini bulun.
  4. AuthenticationType değerini şu şekilde Bearerdeğiştirin: .
  5. AllowInsecureAuthInProductionfalse olarak değiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML kod parçacığını ekleyin:
    <CryptographicKeys>
       <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
    </CryptographicKeys>
    

Aşağıdaki XML kod parçacığı, taşıyıcı belirteç kimlik doğrulaması ile yapılandırılmış bir RESTful teknik profil örneğidir:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Bearer</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Doğrulama teknik profil referansını, REST-AcquireAccessToken'yi çağıran kaydolma teknik profiline ekleyin. Bu davranış, Azure AD B2C'nin yalnızca başarılı doğrulama işleminden sonra dizinde hesabı oluşturmaya devam ettiği anlamına gelir.

Örneğin:

```XML
<ValidationTechnicalProfiles>
   ....
   <ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
   ....
</ValidationTechnicalProfiles>

API anahtarı kimlik doğrulaması

Bazı hizmetler, çağıranın HTTP üst bilgisi veya HTTP sorgu parametresi olarak benzersiz bir anahtar eklemesini gerektirerek geliştirme sırasında HTTP uç noktalarınıza erişimi karartmak için bir "API anahtarı" mekanizması kullanır. Azure İşlevleri için api bağlayıcınızın Uç Nokta URL'sinecodesorgu parametresi olarak ekleyerek bunu gerçekleştirebilirsiniz. Örneğin, https://contoso.azurewebsites.net/api/endpoint?code=0123456789).

Bu üretimde tek başına kullanılması gereken bir mekanizma değildir. Bu nedenle, temel veya sertifika kimlik doğrulaması için yapılandırma her zaman gereklidir. Geliştirme amacıyla herhangi bir kimlik doğrulama yöntemi (önerilmez) uygulamak istemiyorsanız, API bağlayıcısı yapılandırmasında 'temel' kimlik doğrulamasını seçebilir ve uygun yetkilendirmeyi uygularken API'nizin göz ardı edebileceği geçici değerler usernamepassword kullanabilirsiniz.

API anahtarı, bir kullanıcının REST API uç noktasına erişmek için kimliğini doğrulamak için kullanılan benzersiz bir tanımlayıcıdır. Anahtar, özel bir HTTP üst bilgisinde gönderilir. Örneğin, Azure İşlevleri HTTP tetikleyicisi , istekte bulunanı x-functions-key tanımlamak için HTTP üst bilgisini kullanır.

API anahtar politikası için anahtarları ekle

API anahtarı kimlik doğrulamasına sahip bir REST API teknik profili yapılandırmak için, API anahtarını depolamak üzere aşağıdaki şifreleme anahtarını oluşturun:

  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. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin ve daha sonra Ekle'yi seçin.
  6. Seçenekler için El ile'yi seçin.
  7. Ad alanına RestApiKey yazın. Önek B2C_1A_ otomatik olarak eklenebilir.
  8. Gizli kod kutusuna REST API anahtarını girin.
  9. Anahtar kullanımı için Şifreleme'yi seçin.
  10. Oluştur'i seçin.

API anahtarı kimlik doğrulamasını kullanmak için REST API teknik profilinizi yapılandırma

Gerekli anahtarı oluşturduktan sonra, REST API teknik profil meta verilerinizi kimlik bilgilerine başvuracak şekilde yapılandırın.

  1. Çalışma dizininizde uzantı ilkesi dosyasını (TrustFrameworkExtensions.xml) açın.
  2. REST API teknik profilini arayın. Örneğin REST-ValidateProfile, veya REST-GetProfile.
  3. <Metadata> öğesini bulun.
  4. AuthenticationType değerini şu şekilde ApiKeyHeaderdeğiştirin: .
  5. AllowInsecureAuthInProductionfalse olarak değiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML kod parçacığını ekleyin:
    <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
    </CryptographicKeys>
    

Şifreleme anahtarının kimliği , HTTP üst bilgisini tanımlar. Bu örnekte, API anahtarı x-functions-key olarak gönderilir.

Aşağıdaki XML kod parçacığı, API anahtarı kimlik doğrulamasına sahip bir Azure İşlevi'ni çağırmak için yapılandırılmış bir RESTful teknik profil örneğidir:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">ApiKeyHeader</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>