Zabezpečte své rozhraní API pomocí konektoru rozhraní API v Azure AD B2C

Při integraci REST API v rámci toku Azure AD B2C uživatele musíte chránit svůj REST API koncový bod pomocí ověřování. Ověřování REST API zajišťuje, že se do vašeho koncového bodu můžou volat jenom služby, které mají správné přihlašovací údaje, jako je třeba Azure AD B2C. Tento článek vás seznámí s postupem zabezpečení REST API.

Požadavky

Dokončete kroky v tomto návodu: přidejte konektor API do Průvodce uživatelským tokem pro registraci .

Koncový bod rozhraní API můžete chránit buď pomocí základního ověřování HTTP, nebo pomocí ověřování klientského certifikátu HTTPS. V obou případech poskytnete přihlašovací údaje, které Azure AD B2C použijí při volání koncového bodu rozhraní API. Váš koncový bod rozhraní API pak zkontroluje přihlašovací údaje a provede rozhodnutí o autorizaci.

Základní ověřování HTTP

Základní ověřování HTTP je definované v dokumentu RFC 2617. Základní ověřování funguje takto: Azure AD B2C odešle požadavek HTTP s přihlašovacími údaji klienta ( username a password ) v Authorization hlavičce. Pověření jsou formátována jako řetězec kódovaný v kódování Base64 username:password . Vaše rozhraní API pak zodpovídá za kontrolu těchto hodnot a provádění dalších autorizačních rozhodnutí.

Pokud chcete nakonfigurovat konektor API pomocí ověřování HTTP Basic, postupujte takto:

  1. Přihlaste se k webu Azure Portal.
  2. V části služby Azure vyberte Azure AD B2C nebo vyhledejte a vyberte Azure AD B2C.
  3. Vyberte konektory rozhraní API a pak vyberte konektor API , který chcete nakonfigurovat.
  4. Jako typ ověřování vyberte Basic.
  5. Zadejte uživatelské jméno a heslo REST API koncového bodu. Poskytuje konfiguraci základního ověřování pro konektor API.
  6. Vyberte Uložit.

Přidání klíčů REST API uživatelské jméno a zásady hesel

Pokud chcete nakonfigurovat REST API technický profil s ověřováním HTTP Basic, vytvořte si uživatelské jméno a heslo pomocí následujících kryptografických klíčů:

  1. Přihlaste se k webu Azure Portal.
  2. Ujistěte se, že používáte adresář, který obsahuje vašeho tenanta Azure AD B2C. Na panelu nástrojů portálu vyberte ikonu adresáře a odběry .
  3. Na nastavení portálu | Adresáře a odběry stránky, vyhledejte adresář Azure AD B2C v seznamu název adresáře a pak vyberte přepínač.
  4. V levém horním rohu Azure Portal vyberte všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  5. Na stránce Přehled vyberte možnost Architektura prostředí identity.
  6. Vyberte klíče zásad a pak vyberte Přidat.
  7. V případě možností vyberte možnost ručně.
  8. Jako název zadejte RestApiUsername. B2C_1A_ předpony je možné přidat automaticky.
  9. Do pole tajný kód zadejte REST API uživatelské jméno.
  10. V případě použití klíče vyberte šifrování.
  11. Vyberte Vytvořit.
  12. Znovu vyberte klíče zásad .
  13. Vyberte Přidat.
  14. V případě možností vyberte možnost ručně.
  15. Jako název zadejte RestApiPassword. B2C_1A_ předpony je možné přidat automaticky.
  16. Do pole tajný kód zadejte REST API heslo.
  17. V případě použití klíče vyberte šifrování.
  18. Vyberte Vytvořit.

Konfigurace technického profilu REST API pro použití základního ověřování HTTP

Po vytvoření potřebných klíčů Nakonfigurujte metadata profilu REST API Technical profil, aby odkazovala na přihlašovací údaje.

  1. V pracovním adresáři otevřete soubor zásad rozšíření (TrustFrameworkExtensions.xml).
  2. Vyhledejte REST API Technical Profile. Například REST-ValidateProfile nebo REST-GetProfile .
  3. Vyhledejte element <Metadata>.
  4. Změňte AuthenticationType na Basic .
  5. Změňte AllowInsecureAuthInProduction na false .
  6. Hned za uzavírací </Metadata> element přidejte následující fragment kódu XML:
    <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
    </CryptographicKeys>
    

