API 'nizin güvenliğini sağlama Azure AD B2C bir API Bağlayıcısı kullandı

Bir REST API Azure AD B2C Kullanıcı akışı dahilinde tümleştirilirken, 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ı yapıp yapamamasını sağlar. Bu makale, REST API güvenliğini nasıl güvence altına keşfedecektir.

Önkoşullar

Izlenecek yol: kaydolma Kullanıcı akışı KıLAVUZUNA API Bağlayıcısı ekleme bölümündeki adımları uygulayın.

API uç noktanızı, HTTP temel kimlik doğrulaması veya HTTPS istemci sertifikası kimlik doğrulaması kullanarak koruyabilirsiniz. Her iki durumda da, API uç noktanızı çağırırken Azure AD B2C kullanacağı kimlik bilgilerini sağlarsınız. API uç noktanız daha sonra kimlik bilgilerini denetler ve yetkilendirme kararları gerçekleştirir.

HTTP temel kimlik doğrulaması

HTTP temel kimlik doğrulaması, RFC 2617' de tanımlanmıştır. Temel kimlik doğrulaması aşağıdaki gibi çalışmaktadır: Azure AD B2C, üst bilgiyle istemci kimlik bilgileri (ve) ile bir HTTP isteği gönderir username password Authorization . Kimlik bilgileri Base64 kodlamalı dize olarak biçimlendirilir username:password . Daha sonra API 'niz, diğer yetkilendirme kararlarını gerçekleştirmek için bu değerleri denetmaktan sorumludur.

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

  1. Azure Portal oturum açın.
  2. Azure hizmetleri altında Azure AD B2C seçin veya arayın ve Azure AD B2C 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' yı seçin.
  5. REST API uç noktanızın Kullanıcı adını ve parolasını sağlayın. API Bağlayıcısı için temel kimlik doğrulama yapılandırması sağlama.
  6. Kaydet’i seçin.

REST API Kullanıcı adı ve parola ilkesi anahtarları Ekle

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

  1. Azure Portal’ında oturum açın.
  2. Azure AD B2C kiracınızı içeren dizini kullandığınızdan emin olun. Portal araç çubuğunda dizinler + abonelikler simgesini seçin.
  3. Portal Ayarları | Dizinler + abonelikler sayfasında, Dizin adı listesinde Azure AD B2C dizininizi bulun ve ardından Değiştir' i seçin.
  4. Azure portal sol üst köşesindeki tüm hizmetler ' i seçin ve ardından Azure AD B2C' i arayıp seçin.
  5. Genel Bakış sayfasında kimlik deneyimi çerçevesi' ni seçin.
  6. Ilke anahtarlarını seçin ve ardından Ekle' yi seçin.
  7. Seçenekler Için el ile' yi seçin.
  8. Ad için RestApiUsername yazın. Ön ek B2C_1A_ otomatik olarak eklenebilir.
  9. Gizli kutusuna REST API Kullanıcı adı girin.
  10. Anahtar kullanımı için şifreleme' yi seçin.
  11. Oluştur’u seçin.
  12. Ilke anahtarlarını yeniden seçin.
  13. Add (Ekle) seçeneğini belirleyin.
  14. Seçenekler Için el ile' yi seçin.
  15. Ad için RestApiPassword yazın. Ön ek B2C_1A_ otomatik olarak eklenebilir.
  16. Gizli kutusuna REST API parolayı girin.
  17. Anahtar kullanımı için şifreleme' yi seçin.
  18. Oluştur’u seçin.

REST API teknik profilinizi HTTP temel kimlik doğrulaması 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ı açın (TrustFrameworkExtensions.xml).
  2. REST API teknik profilini arayın. Örneğin REST-ValidateProfile , veya REST-GetProfile .
  3. Öğesini bulun <Metadata> .
  4. AuthenticationType öğesini olarak değiştirin Basic .
  5. Allowınsecureauthınproduction öğesini olarak değiştirin false .
  6. Kapanış öğesinden hemen sonra </Metadata> 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ıyla yapılandırılmış bir RESTAN 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ı, istemci Azure AD B2C istemcinin 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, Azure AD B2C gibi geçerli bir istemciye ait olduğunu doğrulamadan ve yetkilendirme kararları gerçekleştirmekten sorumludur. İstemci sertifikası bir X. 509.952 dijital sertifikasıdır.

