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

Rest API'yi Azure AD B2C kullanıcı akışıyla tümleştirdiğinizde, 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ğırdığında 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, üst bilgide Authorization istemci kimlik bilgilerini (username ve password) içeren bir HTTP isteği 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ğlan veya HTTP temel kimlik doğrulaması ile yapılandırmak için şu adımları izleyin:

  1. Azure Portal oturum açın.
  2. Azure hizmetleri'nin altında Azure AD B2C'yi seçin veya Azure AD B2C'yi arayıp seçin.
  3. API bağlayıcıları'nı seçin ve ardından yapılandırmak istediğiniz API Bağlan 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. Providing basic authentication configuration for an API connector.
  6. Kaydet'i 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ı ve parolayı depolamak için aşağıdaki şifreleme anahtarlarını oluşturun:

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için ü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ı ve ardından Ekle'yi seçin.
  6. Seçenekler için El ile'yi seçin.
  7. Ad alanına RestApiUsername yazın. Ön ek B2C_1A_ otomatik olarak eklenebilir.
  8. Gizli Dizi kutusuna REST API kullanıcı adını girin.
  9. Anahtar kullanımı için Şifreleme'yi seçin.
  10. Oluştur’u seçin.
  11. İlke Anahtarları'nı yeniden seçin.
  12. Ekle'yi seçin.
  13. Seçenekler için El ile'yi seçin.
  14. Ad alanına RestApiPassword yazın. Ön ek B2C_1A_ otomatik olarak eklenebilir.
  15. Gizli Dizi kutusuna REST API parolasını girin.
  16. Anahtar kullanımı için Şifreleme'yi seçin.
  17. Oluştur’u 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'ı olarak Basicdeğiştirin.
  5. AllowInsecureAuthInProduction öğesini olarak falsedeğiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML 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 profili ö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ı, istemci olan 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ı almakla 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.

2. Seçenek: 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. bağımsız değişkenini -Subject uygulamanız ve Azure AD B2C kiracı adı gibi uygun şekilde contosowebapp.contoso.onmicrosoft.comdeğ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ı'nın altında Kişisel>Sertifikalar>yourappname.yourtenant.onmicrosoft.com'ni seçin.

  4. Sertifikayı seçin ve ardından Tüm Görevleri>Dışarı Aktar eylemini>seçin.

  5. İleri>Evet, özel anahtarı>dışarı aktar İleri'yi 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>Son seçeneğini belirleyin.

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ğlan veya yapılandırma

API Bağlan veya istemci sertifikası kimlik doğrulamasıyla yapılandırmak için şu adımları izleyin:

  1. Azure Portal oturum 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ğlan 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. Providing certificate authentication configuration for an API connector.
  7. Kaydet'i 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ğı konusunda anımsatıcı uyarıları ayarlamanız önerilir. Yeni bir sertifika oluşturmanız ve kullanılan sertifikaların süresi dolmak üzereyken yukarıdaki adımları yinelemeniz 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 API bağlayıcısına yeni bir sertifika yüklemek için API bağlayıcıları'nın altındaki API bağlayıcısını seçin ve Yeni sertifika yükle'ye tıklayın. Süresi dolmamış ve başlangıç tarihi geçmiş olan en son karşıya yüklenen sertifika Azure AD B2C tarafından otomatik olarak kullanılır.

Providing a new certificate to an API connector when one already exists.

İstemci sertifikası ilke anahtarı ekleme

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için ü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ı ve ardından Ekle'yi seçin.
  6. Seçenekler kutusunda Karşıya Yükle'yi seçin.
  7. Ad kutusuna RestApiClientCertificate yazın. Ön ek B2C_1A_ otomatik olarak eklenir.
  8. Dosya karşıya 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’u 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'ı olarak ClientCertificatedeğiştirin.
  5. AllowInsecureAuthInProduction öğesini olarak falsedeğiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML parçacığını ekleyin:
    <CryptographicKeys>
       <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
    </CryptographicKeys>
    