Následující fragment kódu XML je příkladem RESTful technického profilu nakonfigurovaného pomocí základního ověřování HTTP:

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

Ověřování klientským certifikátem HTTPS

Ověřování klientským certifikátem je vzájemné ověřování založené na certifikátech, ve kterém klient Azure AD B2C poskytuje svůj klientský certifikát serveru k prokázání jeho identity. K tomu dochází jako součást metody handshake protokolu SSL. Vaše rozhraní API zodpovídá za ověření, že certifikáty patří platnému klientovi, například Azure AD B2C a provádění autorizačních rozhodnutí. Certifikát klienta je digitální certifikát X. 509.

Důležité

V produkčních prostředích musí být certifikát podepsaný certifikační autoritou.

Vytvoření certifikátu

Certifikát můžete vytvořit pomocí Azure Key Vault, který obsahuje možnosti pro certifikáty podepsané svým držitelem a integrace s poskytovateli vystavitelů certifikátů pro podepsané certifikáty. Doporučená nastavení zahrnují:

  • Předmět: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Typ obsahu: PKCS #12
  • Typ životnosti Acton: Email all contacts at a given percentage lifetime nebo Email all contacts a given number of days before expiry
  • Typ klíče: RSA
  • Velikost klíče: 2048
  • Exportovatelný privátní klíč: Yes (aby bylo možné exportovat .pfx soubor)

Pak můžete certifikát exportovat.

Možnost 2: Příprava certifikátu podepsaného svým držitelem pomocí modulu PowerShellu

Pokud ještě certifikát nemáte, můžete použít certifikát podepsaný svým držitelem. Certifikát podepsaný svým držitelem je certifikát zabezpečení, který není podepsaný certifikační autoritou (CA), a neposkytuje bezpečnostní záruky certifikátu podepsaného certifikační autoritou.

v Windows pomocí rutiny New-SelfSignedCertificate v prostředí PowerShell vygenerujte certifikát.

  1. Spusťte následující příkaz prostředí PowerShell, který vygeneruje certifikát podepsaný svým držitelem. Upravte -Subject argument podle potřeby pro vaši aplikaci a Azure AD B2C název tenanta, například contosowebapp.contoso.onmicrosoft.com . Můžete také upravit -NotAfter Datum a zadat jiné vypršení platnosti certifikátu.

    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. v Windows počítači vyhledejte a vyberte spravovat uživatelské certifikáty .

  3. V části Certifikáty – aktuální uživatel vyberte Personal > Certificates > YourAppName.yourtenant.onmicrosoft.com.

  4. Vyberte certifikát a potom vyberte akci > všechny úkoly > exportovat.

  5. Vyberte Další > Ano, další exportovat privátní klíč > .

  6. Přijměte výchozí hodnoty pro Formát souboru pro export a pak vyberte Další.

  7. Možnost povolit heslo , zadejte heslo pro certifikát a potom vyberte Další.

  8. Pokud chcete zadat umístění pro uložení certifikátu, vyberte Procházet a přejděte do adresáře podle vašeho výběru.

  9. V okně Uložit jako zadejte název souboru a pak vyberte Uložit.

  10. Vyberte Další>Dokončit.

aby bylo možné Azure AD B2C přijmout heslo k souboru. pfx, musí být heslo šifrováno pomocí možnosti TripleDES-SHA1 v nástroji pro Export certifikátů Windows, a to na rozdíl od AES256-SHA256.

Konfigurace konektoru API

Ke konfiguraci konektoru rozhraní API pomocí ověřování klientského certifikátu použijte následující postup:

  1. Přihlaste se k webu Azure Portal.
  2. V části služby Azure vyberte Azure AD B2C.
  3. Vyberte konektory rozhraní API a pak vyberte konektor API , který chcete nakonfigurovat.
  4. Jako typ ověřování vyberte certifikát.
  5. v poli Upload certifikát vyberte soubor. pfx vašeho certifikátu s privátním klíčem.
  6. Do pole Zadejte heslo zadejte heslo certifikátu. Poskytuje konfiguraci ověřování certifikátů pro konektor rozhraní API.
  7. Vyberte Uložit.

