Share via


Uw API beveiligen met een API-connector in Microsoft Entra Externe ID selfservicegebruikersstromen voor registratie

Van toepassing op:Groene cirkel met een wit vinkje.Externe tenantsWitte cirkel met een grijs X-symbool.van werknemers (meer informatie)

Wanneer u een REST API in een Microsoft Entra Externe ID selfservicegebruikersstroom voor registratie integreert, moet u uw REST API-eindpunt beveiligen met verificatie. De REST API-verificatie zorgt ervoor dat alleen services met de juiste referenties, zoals Microsoft Entra-id, uw eindpunt kunnen aanroepen. In dit artikel wordt beschreven hoe u REST API kunt beveiligen.

Vereisten

Voer de stappen uit in de handleiding Scenario: Een API-connector toevoegen aan een gebruikersstroom voor registratie.

U kunt uw API-eindpunt beveiligen met behulp van HTTP-basisverificatie of HTTPS-clientcertificaatverificatie. In beide gevallen geeft u de referenties op die door Microsoft Entra ID worden gebruikt bij het aanroepen van uw API-eindpunt. Uw API-eindpunt controleert vervolgens de referenties en voert autorisatiebeslissingen uit.

HTTP-basisverificatie

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

HTTP-basisverificatie wordt gedefinieerd in RFC 2617. Basisverificatie werkt als volgt: Microsoft Entra-id verzendt een HTTP-aanvraag met de clientreferenties (username en password) in de Authorization 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:

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een gebruiker Beheer istrator.
  2. Blader naar overzicht>van externe identiteiten.>
  3. Selecteer Alle API-connectors en selecteer vervolgens de API Verbinding maken or u wilt configureren.
  4. Voor het Verificatietype selecteert u Basis.
  5. Geef de Gebruikersnaam en het Wachtwoord van uw REST API-eindpunt op. Schermopname van de basisverificatieconfiguratie voor een API-connector.
  6. Selecteer Opslaan.

Verificatie van HTTPS-clientcertificaten

Verificatie van clientcertificaten is een wederzijdse verificatie op basis van certificaten, waarbij de client, Microsoft Entra-id, het clientcertificaat aan de server verstrekt 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 Microsoft Entra-id, 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

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 of Email 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 PowerShell

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.

  1. 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, zoals contosowebapp.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"
    
  2. Ga op een Windows-computer naar Gebruikerscertificaten beheren en selecteer dit

  3. Selecteer onder Certificaten - huidige gebruiker de optie Persoonlijk>Certificaten>yourappname.yourtenant.onmicrosoft.com.

  4. Selecteer het certificaat en vervolgens Actie>Alle taken>Exporteren.

  5. Selecteer Volgende>Ja, exporteer de persoonlijke sleutel>Volgende.

  6. Accepteer de standaardwaarden voor Exportbestandsindeling en selecteer vervolgens Volgende.

  7. Schakel de optie Wachtwoord in, voer een wachtwoord in voor het certificaat en selecteer vervolgens Volgende.

  8. Als u een locatie wilt opgeven om uw certificaat in op te slaan, selecteert u Bladeren en navigeert u naar de gewenste map.

  9. Voer in het venster Opslaan als een bestandsnaam in en selecteer vervolgens Opslaan.

  10. 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:

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een gebruiker Beheer istrator.
  2. Blader naar overzicht>van externe identiteiten.>
  3. Selecteer Alle API-connectors en selecteer vervolgens de API Verbinding maken or u wilt configureren.
  4. Voor het Verificatietype selecteert u Certificaat.
  5. Selecteer in het vak Certificaat uploaden het PFX-bestand van uw certificaat met een persoonlijke sleutel.
  6. Typ in het vak Wachtwoord invoeren het wachtwoord van het certificaat. Schermopname van de configuratie van certificaatverificatie voor een API-connector.
  7. 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 selecteert u bij Nieuw certificaat uploaden. Het laatst geüploade certificaat dat niet is verlopen en waarvan de begindatum is verstreken, wordt automatisch gebruikt door Microsoft Entra-id.

Schermopname van een nieuw certificaat, wanneer er al een bestaat.

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 (niet aanbevolen) wilt implementeren voor ontwikkelingsdoeleinden, kunt u 'basisverificatie' selecteren in de configuratie van de API-connector en tijdelijke waarden username gebruiken voor en password dat uw API kan negeren terwijl u de juiste autorisatie implementeert.

Volgende stappen