Önemli

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

Sertifika oluşturma

Bir sertifika oluşturmak için, imzalanmış sertifikalara yönelik sertifika veren sağlayıcılarıyla otomatik olarak imzalanan sertifikalara ve tümleştirmelere yönelik seçeneklere sahip Azure Key Vaultkullanabilirsiniz. Önerilen ayarlar şunlardır:

  • Konu: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Içerik türü: PKCS #12
  • Yaşam süresi Acton 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ı verebilmek için .pfx )

Daha sonra sertifikayı dışarı aktarabilirsiniz.

2. seçenek: PowerShell modülünü kullanarak kendinden imzalı bir sertifika hazırlama

Henüz bir sertifikanız yoksa, kendinden imzalı bir sertifika kullanabilirsiniz. Otomatik olarak imzalanan sertifika, bir sertifika yetkilisi (CA) tarafından imzalanmamış ve CA tarafından imzalanan bir sertifika için güvenlik garantisi sağlamayan bir güvenlik sertifikasıdır.

Windows, bir 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. -SubjectBağımsız değişkenini uygulamanız için uygun şekilde değiştirin ve gibi kiracı adını Azure AD B2C contosowebapp.contoso.onmicrosoft.com . Ayrıca, -NotAfter sertifika için farklı bir süre sonu belirtmek üzere tarihi de 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ıp seçin

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

  4. Sertifikayı seçin ve sonra > Tüm görevler > dışarı aktar' ı seçin.

  5. İleri > Evet ' i seçin, ardından özel anahtarı dışarı aktarın > .

  6. Dışarı aktarma dosya biçimi için varsayılanları kabul edin ve ardından İleri' yi seçin.

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

  8. Sertifikanızın kaydedileceği konumu belirtmek için, Git ' i seçin ve istediğiniz dizine gidin.

  9. Farklı kaydet penceresinde bir dosya adı girin ve ardından Kaydet' i seçin.

  10. Sonraki>Son seçeneğini belirleyin.

Azure AD B2C. pfx dosya parolasını kabul etmek için parola, AES256-SHA256 aksine, Windows sertifika deposu dışarı aktarma yardımcı programındaki tripledes-SHA1 seçeneğiyle şifrelenmelidir.

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

İstemci sertifikası kimlik doğrulamasıyla bir API bağlayıcısını yapılandırmak için aşağıdaki adımları izleyin:

  1. Azure Portal’ında oturum açın.
  2. Azure hizmetleri 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. Upload sertifikası kutusunda, sertifikanın. pfx dosyasını özel anahtarla seçin.
  6. Parolayı gir kutusuna sertifikanın parolasını yazın. API Bağlayıcısı için sertifika kimlik doğrulaması yapılandırması sağlama.
  7. Kaydet’i seçin.

Yetkilendirme kararlarını gerçekleştirme

API 'nizin, API uç noktalarını korumak için gönderilen istemci sertifikalarına göre yetkilendirmeyi uygulaması gerekir. Azure App Service ve Azure Işlevleri için bkz. API kodınızdan sertifikayı etkinleştirme ve doğrulama hakkında bilgi edinmek için bkz. TLS karşılıklı kimlik doğrulamasını yapılandırma . Diğer bir deyişle, istemci sertifikası özelliklerini istenen değerlere göre denetlemek için Azure API Management HERHANGI bir API hizmetinin önünde bir katman olarak kullanabilirsiniz.

Sertifikaları yenileme