Aşağıdaki XML kod parçacığı, HTTP istemci sertifikasıyla yapılandırılmış bir RESTful teknik profili ö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ı OAuth2.0 Authorization Framework: Taşıyıcı Belirteç Kullanımı (RFC 6750) içinde tanımlanır. 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ı belirteci, opak bir dizedir. Bu bir JWT erişim belirteci veya REST API'nin yetkilendirme üst bilgisinde Azure AD B2C'nin göndermesini beklediği herhangi bir dize olabilir. Azure AD B2C aşağıdaki türleri destekler:

  • Taşıyıcı belirteci. Taşıyıcı belirtecini Restful teknik profilinde gönderebilmek için ilkenizin önce taşıyıcı belirtecini alması ve ardından RESTful teknik profilinde kullanması gerekir.
  • Statik taşıyıcı belirteci. REST API'niz uzun vadeli bir erişim belirteci verildiğ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ı kullanma

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

Taşıyıcı belirtecini depolamak için talep tanımlama

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 belirteci daha sonra kullanılacak bir talepte depolanmalıdır.

  1. İlkenizin uzantılar dosyasını 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 alma

Bir erişim belirtecini, bir federasyon kimlik sağlayıcısından, erişim belirteci döndüren bir REST API'yi çağırarak, ROPC akışı kullanarak veya istemci kimlik bilgileri akışını kullanarak çeşitli yollardan biriyle alabilirsiniz. İstemci kimlik bilgileri akışı genellikle bir kullanıcıyla hemen etkileşim kurmadan arka planda çalışması gereken sunucudan sunucuya etkileşimler için kullanılır.

Microsoft Entra erişim belirteci alma

Aşağıdaki örnek, HTTP temel kimlik doğrulaması olarak geçirilen istemci kimlik bilgilerini kullanarak Microsoft Entra belirteci 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 erişim belirteci almak için Microsoft Entra Id ile etkileşim kurabilmesi için bir uygulama kaydetmeniz gerekir. Azure AD B2C, Microsoft Entra platformunu kullanıyor. Uygulamayı Azure AD B2C kiracınızda veya yönettiğiniz herhangi bir Microsoft Entra kiracısında oluşturabilirsiniz. Bir uygulamayı kaydetmek için:

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
  3. Soldaki menüde Microsoft Entra Id'yi seçin. Ya da Tüm hizmetler'i seçip Microsoft Entra Id araması yapın ve seçin.
  4. Uygulama kayıtları'ı ve ardından Yeni kayıt'ı 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. Kayıt'ı seç.
  8. Uygulama (istemci) kimliğini kaydedin.

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

  1. Microsoft Entra Id - Uygulama kayıtları sayfasında, oluşturduğunuz uygulamayı (örneğin Client_Credentials_Auth_app) seçin.
  2. Soldaki menüde, Yönet'in altında Sertifika gizli dizileri'ni &seçin.
  3. Yeni gizli anahtar'ı seçin.
  4. Açıklama kutusuna istemci gizli dizisi için bir açıklama girin. Örneğin, clientsecret1.
  5. Süre Sonu'nun altında gizli dizinin geçerli olduğu süreyi seçin ve ardından Ekle'yi seçin.
  6. Gizli anahtarın Değerini istemci uygulama kodunuzda kullanmak üzere kaydedin. Bu gizli dizi değeri, bu sayfadan ayrıldıktan sonra bir daha 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 oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için ü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ı ve ardından Ekle'yi seçin.
  6. Seçenekler için öğesini seçinManual.
  7. İlke anahtarı SecureRESTClientIdiçin bir Ad girin. Ön ek B2C_1A_ , anahtarınızın adına otomatik olarak eklenir.
  8. Gizli Dizi'de, daha önce kaydettiğiniz istemci kimliğinizi girin.
  9. Anahtar kullanımı için öğesini seçinSignature.
  10. Oluştur’u seçin.
  11. Aşağıdaki ayarlarla başka bir ilke anahtarı oluşturun:
    • Ad: SecureRESTClientSecret.
    • Gizli dizi: Daha önce kaydettiğiniz istemci gizli dizinizi girin

ServiceUrl için kiracınızın adını Microsoft Entra kiracınızın adıyla değiştirin. Kullanılabilir tüm seçenekler için RESTful teknik profil başvurusuna 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>

