Beveiligde API's die worden gebruikt voor API-connectors in Azure AD B2C
Wanneer u een REST API in een Azure AD B2C-gebruikersstroom integreert, moet u uw REST API-eindpunt beveiligen met verificatie. De REST API-verificatie zorgt ervoor dat alleen services met de juiste referenties, zoals Azure AD B2C, uw eindpunt kunnen aanroepen. In dit artikel wordt beschreven hoe u REST API kunt beveiligen.
Vereisten
Voer de stappen in de handleiding Een API-connector toevoegen aan een gebruikersstroomhandleiding voor registratie uit.
U kunt uw API-eindpunt beveiligen met behulp van HTTP-basisverificatie of HTTPS-clientcertificaatverificatie. In beide gevallen geeft u de referenties op die Azure AD B2C gebruikt wanneer het uw API-eindpunt aanroept. Uw API-eindpunt controleert vervolgens de referenties en voert autorisatiebeslissingen uit.
HTTP-basisverificatie
HTTP-basisverificatie wordt gedefinieerd in RFC 2617. Basisverificatie werkt als volgt:
Azure AD B2C verzendt een HTTP-aanvraag met de clientreferenties (
username
enpassword
) in deAuthorization
header.De referenties zijn opgemaakt als de base64-gecodeerde tekenreeks
username:password
.Uw API is vervolgens verantwoordelijk voor het controleren van deze waarden om andere autorisatiebeslissingen uit te voeren.
Voer de volgende stappen uit om een API-connector te configureren met HTTP-basisverificatie:
- Meld u aan bij de Azure-portal.
- Selecteer onder Azure-services Azure AD B2C of zoek en selecteer Azure AD B2C.
- Selecteer API-connectors en selecteer vervolgens de API-connector die u wilt configureren.
- Voor het Verificatietype selecteert u Basis.
- Geef de Gebruikersnaam en het Wachtwoord van uw REST API-eindpunt op.
- Selecteer Opslaan.
REST API-gebruikersnaam- en wachtwoordbeleidssleutels toevoegen
Als u een technisch REST API-profiel met HTTP-basisverificatie wilt configureren, maakt u de volgende cryptografische sleutels om de gebruikersnaam en het wachtwoord op te slaan:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
- Selecteer Identity Experience Framework op de overzichtspagina.
- Selecteer Beleidssleutels en vervolgens Toevoegen.
- Selecteer Handmatig voor Opties.
- Bij Naam typt u RestApiUsername. Het voorvoegsel B2C_1A_ kan automatisch worden toegevoegd.
- Voer in het vak Geheim de gebruikersnaam van de REST API in.
- Voor sleutelgebruik selecteert u Versleuteling.
- Selecteer Maken.
- Selecteer beleidssleutels opnieuw.
- Selecteer Toevoegen.
- Selecteer Handmatig voor Opties.
- Bij Naam typt u RestApiPassword. Het voorvoegsel B2C_1A_ kan automatisch worden toegevoegd.
- Voer in het vak Geheim het WACHTWOORD van de REST API in.
- Voor sleutelgebruik selecteert u Versleuteling.
- Selecteer Maken.
Uw TECHNISCHE REST API-profiel configureren voor het gebruik van HTTP-basisverificatie
Nadat u de benodigde sleutels hebt gemaakt, configureert u de metagegevens van uw TECHNISCHE REST API-profiel om te verwijzen naar de referenties.
- Open in uw werkmap het extensiebeleidsbestand (TrustFrameworkExtensions.xml).
- Zoek naar het technische profiel van de REST API. Bijvoorbeeld
REST-ValidateProfile
ofREST-GetProfile
. - Zoek het
<Metadata>
element. - Wijzig het AuthenticationType in
Basic
. - Wijzig allowInsecureAuthInProduction in
false
. - Voeg direct na het afsluitende
</Metadata>
element het volgende XML-fragment toe:<CryptographicKeys> <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" /> <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" /> </CryptographicKeys>
Het volgende XML-fragment is een voorbeeld van een RESTful-technisch profiel dat is geconfigureerd met HTTP-basisverificatie:
<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>
Verificatie van HTTPS-clientcertificaten
Verificatie van clientcertificaten is een wederzijdse verificatie op basis van certificaten, waarbij de client, Azure AD B2C, het clientcertificaat aan de server levert om de identiteit te bewijzen. Dit gebeurt als onderdeel van de SSL-handshake. Uw API is verantwoordelijk voor het valideren van de certificaten van een geldige client, zoals Azure AD B2C, en het uitvoeren van autorisatiebeslissingen. Het clientcertificaat is een digitaal X.509-certificaat.
Belangrijk
In productieomgevingen moet het certificaat worden ondertekend door een certificeringsinstantie.
Een certificaat maken
Optie 1: Azure Key Vault gebruiken (aanbevolen)
Als u een certificaat wilt maken, kunt u Azure Key Vault gebruiken, met opties voor zelfondertekende certificaten en integraties met certificaatverlenerproviders voor ondertekende certificaten. Aanbevolen instellingen zijn onder andere:
- Onderwerp:
CN=<yourapiname>.<tenantname>.onmicrosoft.com
- Inhoudstype:
PKCS #12
- Levensduur Acton-type:
Email all contacts at a given percentage lifetime
ofEmail all contacts a given number of days before expiry
- Type sleutel:
RSA
- Sleutelgrootte:
2048
- Exporteerbare persoonlijke sleutel:
Yes
(om het.pfx
-bestand te kunnen exporteren)
Vervolgens kunt u het certificaat exporteren.
Optie 2: een zelfondertekend certificaat voorbereiden met behulp van de PowerShell-module
Als u nog geen certificaat hebt, kunt u een zelfondertekend certificaat gebruiken. Een zelfondertekend certificaat is een beveiligingscertificaat dat niet is ondertekend door een certificeringsinstantie (CA) en geen beveiligingsgaranties biedt van een certificaat dat is ondertekend door een CA.
Gebruik in Windows de cmdlet New-SelfSignedCertificate in PowerShell om een certificaat te genereren.
Voer de volgende PowerShell-opdracht uit om een zelfondertekend certificaat te genereren. Wijzig indien van toepassing het argument
-Subject
voor uw toepassing en de Azure AD B2C-tenantnaam, zoalscontosowebapp.contoso.onmicrosoft.com
. U kunt ook de-NotAfter
-datum aanpassen om een andere vervaldatum voor het certificaat op te geven.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"
Ga op een Windows-computer naar Gebruikerscertificaten beheren en selecteer dit
Selecteer onder Certificaten - huidige gebruiker de optie Persoonlijk>Certificaten>yourappname.yourtenant.onmicrosoft.com.
Selecteer het certificaat en vervolgens Actie>Alle taken>Exporteren.
Selecteer Volgende>Ja, exporteer de persoonlijke sleutel>Volgende.
Accepteer de standaardwaarden voor Exportbestandsindeling en selecteer vervolgens Volgende.
Schakel de optie Wachtwoord in, voer een wachtwoord in voor het certificaat en selecteer vervolgens Volgende.
Als u een locatie wilt opgeven om uw certificaat in op te slaan, selecteert u Bladeren en navigeert u naar de gewenste map.
Voer in het venster Opslaan als een bestandsnaam in en selecteer vervolgens Opslaan.
Selecteer Volgende>voltooien.
Azure AD B2C accepteert alleen het PFX-bestandswachtwoord als het wachtwoord is versleuteld met de TripleDES-SHA1-optie in het hulpprogramma voor het exporteren vanuit het Windows-certificaatarchief, in plaats van AES256-SHA256.
Uw API-connector configureren
Voer de volgende stappen uit om een API-connector te configureren met clientcertificaatverificatie:
- Meld u aan bij de Azure-portal.
- Selecteer onder Azure-services de optie Azure AD B2C.
- Selecteer API-connectors en selecteer vervolgens de API-connector die u wilt configureren.
- Voor het Verificatietype selecteert u Certificaat.
- Selecteer in het vak Certificaat uploaden het PFX-bestand van uw certificaat met een persoonlijke sleutel.
- Typ in het vak Wachtwoord invoeren het wachtwoord van het certificaat.
- Selecteer Opslaan.
Autorisatiebeslissingen uitvoeren
Uw API moet de autorisatie implementeren op basis van verzonden clientcertificaten om de API-eindpunten te beveiligen. Voor Azure App Service en Azure Functions raadpleegt u wederzijdse TLS-verificatie configureren om te leren hoe u het certificaat kunt inschakelen en valideren vanuit uw API-code. U kunt Azure API Management ook gebruiken als laag voor elke API-service om eigenschappen van clientcertificaten te controleren op basis van de gewenste waarden.
Certificaten vernieuwen
Het is raadzaam om herinneringswaarschuwingen in te stellen voor wanneer uw certificaat verloopt. U moet een nieuw certificaat genereren en de bovenstaande stappen herhalen wanneer de gebruikte certificaten bijna verlopen. Als u het gebruik van een nieuw certificaat wilt 'rollen', kan uw API-service gedurende een bepaalde periode oude en nieuwe certificaten blijven accepteren terwijl het nieuwe certificaat wordt geïmplementeerd.
Als u een nieuw certificaat wilt uploaden naar een bestaande API-connector, selecteert u de API-connector onder API-connectors en klikt u op Nieuw certificaat uploaden. Het laatst geüploade certificaat, dat niet is verlopen en waarvan de begindatum is verstreken, wordt automatisch gebruikt door Azure AD B2C.
Een clientcertificaatbeleidssleutel toevoegen
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
- Selecteer Identity Experience Framework op de overzichtspagina.
- Selecteer Beleidssleutels en vervolgens Toevoegen.
- Selecteer Uploaden in het vak Opties.
- Typ RestApiClientCertificate in het vak Naam. Het voorvoegsel B2C_1A_ automatisch wordt toegevoegd.
- Selecteer in het vak Bestand uploaden het PFX-bestand van uw certificaat met een persoonlijke sleutel.
- Typ in het vak Wachtwoord het wachtwoord van het certificaat.
- Selecteer Maken.
Uw TECHNISCHE REST API-profiel configureren voor het gebruik van verificatie van clientcertificaten
Nadat u de benodigde sleutel hebt gemaakt, configureert u de metagegevens van uw TECHNISCHE REST API-profiel om te verwijzen naar het clientcertificaat.
- Open in uw werkmap het extensiebeleidsbestand (TrustFrameworkExtensions.xml).
- Zoek naar het technische profiel van de REST API. Bijvoorbeeld
REST-ValidateProfile
ofREST-GetProfile
. - Zoek het
<Metadata>
element. - Wijzig het AuthenticationType in
ClientCertificate
. - Wijzig allowInsecureAuthInProduction in
false
. - Voeg direct na het afsluitende
</Metadata>
element het volgende XML-fragment toe:<CryptographicKeys> <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" /> </CryptographicKeys>
Het volgende XML-fragment is een voorbeeld van een RESTful-technisch profiel dat is geconfigureerd met een HTTP-clientcertificaat:
<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 bearer-verificatie
Bearer-tokenverificatie wordt gedefinieerd in OAuth2.0 Authorization Framework: Bearer Token Usage (RFC 6750). In bearer-tokenverificatie verzendt Azure AD B2C een HTTP-aanvraag met een token in de autorisatieheader.
Authorization: Bearer <token>
Een bearer-token is een ondoorzichtige tekenreeks. Het kan een JWT-toegangstoken zijn of een tekenreeks die door de REST API wordt verwacht dat Azure AD B2C wordt verzonden in de autorisatieheader. Azure AD B2C ondersteunt de volgende typen:
- Bearer-token. Als u het bearer-token wilt kunnen verzenden in het restful technische profiel, moet uw beleid eerst het bearer-token verkrijgen en vervolgens gebruiken in het RESTful-technische profiel.
- Statisch bearer-token. Gebruik deze benadering wanneer uw REST API een toegangstoken op lange termijn uitgeeft. Als u een statisch bearer-token wilt gebruiken, maakt u een beleidssleutel en maakt u een verwijzing van het RESTful-technische profiel naar uw beleidssleutel.
OAuth2 Bearer gebruiken
De volgende stappen laten zien hoe u clientreferenties gebruikt om een Bearer-token te verkrijgen en door te geven aan de autorisatieheader van de REST API-aanroepen.
Een claim definiëren om het Bearer-token op te slaan
Een claim maakt tijdelijke opslag van gegevens mogelijk tijdens de uitvoering van een Azure AD B2C-beleid. Het claimschema is de plek waar u uw claims declareert. Het toegangstoken moet worden opgeslagen in een claim die later moet worden gebruikt.
- Open het uitbreidingsbestand van uw beleid. Bijvoorbeeld
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
. - Zoek element BuildingBlocks. Als het element niet aanwezig is, voegt u het toe.
- Zoek naar het element ClaimsSchema. Als het element niet aanwezig is, voegt u het toe.
- Voeg de volgende claims toe aan het element ClaimsSchema .
<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>
Een toegangstoken verkrijgen
U kunt een toegangstoken op een van de verschillende manieren verkrijgen, voor de van een federatieve id-provider, door een REST API aan te roepen die een toegangstoken retourneert, door een ROPC-stroom te gebruiken of door de clientreferentiestroom te gebruiken. De clientreferentiestroom wordt vaak gebruikt voor interacties tussen servers die op de achtergrond moeten worden uitgevoerd, zonder directe interactie met een gebruiker.
Een Microsoft Entra-toegangstoken verkrijgen
In het volgende voorbeeld wordt een technisch REST API-profiel gebruikt om een aanvraag naar het Microsoft Entra-tokeneindpunt te verzenden met behulp van de clientreferenties die zijn doorgegeven als HTTP-basisverificatie. Zie Microsoft Identity Platform en de OAuth 2.0-clientreferentiestroom voor meer informatie.
Voordat het technische profiel kan communiceren met Microsoft Entra ID om een toegangstoken te verkrijgen, moet u een toepassing registreren. Azure AD B2C is afhankelijk van het Microsoft Entra-platform. U kunt de app maken in uw Azure AD B2C-tenant of in een Microsoft Entra-tenant die u beheert. Een toepassing registreren:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Selecteer Microsoft Entra ID in het linkermenu. Of selecteer Alle services en zoek en selecteer Microsoft Entra-id.
- Selecteer App-registraties en selecteer vervolgens Nieuwe registratie.
- Voer een naam in voor de toepassing. Bijvoorbeeld Client_Credentials_Auth_app.
- Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
- Selecteer Registreren.
- Noteer de toepassings-id (client).
Voor een stroom met clientreferenties moet u een toepassingsgeheim maken. Het clientgeheim wordt ook wel een toepassingswachtwoord genoemd. Uw toepassing gebruikt het geheim om een toegangstoken te verkrijgen.
- Selecteer op de pagina Microsoft Entra ID - App-registraties de toepassing die u hebt gemaakt, bijvoorbeeld Client_Credentials_Auth_app.
- Selecteer in het menu links onder Beheren de optie Certificaten en geheimen.
- Selecteer Nieuw clientgeheim.
- Voer een beschrijving voor het clientgeheim in het vak Beschrijving in. Bijvoorbeeld clientsecret1.
- Selecteer onder Verloopt een duur waarvoor het geheim geldig is en selecteer vervolgens Toevoegen.
- Registreer de waarde van het geheim voor gebruik in de code van uw clienttoepassing. Deze geheimwaarde wordt nooit meer weergegeven nadat u deze pagina hebt verlaten. U gebruikt deze waarde als het toepassingsgeheim in de code van uw toepassing.
Azure AD B2C-beleidssleutels maken
U moet de client-id en de waarde van het clientgeheim opslaan die u eerder hebt vastgelegd in uw Azure AD B2C-tenant.
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
- Selecteer Identity Experience Framework op de overzichtspagina.
- Selecteer Beleidssleutels en vervolgens Toevoegen.
- Voor Opties kiest u
Manual
. - Voer een naam in voor de beleidssleutel.
SecureRESTClientId
Het voorvoegselB2C_1A_
wordt automatisch toegevoegd aan de naam van uw sleutel. - Voer in geheim uw client-id in die u eerder hebt vastgelegd.
- Selecteer voor Sleutelgebruik de optie
Signature
. - Selecteer Maken.
- Maak een andere beleidssleutel met de volgende instellingen:
- Naam:
SecureRESTClientSecret
. - Geheim: voer uw clientgeheim in dat u eerder hebt opgenomen
- Naam:
Vervang voor ServiceUrl de naam van uw tenant door de naam van uw Microsoft Entra-tenant. Zie de RESTful technische profielreferentie voor alle beschikbare opties.
<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>
Notitie
Als u de grant_type
of scope
claims in andere technische profielen gebruikt, raden we u aan ook op te geven DefaultValue
en te gebruiken AlwaysUseDefaultValue="true"
om mogelijke conflicten in binding met de onjuiste waarde te voorkomen.
Het TECHNISCHE REST-profiel wijzigen om bearer-tokenverificatie te gebruiken
Als u bearer-tokenverificatie in uw aangepaste beleid wilt ondersteunen, wijzigt u het technische profiel van de REST API met behulp van de volgende stappen:
Open in uw werkmap het bestand TrustFrameworkExtensions.xml extension policy.
Zoek naar het
<TechnicalProfile>
knooppunt dat het bevatId="REST-API-SignUp"
.Zoek het
<Metadata>
element.Wijzig het AuthenticationType als volgt in Bearer:
<Item Key="AuthenticationType">Bearer</Item>
Wijzig of voeg het UseClaimAsBearerToken als volgt toe aan bearerToken. De bearerToken is de naam van de claim waaruit het bearer-token wordt opgehaald (de uitvoerclaim van
REST-AcquireAccessToken
).<Item Key="UseClaimAsBearerToken">bearerToken</Item>
Voeg de claim uit de vorige stap toe als invoerclaim:
<InputClaim ClaimTypeReferenceId="bearerToken"/>
Nadat u uw beleid hebt bijgewerkt, moet uw technische profiel er ongeveer uitzien als de volgende XML-code:
<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>
Het TECHNISCHE REST-profiel aanroepen
Als u het REST-GetProfile
technische profiel wilt aanroepen, moet u eerst een Microsoft Entra-toegangstoken verkrijgen met behulp van het REST-AcquireAccessToken
technische profiel. In het volgende voorbeeld ziet u hoe u het REST-GetProfile
technische profiel aanroept vanuit een technisch validatieprofiel:
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
<ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>
In het volgende voorbeeld ziet u hoe u het REST-GetProfile
technische profiel aanroept vanuit een gebruikerstraject of een subtraject:
<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>
Een statische OAuth2-bearer gebruiken
De OAuth2 Bearer-tokenbeleidssleutel toevoegen
Als u een technisch REST API-profiel wilt configureren met een OAuth2 Bearer-token, moet u een toegangstoken verkrijgen van de EIGENAAR van de REST API. Maak vervolgens de volgende cryptografische sleutel om het Bearer-token op te slaan.
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
- Selecteer Identity Experience Framework op de overzichtspagina.
- Selecteer Beleidssleutels en vervolgens Toevoegen.
- Voor Opties kiest u
Manual
. - Voer een naam in voor de beleidssleutel. Bijvoorbeeld
RestApiBearerToken
. Het voorvoegselB2C_1A_
wordt automatisch toegevoegd aan de naam van uw sleutel. - Voor in Geheim het clientgeheim in dat u eerder hebt genoteerd.
- Selecteer voor Sleutelgebruik de optie
Encryption
. - Selecteer Maken.
Uw technische REST API-profiel configureren voor het gebruik van de bearer-tokenbeleidssleutel
Nadat u de benodigde sleutel hebt gemaakt, configureert u de metagegevens van uw TECHNISCHE REST API-profiel om te verwijzen naar het Bearer-token.
- Open in uw werkmap het extensiebeleidsbestand (TrustFrameworkExtensions.xml).
- Zoek naar het technische profiel van de REST API. Bijvoorbeeld
REST-ValidateProfile
ofREST-GetProfile
. - Zoek het
<Metadata>
element. - Wijzig het AuthenticationType in
Bearer
. - Wijzig allowInsecureAuthInProduction in
false
. - Voeg direct na het afsluitende
</Metadata>
element het volgende XML-fragment toe:<CryptographicKeys> <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" /> </CryptographicKeys>
Het volgende XML-fragment is een voorbeeld van een RESTful-technisch profiel dat is geconfigureerd met bearer-tokenverificatie:
<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>
Voeg de referentie voor het technische validatieprofiel toe aan het technische registratieprofiel, dat het REST-AcquireAccessToken
aanroept. Dit gedrag betekent dat Azure AD B2C wordt verplaatst naar het maken van het account in de directory pas na een geslaagde validatie.
Bijvoorbeeld:
```XML
<ValidationTechnicalProfiles>
....
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
....
</ValidationTechnicalProfiles>
Verificatie via een API-sleutel
Sommige services gebruiken een 'API-sleutel'-mechanisme om de toegang tot uw HTTP-eindpunten tijdens de ontwikkeling te verbergen door de aanroeper te verplichten een unieke sleutel op te nemen als een HTTP-header of HTTP-queryparameter. Voor Azure Functions kunt u dit doen door de code
als een queryparameter op te nemen in de Eindpunt-URL van uw API-connector. Bijvoorbeeld https://contoso.azurewebsites.net/api/endpoint
?code=0123456789
).
Dit is geen mechanisme dat alleen in productie moet worden gebruikt. Daarom is configuratie voor basis- of certificaatverificatie altijd vereist. Als u geen verificatiemethode wilt implementeren voor ontwikkelingsdoeleinden (niet aanbevolen), kunt u 'basisverificatie' selecteren in de configuratie van de API-connector en tijdelijke waarden gebruiken voor username
en password
die uw API kan negeren terwijl u de juiste autorisatie implementeert.
API-sleutel is een unieke id die wordt gebruikt om een gebruiker te verifiëren voor toegang tot een REST API-eindpunt. De sleutel wordt verzonden in een aangepaste HTTP-header. De Http-trigger van Azure Functions gebruikt bijvoorbeeld de x-functions-key
HTTP-header om de aanvrager te identificeren.
Beleidssleutels voor API-sleutels toevoegen
Als u een technisch REST API-profiel met API-sleutelverificatie wilt configureren, maakt u de volgende cryptografische sleutel om de API-sleutel op te slaan:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
- Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
- Selecteer Identity Experience Framework op de overzichtspagina.
- Selecteer Beleidssleutels en vervolgens Toevoegen.
- Selecteer Handmatig voor Opties.
- Bij Naam typt u RestApiKey. Het voorvoegsel B2C_1A_ kan automatisch worden toegevoegd.
- Voer in het vak Geheim de REST API-sleutel in.
- Voor sleutelgebruik selecteert u Versleuteling.
- Selecteer Maken.
Uw technische REST API-profiel configureren voor het gebruik van API-sleutelverificatie
Nadat u de benodigde sleutel hebt gemaakt, configureert u de metagegevens van uw TECHNISCHE REST API-profiel om te verwijzen naar de referenties.
- Open in uw werkmap het extensiebeleidsbestand (TrustFrameworkExtensions.xml).
- Zoek naar het technische profiel van de REST API. Bijvoorbeeld
REST-ValidateProfile
ofREST-GetProfile
. - Zoek het
<Metadata>
element. - Wijzig het AuthenticationType in
ApiKeyHeader
. - Wijzig allowInsecureAuthInProduction in
false
. - Voeg direct na het afsluitende
</Metadata>
element het volgende XML-fragment toe:<CryptographicKeys> <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" /> </CryptographicKeys>
De id van de cryptografische sleutel definieert de HTTP-header. In dit voorbeeld wordt de API-sleutel verzonden als x-functions-sleutel.
Het volgende XML-fragment is een voorbeeld van een RESTful-technisch profiel dat is geconfigureerd voor het aanroepen van een Azure-functie met API-sleutelverificatie:
<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>
Volgende stappen
- Ga aan de slag met onze voorbeelden.
- Meer informatie over het restful technische profielelement in de aangepaste beleidsreferentie.