Zabezpečená rozhraní API používaná pro konektory rozhraní API v Azure AD B2C

Při integraci rozhraní REST API v rámci toku uživatele Azure AD B2C je nutné chránit koncový bod rozhraní REST API s ověřováním. Ověřování rozhraní REST API zajišťuje, že do koncového bodu můžou volat jenom služby, které mají správné přihlašovací údaje, jako je Azure AD B2C. Tento článek popisuje, jak zabezpečit rozhraní REST API.

Požadavky

Dokončete kroky v části Přidání konektoru rozhraní API do příručky pro tok registrace uživatele.

Koncový bod rozhraní API můžete chránit pomocí základního ověřování HTTP nebo ověřování pomocí klientského certifikátu HTTPS. V obou případech zadáte přihlašovací údaje, které Azure AD B2C používá při volání koncového bodu rozhraní API. 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 definováno 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.

  • Přihlašovací údaje jsou formátovány jako řetězec username:passwordkódovaný v base64 .

  • Vaše rozhraní API pak zodpovídá za kontrolu těchto hodnot za provádění dalších rozhodnutí o autorizaci.

Pokud chcete nakonfigurovat rozhraní API Připojení or se základním ověřováním HTTP, postupujte takto:

  1. Přihlaste se k portálu Azure.
  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 Připojení rozhraní API, které chcete nakonfigurovat.
  4. Jako typ Ověřování vyberte Základní.
  5. Zadejte uživatelské jméno a heslo koncového bodu rozhraní REST API. Providing basic authentication configuration for an API connector.
  6. Zvolte Uložit.

Přidání klíčů zásad uživatelského jména a hesla rozhraní REST API

Pokud chcete nakonfigurovat technický profil rozhraní REST API se základním ověřováním HTTP, vytvořte následující kryptografické klíče pro uložení uživatelského jména a hesla:

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V nabídce Možnosti vyberte Možnost Ručně.
  7. Jako název zadejte RestApiUsername. Předpona B2C_1A_ se může přidat automaticky.
  8. Do pole Tajný kód zadejte uživatelské jméno rozhraní REST API.
  9. V případě použití klíče vyberte Šifrování.
  10. Vyberte Vytvořit.
  11. Znovu vyberte klíče zásad.
  12. Vyberte Přidat.
  13. V nabídce Možnosti vyberte Možnost Ručně.
  14. Jako název zadejte RestApiPassword. Předpona B2C_1A_ se může přidat automaticky.
  15. Do pole Tajný kód zadejte heslo rozhraní REST API.
  16. V případě použití klíče vyberte Šifrování.
  17. Vyberte Vytvořit.

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