Sertifikanızın kullanım süreleri dolduğunda anımsatıcı uyarılarını ayarlamanız önerilir. Kullanılan sertifikaların kullanım süreleri dolduğunda, yeni bir sertifika oluşturmanız ve yukarıdaki adımları tekrarlamanız gerekir. Yeni bir sertifika 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 apı bağlayıcısına yeni bir sertifika yüklemek için apı bağlayıcıları altında apı bağlayıcısını seçin ve yeni sertifika Upload' ye tıklayın. Süresi dolmayan ve başlangıç tarihi geçti olan en son karşıya yüklenen sertifika Azure AD B2C tarafından otomatik olarak kullanılacak.

Zaten var olan bir API bağlayıcısına yeni bir sertifika sağlanıyor.

İstemci sertifikası ilke anahtarı ekleme

  1. Azure Portal’ında oturum açın.
  2. Azure AD B2C kiracınızı içeren dizini kullandığınızdan emin olun. Portal araç çubuğunda dizinler + abonelikler simgesini seçin.
  3. Portal ayarları sayfasında | Dizinler + abonelikler sayfası, Dizin Azure AD B2C listesinde dizin dizininizi bulun ve değiştir'i seçin.
  4. Üst köşedeki Sol üst köşedeki Tüm hizmetler'i Azure portal seçin ve ardından öğesini Azure AD B2C.
  5. Genel Bakış sayfasında, Identity Experience Framework.
  6. İlke Anahtarları'ı ve ardından Ekle'yi seçin.
  7. Seçenekler kutusunda, seçeneğini Upload.
  8. Ad kutusuna RestApiClientCertificate yazın. Ön ek B2C_1A_ otomatik olarak eklenir.
  9. Dosya karşıya yükleme kutusunda, sertifikanıza özel anahtara sahip .pfx dosyasını seçin.
  10. Parola kutusuna sertifikanın parolasını yazın.
  11. Oluştur’u seçin.

İstemci sertifika REST API kullanmak için istemci teknik profilinizi yapılandırma

Gerekli anahtarı oluşturduk sonra, istemci sertifikasına REST API profil meta verilerini yapılandırabilirsiniz.

  1. Çalışma dizininize uzantı ilkesi dosyasını açın (TrustFrameworkExtensions.xml).
  2. Aşağıdaki teknik REST API arama. Örneğin, REST-ValidateProfile veya REST-GetProfile .
  3. öğesini <Metadata> bulun.
  4. AuthenticationType'i olarak ClientCertificate değiştirme.
  5. AllowInsecureAuthInProduction 'i olarak false değiştirme.
  6. Kapanış öğesinin </Metadata> 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ığı, 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ı

Not

Bu özellik genel önizleme aşamasındadır.

Taşıyıcı belirteç kimlik doğrulaması OAuth2.0 Yetkilendirme Çerçevesi: Taşıyıcı Belirteç Kullanımı (RFC 6750) içinde tanımlanır. Taşıyıcı belirteç kimlik doğrulamasında Azure AD B2C üst bilgisinde belirteci olan 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 yetkilendirme Azure AD B2C göndermesini beklediğiniz herhangi bir dize olabilir. Azure AD B2C aşağıdaki türleri destekler:

  • Taşıyıcı belirteç. Taşıyıcı belirteci Restful teknik profiline göndere almak için ilkenizin önce taşıyıcı belirteci edinmesi ve ardından RESTful teknik profilinde bunu kullanması gerekir.
  • Statik taşıyıcı belirteci. Uzun süreli erişim REST API 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 başvuru oluşturun.

OAuth2 Taşıyıcı kullanma

Aşağıdaki adımlar, bir taşıyıcı belirteci almak ve bu belirteci çağrılarının Yetkilendirme üst bilgisine REST API gösterir.

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

Talep, ilke yürütme sırasında verilerin geçici Azure AD B2C sağlar. Talep şeması, taleplerinizi bildir yerdir. Erişim belirteci daha sonra kullanılacak bir talepte depolanmış olması gerekir.

  1. İlkenizin uzantılar dosyasını açın. Örneğin, SocialAndLocalAccounts/TrustFrameworkExtensions.xml .
  2. BuildingBlocks öğesini ara. Öğe yoksa ekleyin.
  3. ClaimsSchema öğesini bulun. Öğe 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 almak