Provést autorizační rozhodnutí

Rozhraní API musí implementovat autorizaci na základě odeslaných klientských certifikátů za účelem ochrany koncových bodů rozhraní API. Azure App Service a Azure Functions najdete v tématu Konfigurace vzájemného ověřování TLS , kde se dozvíte, jak certifikát povolit a ověřit z kódu rozhraní API. Můžete alternativně použít Azure API Management jako vrstvu před jakoukoli službou API ke kontrole vlastností klientského certifikátu na požadované hodnoty.

Obnovování certifikátů

Doporučuje se nastavit upozornění na připomenutí, kdy vyprší platnost certifikátu. Budete muset vygenerovat nový certifikát a opakovat výše uvedené kroky, pokud brzy vyprší platnost použitých certifikátů. Pokud chcete použít nový certifikát, vaše služba API může dál přijímat staré a nové certifikáty po dobu, kdy je nový certifikát nasazený.

pokud chcete nahrát nový certifikát do existujícího konektoru api, vyberte v části konektory rozhraní api konektor api a klikněte na Upload nový certifikát. Poslední nahraný certifikát, jehož platnost vypršela a jehož počáteční datum bylo úspěšné, bude automaticky použit Azure AD B2C.

Poskytnutí nového certifikátu konektoru rozhraní API, pokud už existuje.

Přidat klíč zásad certifikátu klienta

  1. Přihlaste se k webu Azure Portal.
  2. Ujistěte se, že používáte adresář, který obsahuje vašeho tenanta Azure AD B2C. Na panelu nástrojů portálu vyberte ikonu adresáře a odběry .
  3. V nastavení portálu | Přejděte na stránku Adresáře a předplatná, Azure AD B2C adresář v seznamu Název adresáře a pak vyberte Přepnout.
  4. V levém horním rohu okna vyberte Všechny služby a Azure Portal vyhledejte a vyberte Azure AD B2C.
  5. Na stránce Přehled vyberte Identity Experience Framework.
  6. Vyberte Klíče zásad a pak vyberte Přidat.
  7. V poli Možnosti vyberte Upload.
  8. Do pole Název zadejte RestApiClientCertificate. Předpona B2C_1A_ přidá automaticky.
  9. V poli Nahrání souboru vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
  10. Do pole Heslo zadejte heslo certifikátu.
  11. Vyberte Vytvořit.

Konfigurace technického REST API pro použití ověřování klientských certifikátů

