Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.
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 příručce Přidání konektoru rozhraní API do toku 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 (
usernameapassword) vAuthorizationhlavič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 konektor rozhraní API se základním ověřováním HTTP, postupujte takto:
- Přihlaste se do Azure Portalu.
- V části Služby Azure vyberte Azure AD B2C nebo vyhledejte a vyberte Azure AD B2C.
- Vyberte konektory rozhraní API a pak vyberte konektor rozhraní API , který chcete nakonfigurovat.
- Jako typ Ověřování vyberte Základní.
-
Zadejte uživatelské jméno a heslo koncového bodu rozhraní REST API.
- Vyberte Uložit.
Přidat klíče 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:
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte Identity Experience Framework.
- Vyberte klíče zásada poté vyberte Přidat.
- V nabídce Možnosti vyberte Ručně.
- Jako název zadejte RestApiUsername. Předpona B2C_1A_ může být přidána automaticky.
- Do pole Tajný kód zadejte uživatelské jméno rozhraní REST API.
- V případě použití klíče vyberte Šifrování.
- Vyberte Vytvořit.
- Znovu vyberte klíče zásad.
- Vyberte Přidat.
- V nabídce Možnosti vyberte Ručně.
- Jako název zadejte RestApiPassword. Předpona B2C_1A_ může být přidána automaticky.
- Do pole Tajný kód zadejte heslo rozhraní REST API.
- V případě použití klíče vyberte Šifrování.
- 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.
- V pracovním adresáři otevřete konfigurační soubor pro zásady rozšíření (TrustFrameworkExtensions.xml).
- Vyhledejte technický profil rozhraní REST API. Například
REST-ValidateProfile, neboREST-GetProfile. - Vyhledejte element
<Metadata>. - Změňte Typ ověřování na
Basic. - Změňte allowInsecureAuthInProduction na
false. - 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
Možnost 1: Použití služby Azure Key Vault (doporučeno)
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 lifetimeneboEmail 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.pfxsoubor)
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.
Spuštěním následujícího příkazu PowerShellu vygenerujte certifikát podepsaný svým držitelem.
-SubjectUpravte argument podle potřeby pro vaši aplikaci a název tenanta Azure AD B2C, napříkladcontosowebapp.contoso.onmicrosoft.com. Můžete také upravit-NotAfterdatum 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"Na počítači s Windows vyhledejte a vyberte Spravovat uživatelské certifikáty.
V části Certifikáty – Aktuální uživatel vyberte osobní>>
Vyberte certifikát a pak vyberte Akce>Všechny úkoly>Export.
Vyberte Další>ano, exportujte privátní klíč>Další.
Přijměte výchozí hodnoty formátu exportu souboru a pak vyberte Další.
Povolte možnost Heslo , zadejte heslo pro certifikát a pak vyberte Další.
Pokud chcete zadat umístění pro uložení certifikátu, vyberte Procházet a přejděte do libovolného adresáře.
V okně Uložit jako zadejte název souboru a pak vyberte Uložit.
Vyberte Další>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 konektoru rozhraní API
Pokud chcete nakonfigurovat konektor rozhraní API s ověřováním klientských certifikátů, postupujte takto:
- Přihlaste se do Azure Portalu.
- V části Služby Azure vyberte Azure AD B2C.
- Vyberte konektory rozhraní API a pak vyberte konektor rozhraní API , který chcete nakonfigurovat.
- Jako typ ověřování vyberte Certifikát.
- V poli Nahrát certifikát vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
-
Do pole Zadat heslo zadejte heslo certifikátu.
- Vyberte 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.
Přidání klíče zásad klientského certifikátu
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte Identity Experience Framework.
- Vyberte klíče zásada poté vyberte Přidat.
- V okně Možnosti vyberte Nahrát.
- Do pole Název zadejte RestApiClientCertificate. Předpona B2C_1A_ se přidá automaticky.
- V poli Pro nahrání souboru vyberte soubor .pfx vašeho certifikátu s privátním klíčem.
- Do pole Heslo zadejte heslo certifikátu.
- 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.
- V pracovním adresáři otevřete konfigurační soubor pro zásady rozšíření (TrustFrameworkExtensions.xml).
- Vyhledejte technický profil rozhraní REST API. Například
REST-ValidateProfile, neboREST-GetProfile. - Vyhledejte element
<Metadata>. - Změňte Typ ověřování na
ClientCertificate. - Změňte allowInsecureAuthInProduction na
false. - 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í pomocí tokenu OAuth2
Ověřování nosným tokenem je definováno v autorizačním rámci OAuth2.0: Použití nosného tokenu (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ůhledný ř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íte 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.
Definovat nárok pro uložení přenosného tokenu
Nárok poskytuje dočasné úložiště dat během provádění zásad Azure AD B2C. Schéma nároků je místo, kde deklarujete své nároky. Přístupový token musí být uložen v deklaraci identity, která se má použít později.
- Otevřete soubor s rozšířeními zásad. Například:
SocialAndLocalAccounts/TrustFrameworkExtensions.xml. - Vyhledejte prvek BuildingBlocks. Pokud prvek neexistuje, přidejte ho.
- Vyhledejte prvek ClaimsSchema. Pokud prvek neexistuje, přidejte ho.
- Do elementu ClaimsSchema přidejte následující claimy.
<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.
Výstraha
Microsoft doporučuje nepoužívat tok ROPC. Tento tok vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky nejsou přijatelné.
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:
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levé nabídce vyberte Microsoft Entra ID. Nebo vyberte Všechny služby a vyhledejte a vyberte MICROSOFT Entra ID.
- Vyberte Registrace aplikacía pak vyberte Nová registrace.
- Zadejte název aplikace. Například Client_Credentials_Auth_app.
- V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři.
- Vyberte Zaregistrovat.
- 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.
- Na stránce Microsoft Entra ID – Registrace aplikací vyberte aplikaci, kterou jste vytvořili, například Client_Credentials_Auth_app.
- V levém menu, v části Spravovat, vyberte Certifikáty & tajemství.
- Vyberte Nový tajný klíč klienta.
- Do pole Popis zadejte popis klientského hesla. Například klientiecret1.
- V části Konec platnosti vyberte dobu, po kterou je tajný klíč platný, a pak vyberte Přidat.
- 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.
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte Identity Experience Framework.
- Vyberte Klíče zásad a pak vyberte Přidat.
- V nabídce Možnosti zvolte
Manual. - Zadejte název klíče
SecureRESTClientIdzásady. PředponaB2C_1A_se automaticky přidá do názvu klíče. - V tajném kódu zadejte ID klienta, které jste si předtím poznamenali.
- V případě použití klíče vyberte
Signature. - Vyberte Vytvořit.
- 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.
-
Název:
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 v scope jiných technických profilech, doporučujeme, aby rovněž určovaly DefaultValue a používaly AlwaysUseDefaultValue="true", aby se zabránilo potenciálním konfliktům ve vazbě proti nesprávné hodnotě.
Změňte technický profil REST tak, aby používal ověřování pomocí přenosového tokenu
Chcete-li podporovat ověřování prostřednictvím přístupového tokenu ve vlastních zásadách, upravte technický profil rozhraní REST API podle následujících kroků:
V pracovním adresáři otevřete soubor zásad rozšíření TrustFrameworkExtensions.xml .
Vyhledejte
<TechnicalProfile>uzel, který obsahujeId="REST-API-SignUp".Vyhledejte element
<Metadata>.Změňte typ AuthenticationType na Bearer následujícím způsobem:
<Item Key="AuthenticationType">Bearer</Item>Změňte nebo přidejte UseClaimAsBearerToken na bearerToken následujícím způsobem. bearerToken je název nároku, ze kterého se načte nosný token (výstupní nárok z
REST-AcquireAccessToken).<Item Key="UseClaimAsBearerToken">bearerToken</Item>Přidejte nárok z předchozího kroku jako vstupní nárok:
<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>
Zavolejte technický profil 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 uživatelské cesty nebo dílčí uživatelské 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 přístupového tokenu OAuth2
Přidejte klíč zásad nosného tokenu 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.
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte Identity Experience Framework.
- Vyberte klíče zásada poté vyberte Přidat.
- V nabídce Možnosti zvolte
Manual. - Zadejte název klíče pro zásady. Například:
RestApiBearerToken. PředponaB2C_1A_se automaticky přidá do názvu klíče. - V tajném kódu zadejte tajný klíč klienta, který jste předtím zaznamenali.
- V případě použití klíče vyberte
Encryption. - 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.
- V pracovním adresáři otevřete konfigurační soubor pro zásady rozšíření (TrustFrameworkExtensions.xml).
- Vyhledejte technický profil rozhraní REST API. Například
REST-ValidateProfile, neboREST-GetProfile. - Vyhledejte element
<Metadata>. - Změňte Typ ověřování na
Bearer. - Změňte allowInsecureAuthInProduction na
false. - 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í.
Napří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:
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte Identity Experience Framework.
- Vyberte klíče zásada poté vyberte Přidat.
- V nabídce Možnosti vyberte Ručně.
- Jako název zadejte RestApiKey. Předpona B2C_1A_ může být přidána automaticky.
- Do pole Tajný kód zadejte klíč rozhraní REST API.
- V případě použití klíče vyberte Šifrování.
- 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.
- V pracovním adresáři otevřete konfigurační soubor pro zásady rozšíření (TrustFrameworkExtensions.xml).
- Vyhledejte technický profil rozhraní REST API. Například
REST-ValidateProfile, neboREST-GetProfile. - Vyhledejte element
<Metadata>. - Změňte Typ ověřování na
ApiKeyHeader. - Změňte allowInsecureAuthInProduction na
false. - 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>
Související obsah
- Začněte s našimi ukázkami.
- Další informace o elementu technického profilu RESTful najdete v referenčních informacích k vlastním zásadám.