Erişim belirteci birkaç farklı şekilde edinebilirsiniz: bir federasyon kimlik sağlayıcısından, erişim belirteci döndüren bir REST API çağırarak, roPCakışı kullanarak veya istemci kimlik bilgileri akışını kullanarak. İstemci kimlik bilgileri akışı genellikle bir kullanıcıyla hemen etkileşim olmadan arka planda çalışması gereken sunucudan sunucuya etkileşimler için kullanılır.

Azure AD erişim belirteci almak

Aşağıdaki örnekte, HTTP REST API olarak geçirilen istemci kimlik bilgilerini kullanarak Azure AD belirteci uç noktasına istekte etmek için bir teknik profil kullanılı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 Azure AD ile etkileşim kuramadan önce bir uygulamayı kaydetmeniz gerekir. Azure AD B2C, Azure AD platformuna dayandır. Uygulamayı kendi kiracınız veya Azure AD B2C Azure AD kiracısı içinde oluşturabilirsiniz. Bir uygulamayı kaydetmek için:

  1. Azure Portal oturum açın.
  2. Kiracınız için geçerli olan kiracınızı içeren dizini Azure AD B2C olun. Portal araç çubuğunda Dizinler + abonelikler simgesini seçin.
  3. Portal ayarları sayfasında | Dizinler + abonelikler sayfası, Dizin adı listesinde Azure AD veya Azure AD B2C dizininizi bulun ve ardından Değiştir'i seçin.
  4. Sol menüden Seç'i Azure Active Directory. Veya Tüm hizmetler'i seçin ve öğesini arayarak Azure Active Directory.
  5. Yeni Uygulama kayıtları'yi ve ardından Yeni kayıt'ı seçin.
  6. Uygulama için bir Ad girin. Örneğin, Client_Credentials_Auth_app.
  7. Desteklenen hesap türleri altında Yalnızca bu kuruluş dizininde hesaplar'ı seçin.
  8. Kaydet’i seçin.
  9. Uygulama (istemci) kimliğini kaydedin.

İstemci kimlik bilgileri akışı için bir uygulama gizli kimliği oluşturmanız gerekir. İstemci gizli parolası, uygulama parolası olarak da bilinir. Gizli bilgi, erişim belirteci almak için uygulamanız tarafından kullanılır.

  1. Azure AD - Uygulama kayıtları sayfasında, oluşturduğunuz uygulamayı seçin, örneğin Client_Credentials_Auth_app.
  2. Sol menüde, Yönet'in altında Sertifikalar ve gizli diziler'& seçin.
  3. Yeni istemci gizli gizli'yi seçin.
  4. Açıklama kutusuna gizli istemci için bir açıklama girin. Örneğin, clientsecret1.
  5. Süresi Dolsa altında gizli bilgilerin geçerli olduğu süreyi seçin ve ekle'yi seçin.
  6. Gizli kodun Değer değerini istemci uygulama kodunda kullanmak üzere kaydedin. Bu sayfadan ayrılarak bu gizli değer bir daha asla görüntülenmez. Bu değeri, uygulama kodunda uygulama gizli kodu olarak kullanırsiniz.

İlke Azure AD B2C anahtarları oluşturma