Po vytvoření potřebného klíče nakonfigurujte metadata REST API profilu tak, aby odkazovat na klientský certifikát.

  1. V pracovním adresáři otevřete soubor zásad rozšíření (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický REST API profilu. Například REST-ValidateProfile , nebo REST-GetProfile .
  3. Vyhledejte element <Metadata>.
  4. Změňte AuthenticationType na ClientCertificate .
  5. Změňte AllowInsecureAuthInProduction na false .
  6. Ihned za uzavírací </Metadata> prvek přidejte následující fragment kódu XML:
    <CryptographicKeys>
       <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
    </CryptographicKeys>
    

Následující fragment kódu XML je příkladem technického profilu RESTful nakonfigurovaného s klientským certifikátem HTTP:

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

Ověřování pomocí beareru OAuth2

Poznámka

Tato funkce je ve verzi Public Preview.

Ověřování pomocí bearer tokenu je definované v autorizačním rozhraní OAuth 2.0: Použití bearer tokenu (RFC 6750). Při ověřování pomocí tokenu bearer Azure AD B2C požadavek HTTP s tokenem v autorizační hlavičce.

Authorization: Bearer <token>

Bearer token je neprůhledný řetězec. Může to být přístupový token JWT nebo libovolný řetězec, který REST API očekává Azure AD B2C že se odešle v autorizační hlavičce. Azure AD B2C podporuje následující typy:

  • Bearer token. Aby bylo možné odeslat bearer token v technickém profilu Restful, musí vaše zásady nejprve získat bearer token a pak ho použít v technickém profilu RESTful.
  • Statický bearer token. Tento přístup použijte, REST API váš správce vydá dlouhodobý přístupový token. Pokud chcete použít statický bearer token, vytvořte klíč zásady a z technického profilu RESTful odkazte na klíč zásady.

Použití beareru OAuth2

Následující kroky ukazují, jak pomocí přihlašovacích údajů klienta získat bearer token a předat ho do autorizační hlavičky REST API volání.

Definování deklarace identity pro uložení bearer tokenu

Deklarace identity poskytuje dočasné úložiště dat během Azure AD B2C zásad. Schéma deklarací identity je místo, kde deklarace identity deklarujete. Přístupový token musí být uložený v deklaraci identity, aby se později použil.

  1. Otevřete soubor rozšíření vaší zásady. Například SocialAndLocalAccounts/TrustFrameworkExtensions.xml .
  2. Vyhledejte element BuildingBlocks. Pokud prvek neexistuje, přidejte ho.
  3. Vyhledejte element ClaimsSchema. Pokud prvek neexistuje, přidejte ho.
  4. Do elementu ClaimsSchema přidejte následující deklarace identity.
<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>

Získání přístupového tokenu

Přístupový token můžete získat jedním z několika způsobů: jeho získáním od federovaného zprostředkovatele identity ,voláním metody REST API, která vrací přístupový token, pomocí toku ROPCnebo pomocí toku přihlašovacích údajů klienta. Tok přihlašovacích údajů klienta se běžně používá pro interakce mezi serverem a serverem, které musí běžet na pozadí bez okamžité interakce s uživatelem.

Získání přístupového tokenu Azure AD

Následující příklad používá k REST API tokenu Azure AD požadavek na koncový bod tokenu Azure AD pomocí přihlašovacích údajů klienta, které se předaly jako základní ověřování HTTP. Další informace najdete v tématu Microsoft identity platform a toku přihlašovacích údajů klienta OAuth 2.0.

Než bude technický profil moci komunikovat s Azure AD a získat přístupový token, musíte zaregistrovat aplikaci. Azure AD B2C spoléhá na platformu Azure AD. Aplikaci můžete vytvořit ve svém tenantovi Azure AD B2C nebo v libovolném tenantovi Azure AD, který spravujete. Registrace aplikace:

  1. Přihlaste se k webu Azure Portal.
  2. Ujistěte se, že používáte adresář, který obsahuje vašeho Azure AD B2C tenanta. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná.
  3. V nastavení portálu | Na stránce Adresáře a předplatná vyhledejte svůj adresář Azure AD nebo Azure AD B2C adresáře v seznamu Název adresáře a pak vyberte Přepnout.
  4. V nabídce vlevo vyberte Azure Active Directory. Nebo vyberte Všechny služby a vyhledejte a vyberte Azure Active Directory.
  5. Vyberte Registrace aplikací a pak vyberte Nová registrace.
  6. Zadejte Název aplikace. Příklad: Client_Credentials_Auth_app.
  7. V části Podporované typy účtů vyberte Účty pouze v tomto organizačním adresáři.
  8. Vyberte Zaregistrovat.
  9. Zaznamente si ID aplikace (klienta).

Pro tok přihlašovacích údajů klienta je potřeba vytvořit tajný kód aplikace. Tajný klíč klienta se také označuje jako heslo aplikace. Tajný kód bude vaše aplikace používat k získání přístupového tokenu.

  1. Na stránce Azure AD – Registrace aplikací vyberte aplikaci, kterou jste vytvořili, například Client_Credentials_Auth_app.
  2. V nabídce vlevo v části Spravovat vyberte Certifikáty a & tajné kódy.
  3. Vyberte New client secret (Nový tajný klíč klienta).
  4. Do pole Popis zadejte popis tajného klíče klienta. Například clientsecret1.
  5. V části Platnost vyprší vyberte dobu, po kterou je tajný kód platný, a pak vyberte Přidat.
  6. Zaznamená hodnotu tajného kódu pro použití v kódu klientské aplikace. Po opouštění této stránky se tato hodnota tajného klíče už nikdy nezobrazí. Tuto hodnotu použijete jako tajný kód aplikace v kódu vaší aplikace.

Vytvoření Azure AD B2C zásad

Musíte uložit ID klienta a tajný kód klienta, které jste si předtím zaznamenali ve svém Azure AD B2C tenantovi.

  1. Přihlaste se k webu Azure Portal.
  2. Ujistěte se, že používáte adresář, který obsahuje vašeho Azure AD B2C tenanta. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná.
  3. V nastavení portálu | Přejděte na stránku Adresáře a předplatná, Azure AD B2C adresář v seznamu Název adresáře a pak vyberte Přepnout.
  4. V levém horním rohu okna vyberte Všechny služby a Azure Portal vyhledejte a vyberte Azure AD B2C.
  5. Na stránce Přehled vyberte Identity Experience Framework.
  6. Vyberte Klíče zásad a pak vyberte Přidat.
  7. V možnosti Možnosti zvolte Manual .
  8. Zadejte Název klíče zásady SecureRESTClientId . Předpona B2C_1A_ se automaticky přidá k názvu vašeho klíče.
  9. V části Tajný klíč zadejte ID klienta, které jste si předtím zaznamenali.
  10. Jako Použití klíče vyberte Signature .
  11. Vyberte Vytvořit.
  12. Vytvořte další klíč zásad s následujícím nastavením:
    • Název: SecureRESTClientSecret .
    • Tajný kód: Zadejte tajný kód klienta, který jste si předtím zaznamenali.

Jako ServiceUrl nahraďte your-tenant-name názvem vašeho tenanta Azure AD. Všechny dostupné možnosti najdete v referenčních technických profilech RESTful.

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

Poznámka

Pokud používáte deklarace identity nebo v jiných technických profilech, doporučujeme, aby také specifikují a používají , aby se zabránilo potenciálním konfliktům ve vazbě s grant_type scope DefaultValue AlwaysUseDefaultValue="true" nesprávnou hodnotou.

Změna technického profilu REST na použití ověřování pomocí tokenu bearer

Pokud chcete ve vlastních zásadách podporovat ověřování pomocí tokenu bearer, upravte REST API profilu následujícím způsobem:

  1. V pracovním adresáři otevřete soubor TrustFrameworkExtensions.xml zásad rozšíření.

  2. Vyhledejte <TechnicalProfile> uzel, který obsahuje Id="REST-API-SignUp" .

  3. Vyhledejte element <Metadata>.

  4. Následujícím způsobem změňte AuthenticationType na Bearer:

    <Item Key="AuthenticationType">Bearer</Item>
    
  5. Následujícím způsobem změňte nebo přidejte UseClaimAsBearerToken na bearerToken. BearerToken je název deklarace identity, ze které se bude načíst bearer token (výstupní deklarace identity z REST-AcquireAccessToken ).

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Ujistěte se, že jste jako vstupní deklaraci identity použili výše uvedenou deklaraci identity:

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

Po přidání výše uvedených fragmentů kódu by váš technický profil měl vypadat jako následující kód XML:

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

Použití statického beareru OAuth2

Přidání klíče zásad tokenu beareru OAuth2

Pokud chcete nakonfigurovat REST API profilu pomocí bearerového tokenu OAuth2, získejte přístupový token od vlastníka REST API serveru. Potom vytvořte následující kryptografický klíč pro uložení bearer tokenu.

  1. Přihlaste se k webu Azure Portal.
  2. Ujistěte se, že používáte adresář, který obsahuje vašeho Azure AD B2C tenanta. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná.
  3. V nastavení portálu | Přejděte na stránku Adresáře a předplatná, Azure AD B2C adresáři v seznamu Název adresáře a pak vyberte Přepnout.
  4. V levém horním rohu okna vyberte Všechny služby a Azure Portal vyhledejte a vyberte Azure AD B2C.
  5. Na stránce Přehled vyberte Identity Experience Framework.
  6. Vyberte Klíče zásad a pak vyberte Přidat.
  7. V možnosti Možnosti zvolte Manual .
  8. Zadejte Název klíče zásady. Například, RestApiBearerToken. Předpona B2C_1A_ se automaticky přidá k názvu vašeho klíče.
  9. V části Tajný klíč zadejte tajný kód klienta, který jste si předtím zaznamenali.
  10. Jako Použití klíče vyberte Encryption .
  11. Vyberte Vytvořit.

Nakonfigurujte svůj REST API profil tak, aby se pro použití klíče zásad bearer tokenu

Po vytvoření potřebného klíče nakonfigurujte metadata REST API profilu tak, aby odkazovat na bearer token.

  1. V pracovním adresáři otevřete soubor zásad rozšíření (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický REST API profilu. Například REST-ValidateProfile , nebo REST-GetProfile .
  3. Vyhledejte element <Metadata>.
  4. Změňte AuthenticationType na Bearer .
  5. Změňte AllowInsecureAuthInProduction na false .
  6. Ihned za uzavírací </Metadata> prvek přidejte následující fragment kódu XML:
    <CryptographicKeys>
       <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
    </CryptographicKeys>
    

Následující fragment kódu XML je příkladem technického profilu RESTful nakonfigurovaného s ověřováním pomocí tokenu bearer:

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

Ověřování pomocí klíče rozhraní API

Některé služby používají mechanismus klíče rozhraní API k obfusci přístupu ke koncovým bodům HTTP během vývoje tím, že volající musí jako hlavičku protokolu HTTP nebo parametr dotazu HTTP zahrnout jedinečný klíč. Pokud Azure Functions, můžete to udělat tak, že do adresy URL koncového bodu konektoru rozhraní API zadáte jako parametr code dotazu . Například https://contoso.azurewebsites.net/api/endpoint ?code=0123456789 ).

Toto není mechanismus, který by se měl používat samostatně v produkčním prostředí. Proto se vždy vyžaduje konfigurace základního ověřování nebo ověřování pomocí certifikátu. Pokud nepřejete implementovat žádnou metodu ověřování (nedoporučuje se) pro účely vývoje, můžete v konfiguraci konektoru rozhraní API vybrat základní ověřování a použít dočasné hodnoty pro a které vaše rozhraní API může ignorovat při implementaci správné username password autorizace.

Klíč rozhraní API je jedinečný identifikátor, který slouží k ověření uživatele pro přístup REST API koncového bodu. Klíč se odesílá ve vlastní hlavičce PROTOKOLU HTTP. Například trigger HTTP Azure Functions k identifikaci requesteru hlavičku x-functions-key HTTP.

Přidání klíčů zásad klíčů rozhraní API

Pokud chcete nakonfigurovat REST API profilu s ověřováním pomocí klíče rozhraní API, vytvořte následující kryptografický klíč pro uložení klíče rozhraní API:

  1. Přihlaste se k webu Azure Portal.
  2. Ujistěte se, že používáte adresář, který obsahuje vašeho Azure AD B2C tenanta. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná.
  3. V nastavení portálu | Přejděte na stránku Adresáře a předplatná, Azure AD B2C adresáři v seznamu Název adresáře a pak vyberte Přepnout.
  4. V levém horním rohu okna vyberte Všechny služby a Azure Portal vyhledejte a vyberte Azure AD B2C.
  5. Na stránce Přehled vyberte Identity Experience Framework.
  6. Vyberte Klíče zásad a pak vyberte Přidat.
  7. V možnosti Možnosti vyberte Ruční.
  8. Jako Název zadejte RestApiKey. Předpona B2C_1A_ může být přidána automaticky.
  9. Do pole Tajný kód zadejte REST API klíč.
  10. Jako Použití klíče vyberte Šifrování.
  11. Vyberte Vytvořit.

Konfigurace technického REST API rozhraní API pro použití ověřování pomocí klíče rozhraní API

Po vytvoření potřebného klíče nakonfigurujte metadata REST API profilu tak, aby odkazovat na přihlašovací údaje.

  1. V pracovním adresáři otevřete soubor zásad rozšíření (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický REST API profilu. Například REST-ValidateProfile , nebo REST-GetProfile .
  3. Vyhledejte element <Metadata>.
  4. Změňte AuthenticationType na ApiKeyHeader .
  5. Změňte AllowInsecureAuthInProduction na false .
  6. Ihned za uzavírací </Metadata> prvek přidejte následující fragment kódu XML:
    <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
    </CryptographicKeys>
    

ID kryptografického klíče definuje hlavičku PROTOKOLU HTTP. V tomto příkladu se klíč rozhraní API odesílá jako x-functions-key.

Následující fragment kódu XML je příkladem technického profilu RESTful nakonfigurovaného pro volání funkce Azure s ověřováním pomocí klíče rozhraní API:

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

Další kroky