Dekont

veya scope taleplerini diğer teknik profillerde kullanırsanızgrant_type, yanlış değere karşı bağlamada olası çakışmaları önlemek için de belirtmelerini DefaultValue ve kullanmalarını AlwaysUseDefaultValue="true" öneririz.

TAŞıYıCı belirteci kimlik doğrulamasını kullanmak için REST teknik profilini 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. içeren Id="REST-API-SignUp"düğümü arayın<TechnicalProfile>.

  3. <Metadata> öğesini bulun.

  4. AuthenticationType'ıtaşıyıcı olarak aşağıdaki gibi değiştirin:

    <Item Key="AuthenticationType">Bearer</Item>
    
  5. UseClaimAsBearerTokenöğesini aşağıdaki gibi bearerToken olarak değiştirin veya ekleyin. bearerToken, taşıyıcı belirtecinin alındığını talebin adıdır (çıkış talebi).REST-AcquireAccessToken

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

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

İlkenizi güncelleştirdikten sonra teknik profiliniz aşağıdaki XML koduna benzer olmalıdır:

<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 çağırma

Teknik profili çağırmak REST-GetProfile için öncelikle teknik profili kullanarak REST-AcquireAccessToken bir Microsoft Entra erişim belirteci almanız gerekir. Aşağıdaki örnekte, bir doğrulama teknik profilinden teknik profilin REST-GetProfile nasıl çağrılacakları gösterilmektedir:

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

Aşağıdaki örnekte bir kullanıcı yolculuğundan veya bir alt yolculuktan teknik profili çağırma gösterilmektedir:REST-GetProfile

<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ı kullanma

OAuth2 taşıyıcı belirteç ilkesi anahtarını ekleme

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

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için ü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ı ve ardından Ekle'yi seçin.
  6. Seçenekler için öğesini seçinManual.
  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 Dizi alanına daha önce kaydettiğiniz gizli dizinizi girin.
  9. Anahtar kullanımı için öğesini seçinEncryption.
  10. Oluştur’u seçin.

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

Gerekli anahtarı oluşturduktan sonra, TAŞıYıCı belirtecine başvurmak için REST API teknik profil meta verilerinizi 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'ı olarak Bearerdeğiştirin.
  5. AllowInsecureAuthInProduction öğesini olarak falsedeğiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML 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 profili ö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 profili başvurularını kaydolma teknik profiline ekleyin ve bu da öğesini REST-AcquireAccessTokençağırır. Bu davranış, Azure AD B2C'nin yalnızca başarılı doğrulamadan sonra dizinde hesap oluşturmaya devam ettiğini gösterir.

Ö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'sinesorgu parametresi olarak ekleyerek code 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 uygulamak istemiyorsanız (önerilmez), API bağlayıcı yapılandırmasında 'temel' kimlik doğrulamasını seçebilir ve doğru yetkilendirmeyi uygularken API'nizin göz ardı edebileceği geçici değerler usernamepassword kullanabilirsiniz.

API anahtarı, rest API uç noktasına erişmek için kullanıcının 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ı ilke anahtarları ekleme

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

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için ü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ı ve ardından Ekle'yi seçin.
  6. Seçenekler için El ile'yi seçin.
  7. Ad alanına RestApiKey yazın. Ön ek B2C_1A_ otomatik olarak eklenebilir.
  8. Gizli Dizi kutusuna REST API anahtarını girin.
  9. Anahtar kullanımı için Şifreleme'yi seçin.
  10. Oluştur’u seçin.

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

Gerekli anahtarı oluşturduktan sonra, KIMLIK bilgilerine başvurmak için REST API teknik profil meta verilerinizi 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'ı olarak ApiKeyHeaderdeğiştirin.
  5. AllowInsecureAuthInProduction öğesini olarak falsedeğiştirin.
  6. Kapanış </Metadata> öğesinden hemen sonra aşağıdaki XML 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ıyla azure işlevi çağırmak için yapılandırılmış bir RESTful teknik profili ö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>

Sonraki adımlar

  • Örneklerimizi kullanmaya başlayın.