Daha önce Azure AD B2C kiracınıza kaydettiğiniz istemci kimliğini ve gizli Azure AD B2C gerekir.

  1. Azure Portal’ında oturum açın.
  2. Kiracınız için geçerli olan kiracınızı içeren dizini Azure AD B2C olun. Portal araç çubuğunda Dizinler + abonelikler simgesini seçin.
  3. Portal ayarları sayfasında | Dizinler + abonelikler sayfası, Dizin Azure AD B2C listesinde dizin dizininizi bulun ve değiştir'i seçin.
  4. Üst köşedeki Sol üst köşedeki Tüm hizmetler'i Azure portal seçin ve ardından öğesini Azure AD B2C.
  5. Genel Bakış sayfasında, Identity Experience Framework.
  6. İlke Anahtarları'ı ve ardından Ekle'yi seçin.
  7. Seçenekler için'i Manual seçin.
  8. İlke anahtarı olarak bir Ad SecureRESTClientId girin. Ön B2C_1A_ ek, anahtarınıza otomatik olarak eklenir.
  9. Gizli olarak, daha önce kaydettiğiniz istemci kimliğini girin.
  10. Anahtar kullanımı için öğesini Signature seçin.
  11. Oluştur’u seçin.
  12. Aşağıdaki ayarlarla başka bir ilke anahtarı oluşturun:
    • Ad: SecureRESTClientSecret .
    • Gizli: Daha önce kaydettiğiniz istemci gizli bilginizi girin

ServiceUrl için your-tenant-name yerine Azure AD kiracınızı yazın. Kullanılabilir tüm seçenekler için bkz. RESTful teknik profil başvurusu.

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

Not

Veya taleplerini diğer teknik profillerde kullanıyorsanız, bunların yanlış değere yönelik bağlamada olası çakışmaları önlemek için belirtmelerini ve grant_type scope DefaultValue AlwaysUseDefaultValue="true" kullanmalarını öneririz.

TAŞıYıCı belirteç kimlik doğrulamasını kullanmak için REST teknik profilini değiştirme

Özel ilkenize taşıyıcı belirteç kimlik doğrulamasını desteklemek için, REST API profilinde aşağıdakiyle değişiklik yapın:

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

  2. içeren <TechnicalProfile> düğümü Id="REST-API-SignUp" ara.

  3. öğesini <Metadata> bulun.

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

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

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Yukarıda kullanılan talebi giriş talebi olarak ekleyin:

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

Yukarıdaki kod parçacıklarını ekledikten sonra teknik profiliniz aşağıdaki XML koduna benzer şekilde çalışmanız gerekir:

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

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

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

OAuth2 taşıyıcı REST API sahipten bir erişim belirteci alın ve bir REST API oluşturun. Ardından taşıyıcı belirteci depolamak için aşağıdaki şifreleme anahtarını oluşturun.

  1. Azure Portal oturum açın.
  2. Kiracınız için kiracınızı içeren dizini Azure AD B2C olun. Portal araç çubuğunda Dizinler + abonelikler simgesini seçin.
  3. Portal ayarları sayfasında | Dizinler + abonelikler sayfası, dizin Azure AD B2C dizinlerinizi dizin adı listesinde bulun ve ardından Değiştir'i seçin.
  4. Üst köşedeki Sol üst köşedeki Tüm hizmetler'i Azure portal seçin ve ardından Azure AD B2C.
  5. Genel Bakış sayfasında, Identity Experience Framework.
  6. İlke Anahtarları'ı ve ardından Ekle'yi seçin.
  7. Seçenekler için'i Manual seçin.
  8. İlke anahtarı için bir Ad girin. Örneğin, RestApiBearerToken. Ön B2C_1A_ ek, anahtarınıza otomatik olarak eklenir.
  9. Gizli olarak, daha önce kaydettiğiniz istemci gizli gizli kaydınızı girin.
  10. Anahtar kullanımı için öğesini Encryption seçin.
  11. Oluştur’u seçin.

Taşıyıcı REST API ilke anahtarını kullanmak için ağ teknik profilinizi yapılandırma

Gerekli anahtarı oluşturdukktan sonra, taşıyıcı belirtec REST API teknik profil meta verilerini yapılandırabilirsiniz.

  1. Çalışma dizininize uzantı ilkesi dosyasını açın (TrustFrameworkExtensions.xml).
  2. Aşağıdaki teknik REST API arama. Örneğin, REST-ValidateProfile veya REST-GetProfile .
  3. öğesini <Metadata> bulun.
  4. AuthenticationType'i olarak Bearer değiştirme.
  5. AllowInsecureAuthInProduction 'i olarak false değiştirme.
  6. Kapanış öğesinin </Metadata> 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ı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">Bearer</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