Po vytvoření potřebných klíčů nakonfigurujte metadata technického profilu rozhraní REST API tak, aby odkazovali na přihlašovací údaje.

  1. V pracovním adresáři otevřete soubor zásad přípony (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický profil rozhraní REST API. Například REST-ValidateProfile, nebo REST-GetProfile.
  3. Vyhledejte element <Metadata>.
  4. Změňte Typ ověřování na Basic.
  5. Změňte allowInsecureAuthInProduction na false.
  6. Bezprostředně za uzavírací </Metadata> prvek 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 technického profilu RESTful 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ých certifikátů je vzájemné ověřování založené na certifikátech, kde klient Azure AD B2C poskytuje jeho klientský certifikát serveru, aby prokázal svou identitu. K tomu dochází jako součást metody handshake PROTOKOLU SSL. Vaše rozhraní API zodpovídá za ověření certifikátů, které patří platnému klientovi, jako je Azure AD B2C, a provádí rozhodnutí o autorizaci. Klientský certifikát 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

K vytvoření certifikátu můžete použít Službu Azure Key Vault, která má možnosti pro certifikáty podepsané svým držitelem a integraci s poskytovateli vystavitelů certifikátů pro podepsané certifikáty. Mezi doporučená nastavení patří:

  • Předmět: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Typ obsahu: PKCS #12
  • Typ actonu životnosti: 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 záruky zabezpečení certifikátu podepsaného certifikační autoritou.

Ve Windows použijte rutinu New-SelfSignedCertificate v PowerShellu k vygenerování certifikátu.

  1. Spuštěním následujícího příkazu PowerShellu vygenerujte certifikát podepsaný svým držitelem. -Subject Upravte argument podle potřeby pro vaši aplikaci a název tenanta Azure AD B2C, například contosowebapp.contoso.onmicrosoft.com. Můžete také upravit -NotAfter datum a určit 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. Na počítači s Windows vyhledejte a vyberte Spravovat uživatelské certifikáty.

  3. V části Certifikáty – Aktuální uživatel vyberte osobní>certifikáty>yourappname.yourtenant.onmicrosoft.com.

  4. Vyberte certifikát a pak vyberte Akce>Všechny úkoly>exportu.

  5. Vyberte Další>ano, exportujte privátní klíč>Další.

  6. Přijměte výchozí hodnoty formátu exportu souboru a pak vyberte Další.

  7. Povolte možnost Heslo , zadejte heslo pro certifikát a pak vyberte Další.

  8. Pokud chcete zadat umístění pro uložení certifikátu, vyberte Procházet a přejděte do libovolného adresáře.

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

  10. Vyberte Next (Další)>Finish (Dokončit).

Aby služba Azure AD B2C přijala heslo k souboru .pfx, musí být heslo zašifrované pomocí možnosti TripleDES-SHA1 v nástroji Pro export z Úložiště certifikátů windows, a ne pomocí AES256-SHA256.

Konfigurace Připojení oru rozhraní API

Pokud chcete nakonfigurovat Připojení rozhraní API s ověřováním klientských certifikátů, postupujte takto:

  1. Přihlaste se k portálu Azure.
  2. V části Služby Azure vyberte Azure AD B2C.
  3. Vyberte konektory rozhraní API a pak vyberte Připojení rozhraní API, které chcete nakonfigurovat.
  4. Jako typ ověřování vyberte Certifikát.
  5. V poli Nahrát certifikát vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
  6. Do pole Zadat heslo zadejte heslo certifikátu. Providing certificate authentication configuration for an API connector.
  7. Zvolte Uložit.

Provádění rozhodnutí o autorizaci

Vaše rozhraní API musí implementovat autorizaci na základě odeslaných klientských certifikátů, aby bylo možné chránit koncové body rozhraní API. Informace o tom, jak povolit a ověřit certifikát z kódu rozhraní API, najdete v tématu konfigurace vzájemného ověřování TLS pro Aplikace Azure Service a Azure Functions. Azure API Management můžete alternativně použít jako vrstvu před libovolnou službou API a zkontrolovat vlastnosti klientského certifikátu s požadovanými hodnotami.

Obnovení certifikátů

Doporučujeme nastavit upozornění na připomenutí, kdy vyprší platnost certifikátu. Při vypršení platnosti použitých certifikátů je potřeba vygenerovat nový certifikát a zopakovat výše uvedené kroky. Pokud chcete "vrátit" používání nového certifikátu, může vaše služba ROZHRANÍ API dál přijímat staré a nové certifikáty po dočasnou dobu během nasazení nového certifikátu.

Pokud chcete nahrát nový certifikát do existujícího konektoru rozhraní API, vyberte konektor rozhraní API v části Konektory rozhraní API a klikněte na Nahrát nový certifikát. Naposledy nahraný certifikát, jehož platnost nevypršela a jehož počáteční datum uplynulo, se automaticky použije službou Azure AD B2C.

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

Přidání klíče zásad klientského certifikátu

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V okně Možnosti vyberte Nahrát.
  7. Do pole Název zadejte RestApiClientCertificate. Předpona B2C_1A_ se přidá automaticky.
  8. V poli Pro nahrání souboru vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
  9. Do pole Heslo zadejte heslo certifikátu.
  10. Vyberte Vytvořit.

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

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

  1. V pracovním adresáři otevřete soubor zásad přípony (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický profil rozhraní REST API. Například REST-ValidateProfile, nebo REST-GetProfile.
  3. Vyhledejte element <Metadata>.
  4. Změňte Typ ověřování na ClientCertificate.
  5. Změňte allowInsecureAuthInProduction na false.
  6. Bezprostředně 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 pomocí klientského certifikátu 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í nosné pošty OAuth2

Ověřování nosný token je definováno v autorizačním rozhraní OAuth2.0: Použití nosné tokeny (RFC 6750). V ověřování nosným tokenem odešle Azure AD B2C požadavek HTTP s tokenem v autorizační hlavičce.

Authorization: Bearer <token>

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

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

Použití nosné metody OAuth2

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

Definování deklarace identity pro uložení nosný token

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

  1. Otevřete soubor s příponami zásad. 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ů, pro zprostředkovatele federované identity voláním rozhraní REST API, které vrací přístupový token, pomocí toku ROPC nebo pomocí toku přihlašovacích údajů klienta. Tok přihlašovacích údajů klienta se běžně používá pro interakce mezi servery, které se musí spouštět na pozadí bez okamžité interakce s uživatelem.

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

Následující příklad používá technický profil rozhraní REST API k vytvoření požadavku na koncový bod tokenu Microsoft Entra pomocí přihlašovacích údajů klienta předaného jako základní ověřování HTTP. Další informace najdete v tématu Microsoft Identity Platform a tok přihlašovacích údajů klienta OAuth 2.0.

Než bude technický profil moct interagovat s Microsoft Entra ID k získání přístupového tokenu, musíte zaregistrovat aplikaci. Azure AD B2C spoléhá na platformu Microsoft Entra. Aplikaci můžete vytvořit v tenantovi Azure AD B2C nebo v libovolném tenantovi Microsoft Entra, který spravujete. Registrace aplikace:

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V nabídce vlevo vyberte Microsoft Entra ID. Nebo vyberte Všechny služby a vyhledejte a vyberte MICROSOFT Entra ID.
  4. Vyberte Registrace aplikací a pak vyberte Nová registrace.
  5. Zadejte název aplikace. Například Client_Credentials_Auth_app.
  6. V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři.
  7. Vyberte Zaregistrovat.
  8. Poznamenejte si ID aplikace (klienta).

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

  1. Na stránce Microsoft Entra ID – Registrace aplikací vyberte aplikaci, kterou jste vytvořili, například Client_Credentials_Auth_app.
  2. V nabídce vlevo v části Spravovat vyberte Tajné kódy certifikátů&.
  3. Vyberte Nový tajný klíč klienta.
  4. Do pole Popis zadejte popis tajného klíče klienta. Například klientiecret1.
  5. V části Konec platnosti vyberte dobu, po kterou je tajný klíč platný, a pak vyberte Přidat.
  6. Poznamenejte si hodnotu tajného kódu pro použití v kódu klientské aplikace. Tato hodnota tajného kódu se po opuštění této stránky už nikdy nezobrazí. Tuto hodnotu použijete jako tajný kód aplikace v kódu vaší aplikace.

Vytvoření klíčů zásad Azure AD B2C

Musíte uložit ID klienta a hodnotu tajného klíče klienta, kterou jste předtím zaznamenali ve svém tenantovi Azure AD B2C.

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V nabídce Možnosti zvolte Manual.
  7. Zadejte název klíče SecureRESTClientIdzásady. Předpona B2C_1A_ se automaticky přidá do názvu klíče.
  8. V tajném kódu zadejte ID klienta, které jste si předtím poznamenali.
  9. V případě použití klíče vyberte Signature.
  10. Vyberte Vytvořit.
  11. Vytvořte další klíč zásad s následujícím nastavením:
    • Název: SecureRESTClientSecret.
    • Tajný kód: Zadejte tajný klíč klienta, který jste si předtím poznamenali.

Pro ServiceUrl nahraďte název vašeho tenanta názvem vašeho tenanta Microsoft Entra. Všechny dostupné možnosti najdete v referenčních informacích k technickému profilu 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 grant_type deklarace identity v scope jiných technických profilech, doporučujeme, aby také určily DefaultValue a používaly AlwaysUseDefaultValue="true" , aby se zabránilo potenciálním konfliktům v vazbě proti nesprávné hodnotě.

Změna technického profilu REST tak, aby používal ověřování nosný token

Pokud chcete podporovat ověřování nosný token ve vlastních zásadách, upravte technický profil rozhraní REST API pomocí následujícího postupu:

  1. V pracovním adresáři otevřete soubor zásad přípony TrustFrameworkExtensions.xml .

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

  3. Vyhledejte element <Metadata>.

  4. Změňte typ AuthenticationType na Bearer následujícím způsobem:

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

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Přidejte deklaraci identity z předchozího kroku jako vstupní deklaraci identity:

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

Po aktualizaci zásad by měl váš technický profil vypadat podobně 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>

Volání technického profilu REST

Pokud chcete volat REST-GetProfile technický profil, musíte nejprve získat přístupový token Microsoft Entra pomocí technického REST-AcquireAccessToken profilu. Následující příklad ukazuje, jak volat REST-GetProfile technický profil z technického profilu ověření:

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

Následující příklad ukazuje, jak volat REST-GetProfile technický profil z cesty uživatele nebo dílčí cesty:

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

Použití statického nosnýho medvěda OAuth2

Přidání klíče zásad nosné tokeny OAuth2

Pokud chcete nakonfigurovat technický profil rozhraní REST API s nosným tokenem OAuth2, získejte přístupový token od vlastníka rozhraní REST API. Pak vytvořte následující kryptografický klíč pro uložení nosný token.

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V nabídce Možnosti zvolte Manual.
  7. Zadejte název klíče zásady. Například, RestApiBearerToken. Předpona B2C_1A_ se automaticky přidá do názvu klíče.
  8. V tajném kódu zadejte tajný klíč klienta, který jste předtím zaznamenali.
  9. V případě použití klíče vyberte Encryption.
  10. Vyberte Vytvořit.

Konfigurace technického profilu rozhraní REST API pro použití klíče zásad nosné tokeny

Po vytvoření potřebného klíče nakonfigurujte metadata technického profilu rozhraní REST API tak, aby odkazovali na nosný token.

  1. V pracovním adresáři otevřete soubor zásad přípony (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický profil rozhraní REST API. Například REST-ValidateProfile, nebo REST-GetProfile.
  3. Vyhledejte element <Metadata>.
  4. Změňte Typ ověřování na Bearer.
  5. Změňte allowInsecureAuthInProduction na false.
  6. Bezprostředně 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 nosného tokenu:

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

Přidejte referenční informace k technickému profilu ověření do technického profilu registrace, který volá REST-AcquireAccessToken. Toto chování znamená, že Azure AD B2C přejde k vytvoření účtu v adresáři až po úspěšném ověření.

Příklad:

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

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

Některé služby používají mechanismus "klíč rozhraní API" k obfukování přístupu ke koncovým bodům HTTP během vývoje tím, že volající vyžaduje, aby jako hlavičku HTTP nebo parametr dotazu HTTP zahrnul jedinečný klíč. U Azure Functions toho můžete dosáhnout zahrnutím parametru code dotazu do adresy URL koncového bodu konektoru rozhraní API. Například https://contoso.azurewebsites.net/api/endpoint?code=0123456789).

Nejedná se o 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í certifikátů. Pokud nechcete 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 username a password že vaše rozhraní API může ignorovat při implementaci správné autorizace.

Klíč rozhraní API je jedinečný identifikátor používaný k ověření uživatele pro přístup ke koncovému bodu rozhraní REST API. Klíč se odešle do vlastní hlavičky HTTP. Trigger HTTP služby Azure Functions například používá hlavičku x-functions-key HTTP k identifikaci žadatele.

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

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

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V nabídce Možnosti vyberte Možnost Ručně.
  7. Jako název zadejte RestApiKey. Předpona B2C_1A_ se může přidat automaticky.
  8. Do pole Tajný kód zadejte klíč rozhraní REST API.
  9. V případě použití klíče vyberte Šifrování.
  10. Vyberte Vytvořit.

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

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

  1. V pracovním adresáři otevřete soubor zásad přípony (TrustFrameworkExtensions.xml).
  2. Vyhledejte technický profil rozhraní REST API. Například REST-ValidateProfile, nebo REST-GetProfile.
  3. Vyhledejte element <Metadata>.
  4. Změňte Typ ověřování na ApiKeyHeader.
  5. Změňte allowInsecureAuthInProduction na false.
  6. Bezprostředně 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 HTTP. V tomto příkladu se klíč rozhraní API odešle jako klíč x-functions-key.

Následující fragment kódu XML je příkladem technického profilu RESTful nakonfigurovaného pro volání funkce Azure Functions 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

  • Další informace o elementu technického profilu Restful najdete v referenčních informacích k vlastním zásadám.