API anahtarı kimlik doğrulaması

Bazı hizmetler, çağıranın HTTP üst bilgisi veya HTTP sorgu parametresi olarak benzersiz bir anahtar içermesini gerektirerek geliştirme sırasında HTTP uç noktalarınıza erişimi karartacak bir "API anahtarı" mekanizması kullanır. Daha Azure İşlevleriapi bağlayıcının Uç Nokta URL'sinde sorgu parametresi olarak code dahil edin. Örneğin, https://contoso.azurewebsites.net/api/endpoint ?code=0123456789 ).

Bu, yalnızca üretimde kullanılacak bir mekanizma değildir. Bu nedenle, temel veya sertifika kimlik doğrulaması yapılandırması her zaman gereklidir. Geliştirme amacıyla herhangi bir kimlik doğrulama yöntemi uygulamak (önerilmez) yoksa, API bağlayıcısı yapılandırmasında 'temel' kimlik doğrulamasını seçin ve için geçici değerler kullanabilirsiniz ve uygun yetkilendirmeyi yaparken API'niz göz ardı username password eder.

API anahtarı, bir kullanıcının bir uç noktasına erişmek için kimlik doğrulaması yapmak REST API tanımlayıcıdır. Anahtar özel bir HTTP üst bilgisinde gönderilir. Örneğin, http Azure İşlevleri, istekte bulunduranı x-functions-key tanımlamak için HTTP üst bilgilerini kullanır.

API anahtar ilkesi anahtarları ekleme

API anahtarı kimlik REST API bir teknik profil yapılandırmak için, API anahtarını depolamak için aşağıdaki şifreleme anahtarını oluşturun:

  1. Azure Portal’ında oturum açın.
  2. Kiracınız için kiracınızı içeren dizini Azure AD B2C olun. Portal araç çubuğunda Dizinler + abonelikler simgesini seçin.
  3. Portal ayarları sayfasında | Dizinler + abonelikler sayfası, dizin Azure AD B2C dizinlerinizi dizin adı listesinde bulun ve ardından Değiştir'i seçin.
  4. Üst köşedeki Sol üst köşedeki Tüm hizmetler'i Azure portal seçin ve ardından Azure AD B2C.
  5. Genel Bakış sayfasında, Identity Experience Framework.
  6. İlke Anahtarları'ı ve ardından Ekle'yi seçin.
  7. Seçenekler için El ile'yi seçin.
  8. Ad için RestApiKey yazın. Ön ek B2C_1A_ otomatik olarak eklenebilir.
  9. Gizli Anahtar kutusuna REST API girin.
  10. Anahtar kullanımı için Şifreleme'yi seçin.
  11. Oluştur’u seçin.

Api anahtarı REST API kullanmak için teknik profilinizi yapılandırma

Gerekli anahtarı oluşturdukten sonra, kimlik bilgilerine REST API profil meta verilerini yapılandırabilirsiniz.

  1. Çalışma dizininize uzantı ilkesi dosyasını açın (TrustFrameworkExtensions.xml).
  2. Aşağıdaki teknik REST API arama. Örneğin, REST-ValidateProfile veya REST-GetProfile .
  3. öğesini <Metadata> bulun.
  4. AuthenticationType'i olarak ApiKeyHeader değiştirme.
  5. AllowInsecureAuthInProduction 'i olarak false değiştirme.
  6. Kapanış öğesinin </Metadata> 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 bilgilerini tanımlar. Bu örnekte API anahtarı x-functions-key olarak gönderilir.

Aşağıdaki XML kod parçacığı, API anahtarı kimlik doğrulaması ile Azure İşlevi'ne çağrı yapmak üzere 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