Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.
Wenn Sie eine REST-API in einen Azure AD B2C-Benutzerablauf integrieren, müssen Sie Ihren REST-API-Endpunkt mit Authentifizierung schützen. Die REST-API-Authentifizierung stellt sicher, dass nur Dienste mit ordnungsgemäßen Anmeldeinformationen, z. B. Azure AD B2C, Aufrufe an Ihren Endpunkt tätigen können. In diesem Artikel erfahren Sie, wie Sie die REST-API schützen können.
Voraussetzungen
Führen Sie die Schritte im Leitfaden Hinzufügen eines API-Connectors zu einem Benutzerflow für die Registrierung aus.
Sie können Ihren API-Endpunkt entweder mithilfe der HTTP-Standardauthentifizierung oder mithilfe der HTTPS-Clientzertifikatauthentifizierung schützen. In beiden Fällen geben Sie die Anmeldeinformationen an, die Azure AD B2C beim Aufrufen Ihres API-Endpunkts verwendet. Der API-Endpunkt überprüft dann die Anmeldeinformationen und führt Autorisierungsentscheidungen aus.
HTTP-Standardauthentifizierung
Die HTTP-Standardauthentifizierung ist in RFC 2617 definiert. Die Standardauthentifizierung funktioniert wie folgt:
Azure AD B2C sendet eine HTTP-Anforderung mit den Clientanmeldeinformationen (
username
undpassword
) imAuthorization
Header.Die Anmeldeinformationen werden als Base64-codierte Zeichenfolge im Format
username:password
angegeben.Ihre API ist dann für die Überprüfung dieser Werte verantwortlich, um andere Autorisierungsentscheidungen zu treffen.
Führen Sie die folgenden Schritte aus, um einen API-Connector mit HTTP-Standardauthentifizierung zu konfigurieren:
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie unter Azure-DiensteAzure AD B2C aus, oder suchen Sie nach Azure AD B2C, und wählen Sie dann Azure AD B2C aus.
- Wählen Sie API-Connectors aus, und wählen Sie dann den API-Connector aus, den Sie konfigurieren möchten.
- Wählen Sie für den Authentifizierungstyp " Einfach" aus.
- Geben Sie den Benutzernamen und das Kennwort Ihres REST-API-Endpunkts an.
- Wählen Sie Speichern aus.
Hinzufügen von REST-API-Benutzernamen- und Kennwortrichtlinienschlüsseln
Um ein technisches REST-API-Profil mit HTTP-Standardauthentifizierung zu konfigurieren, erstellen Sie die folgenden kryptografischen Schlüssel, um den Benutzernamen und das Kennwort zu speichern:
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
- Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
- Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
- Wählen Sie unter "Optionen" die Option "Manuell" aus.
- Geben Sie für NameRestApiUsername ein. Das Präfix B2C_1A_ kann automatisch hinzugefügt werden.
- Geben Sie im Feld "Geheim" den BENUTZERNAMEN der REST-API ein.
- Wählen Sie für die Schlüsselverwendungdie Option "Verschlüsselung" aus.
- Wählen Sie "Erstellen" aus.
- Wählen Sie erneut Richtlinienschlüssel aus.
- Wählen Sie Hinzufügen aus.
- Wählen Sie unter "Optionen" die Option "Manuell" aus.
- Geben Sie "RestApiPassword" für "Name" ein. Das Präfix B2C_1A_ kann automatisch hinzugefügt werden.
- Geben Sie im Feld "Geheim" das REST-API-Kennwort ein.
- Wählen Sie für die Schlüsselverwendungdie Option "Verschlüsselung" aus.
- Wählen Sie "Erstellen" aus.
Konfigurieren Ihres technischen REST-API-Profils für die Verwendung der HTTP-Standardauthentifizierung
Konfigurieren Sie nach dem Erstellen der erforderlichen Schlüssel die Metadaten Ihres technischen REST-API-Profils so, dass sie auf die Anmeldeinformationen verweisen.
- Öffnen Sie in Ihrem Arbeitsverzeichnis die Erweiterungsrichtliniendatei („TrustFrameworkExtensions.xml“).
- Suchen Sie nach dem technischen Profil der REST-API. Beispiel
REST-ValidateProfile
: oderREST-GetProfile
. - Suchen Sie das
<Metadata>
-Element. - Ändern Sie den AuthenticationType in
Basic
. - Ändern Sie AllowInsecureAuthInProduction auf
false
. - Fügen Sie unmittelbar nach dem schließende
</Metadata>
Element den folgenden XML-Codeausschnitt hinzu:<CryptographicKeys> <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" /> <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" /> </CryptographicKeys>
Der folgende XML-Codeausschnitt ist ein Beispiel für ein RESTful-technisches Profil, das mit der HTTP-Standardauthentifizierung konfiguriert ist:
<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>
HTTPS-Clientzertifikatauthentifizierung
Die Clientzertifikatauthentifizierung ist eine gegenseitige zertifikatbasierte Authentifizierung, bei der der Client, Azure AD B2C, sein Clientzertifikat für den Server bereitstellt, um seine Identität zu beweisen. Dies erfolgt im Rahmen des SSL-Handshakes. Ihre API ist für die Überprüfung der Zertifikate verantwortlich, die zu einem gültigen Client gehören, z. B. Azure AD B2C, und die Durchführung von Autorisierungsentscheidungen. Bei dem Clientzertifikat handelt es sich um ein digitales X.509-Zertifikat.
Von Bedeutung
In Produktionsumgebungen muss das Zertifikat von einer Zertifizierungsstelle signiert werden.
Erstellen eines Zertifikats
Option 1: Verwenden von Azure Key Vault (empfohlen)
Zum Erstellen eines Zertifikats können Sie Azure Key Vault verwenden, das Optionen für selbstsignierte Zertifikate und Integrationen mit Zertifikatherausgeberanbietern für signierte Zertifikate enthält. Empfohlene Einstellungen umfassen:
-
Betreff:
CN=<yourapiname>.<tenantname>.onmicrosoft.com
-
Inhaltstyp:
PKCS #12
-
Lebensdauer-Aktionstyp:
Email all contacts at a given percentage lifetime
oderEmail all contacts a given number of days before expiry
-
Schlüsseltyp:
RSA
-
Schlüsselgröße:
2048
-
Exportierbarer privater Schlüssel:
Yes
(um die Datei exportieren.pfx
zu können)
Anschließend können Sie das Zertifikat exportieren.
Option 2: Vorbereiten eines selbstsignierten Zertifikats mithilfe des PowerShell-Moduls
Wenn Sie noch nicht über ein Zertifikat verfügen, können Sie ein selbstsigniertes Zertifikat verwenden. Ein selbstsigniertes Zertifikat ist ein Sicherheitszertifikat, das nicht von einer Zertifizierungsstelle (ZS) signiert ist und nicht die Sicherheitsgarantien eines Zertifikats bietet, das von einer Zertifizierungsstelle signiert wurde.
Verwenden Sie unter Windows das Cmdlet New-SelfSignedCertificate in PowerShell, um ein Zertifikat zu generieren.
Führen Sie den folgenden PowerShell-Befehl aus, um ein selbstsigniertes Zertifikat zu generieren. Ändern Sie das Argument
-Subject
entsprechend Ihrer Anwendung und dem Azure AD B2C-Mandantennamen, z. B.contosowebapp.contoso.onmicrosoft.com
. Sie können auch das-NotAfter
-Datum anpassen, um einen anderen Ablaufzeitpunkt für das Zertifikat anzugeben.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"
Suchen sie auf Windows-Computern nach Benutzerzertifikaten, und wählen Sie "Benutzerzertifikate verwalten" aus.
Wählen Sie unter Zertifikate – Aktueller BenutzerPersönliche>Zertifikate>yourappname.yourtenant.onmicrosoft.com aus.
Wählen Sie das Zertifikat aus und dann Aktion>Alle Aufgaben>Exportieren.
Wählen Sie "Weiter> Ja" aus, exportieren Sie den privaten Schlüssel>"Weiter".
Übernehmen Sie die Standardwerte für das Exportdateiformat, und wählen Sie dann "Weiter" aus.
Option "Kennwort aktivieren", geben Sie ein Kennwort für das Zertifikat ein, und wählen Sie dann "Weiter" aus.
Wenn Sie einen Speicherort angeben möchten, an dem Ihr Zertifikat gespeichert werden soll, wählen Sie " Durchsuchen" aus, und navigieren Sie zu einem Verzeichnis Ihrer Wahl.
Geben Sie im Fenster "Speichern unter " einen Dateinamen ein, und wählen Sie dann " Speichern" aus.
Wählen Sie "Nächstes>Ende" aus.
Damit das Kennwort für die PFX-Datei in Azure AD B2C akzeptiert wird, muss es statt mit „AES256-SHA256“ mit der Option „TripleDES-SHA1“ im Exporthilfsprogramm des Windows-Zertifikatspeichers verschlüsselt werden.
Konfigurieren Ihres API-Connectors
Führen Sie die folgenden Schritte aus, um einen API-Connector mit Authentifizierung über ein Clientzertifikat zu konfigurieren:
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie unter Azure-DiensteAzure AD B2C aus.
- Wählen Sie API-Connectors aus, und wählen Sie dann den API-Connector aus, den Sie konfigurieren möchten.
- Wählen Sie für den Authentifizierungstyp"Zertifikat" aus.
- Wählen Sie im Feld "Zertifikat hochladen " die PFX-Datei Ihres Zertifikats mit einem privaten Schlüssel aus.
-
Geben Sie im Feld "Kennwort eingeben" das Kennwort des Zertifikats ein.
- Wählen Sie Speichern aus.
Treffen von Autorisierungsentscheidungen
Ihre API muss die Autorisierung basierend auf gesendeten Client-Zertifikaten implementieren, um die API-Endpunkte zu schützen. Für Azure App Service und Azure Functions siehe konfigurieren TLS gegenseitige Authentifizierung, um zu erfahren, wie das Zertifikat aus Ihrem API-Code aktiviert und validiert wird. Alternativ können Sie Azure API Management als Ebene vor jedem API-Dienst verwenden, um Clientzertifikateigenschaften anhand der gewünschten Werte zu überprüfen.
Erneuern von Zertifikaten
Es wird empfohlen, Erinnerungswarnungen für den Ablauf Ihres Zertifikats festzulegen. Sie müssen ein neues Zertifikat generieren und die obigen Schritte wiederholen, wenn verwendete Zertifikate bald ablaufen. Für den Übergang zu einem neuen Zertifikat kann Ihr API-Dienst während der Bereitstellung des neuen Zertifikats vorübergehend alte und neue Zertifikate akzeptieren.
Um ein neues Zertifikat in einen vorhandenen API-Connector hochzuladen, wählen Sie den API-Connector unter API-Connectors aus, und klicken Sie auf " Neues Zertifikat hochladen". Das zuletzt hochgeladene Zertifikat, das nicht abgelaufen ist und dessen Startdatum bereits vergangen ist, wird automatisch von Azure AD B2C verwendet.
Hinzufügen eines Schlüssels für die Clientzertifikatrichtlinie
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
- Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
- Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
- Wählen Sie im Feld "Optionen" die Option "Hochladen" aus.
- Geben Sie im Name-Feld RestApiClientCertificate ein. Das Präfix B2C_1A_ wird automatisch hinzugefügt.
- Wählen Sie im Feld "Dateiupload " die PFX-Datei Ihres Zertifikats mit einem privaten Schlüssel aus.
- Geben Sie im Feld "Kennwort " das Kennwort des Zertifikats ein.
- Wählen Sie "Erstellen" aus.
Konfigurieren Ihres technischen REST-API-Profils für die Verwendung der Clientzertifikatauthentifizierung
Konfigurieren Sie nach dem Erstellen des erforderlichen Schlüssels die technischen PROFILmetadaten der REST-API, um auf das Clientzertifikat zu verweisen.
- Öffnen Sie in Ihrem Arbeitsverzeichnis die Erweiterungsrichtliniendatei („TrustFrameworkExtensions.xml“).
- Suchen Sie nach dem technischen Profil der REST-API. Beispiel
REST-ValidateProfile
: oderREST-GetProfile
. - Suchen Sie das
<Metadata>
-Element. - Ändern Sie den AuthenticationType in
ClientCertificate
. - Ändern Sie AllowInsecureAuthInProduction auf
false
. - Fügen Sie unmittelbar nach dem schließende
</Metadata>
Element den folgenden XML-Codeausschnitt hinzu:<CryptographicKeys> <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" /> </CryptographicKeys>
Der folgende XML-Codeausschnitt ist ein Beispiel für ein RESTful-technisches Profil, das mit einem HTTP-Clientzertifikat konfiguriert ist:
<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-Bearerauthentifizierung
Die Bearertokenauthentifizierung wird im OAuth2.0-Autorisierungsframework definiert: Bearer Token Usage (RFC 6750). Bei der Bearertokenauthentifizierung sendet Azure AD B2C eine HTTP-Anforderung mit einem Token im Autorisierungsheader.
Authorization: Bearer <token>
Ein Bearertoken ist eine nicht transparente Zeichenfolge. Es kann sich um ein JWT-Zugriffstoken oder eine beliebige Zeichenfolge handeln, die die REST-API erwartet, dass Azure AD B2C im Autorisierungsheader sendet. Azure AD B2C unterstützt die folgenden Typen:
- Bearer-Token. Um das Bearertoken im RESTful-technischen Profil zu senden, muss Ihre Richtlinie zuerst das Bearertoken erwerben und dann im technischen Profil von RESTful verwenden.
- Statisches Bearertoken. Verwenden Sie diesen Ansatz, wenn Ihre REST-API ein langfristiges Zugriffstoken ausgibt. Um ein statisches Bearertoken zu verwenden, erstellen Sie einen Richtlinienschlüssel, und verweisen Sie vom RESTful-technischen Profil auf Ihren Richtlinienschlüssel.
Verwenden von OAuth2 Bearer
Die folgenden Schritte veranschaulichen, wie Sie Client-Anmeldeinformationen verwenden, um ein Bearer-Token abzurufen und ihn an den Autorisierungsheader der REST-API-Aufrufe zu übertragen.
Definieren eines Anspruchs zum Speichern des Bearertokens
Ein Anspruch bietet eine temporäre Speicherung von Daten während der Ausführung einer Azure AD B2C-Richtlinie. Das Anspruchsschema ist der Ort, an dem Sie Ihre Ansprüche deklarieren. Das Zugriffstoken muss in einem Anspruch gespeichert werden, der später verwendet werden soll.
- Öffnen Sie die Erweiterungsdatei Ihrer Richtlinie. Beispiel:
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
. - Suchen Sie nach dem BuildingBlocks-Element . Wenn das Element nicht vorhanden ist, fügen Sie es hinzu.
- Suchen Sie das ClaimsSchema-Element . Wenn das Element nicht vorhanden ist, fügen Sie es hinzu.
- Fügen Sie dem ClaimsSchema-Element die folgenden Ansprüche hinzu.
<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>
Abrufen eines Zugriffstokens
Sie können ein Zugriffstoken auf eine von mehreren Arten abrufen, für den von einem Verbundidentitätsanbieter, indem Sie eine REST-API aufrufen, die ein Zugriffstoken zurückgibt, mithilfe eines ROPC-Flusses oder mithilfe des Clientanmeldeinformationsflusses. Der Client-Anmeldeinformationsfluss wird häufig für Server-zu-Server-Interaktionen verwendet, die im Hintergrund ausgeführt werden müssen, ohne dass unmittelbare Benutzerinteraktion erforderlich ist.
Warnung
Microsoft empfiehlt, dass Sie nicht den ROPC-Flow verwenden. Dieser Flow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die in anderen Flows nicht vorhanden sind. Verwenden Sie diesen Flow nur, wenn kein anderer Flow verfügbar ist, der mehr Sicherheit bietet.
Erhalt eines Microsoft Entra-Zugriffstokens
Im folgenden Beispiel wird ein technisches REST-API-Profil verwendet, um eine Anforderung an den Microsoft Entra-Tokenendpunkt mithilfe der Clientanmeldeinformationen zu senden, die als HTTP-Standardauthentifizierung übergeben werden. Weitere Informationen finden Sie unter Microsoft Identity Platform und der Fluss von OAuth 2.0-Clientanmeldeinformationen.
Bevor das technische Profil mit microsoft Entra ID interagieren kann, um ein Zugriffstoken zu erhalten, müssen Sie eine Anwendung registrieren. Azure AD B2C basiert auf der Microsoft Entra-Plattform. Sie können die App in Ihrem Azure AD B2C-Mandanten oder in einem beliebigen Microsoft Entra-Mandanten erstellen, den Sie verwalten. So registrieren Sie eine Anwendung:
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Wählen Sie im linken Menü Microsoft Entra ID aus. Oder wählen Sie "Alle Dienste " aus, und suchen Sie nach "Microsoft Entra-ID".
- Wählen Sie App-Registrierungen aus, und wählen Sie dann Registrierung einer neuen Anwendung aus.
- Geben Sie einen Namen für die Anwendung ein. Beispiel: Client_Credentials_Auth_app.
- Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis aus.
- Wählen Sie Registrieren aus.
- Notieren Sie die Anwendungs-ID (Client-ID).
Für einen Clientanmeldeinformationenflow müssen Sie ein Anwendungsgeheimnis erstellen. Der geheime Clientschlüssel wird auch als Anwendungskennwort bezeichnet. Ihre Anwendung verwendet das Geheimnis, um ein Zugriffstoken zu erhalten.
- Wählen Sie auf der Seite "Microsoft Entra ID – App-Registrierungen " die anwendung aus, die Sie erstellt haben, z. B. Client_Credentials_Auth_app.
- Wählen Sie im linken Menü unter "Verwalten" die Option "Zertifikate und Geheime Schlüssel" aus.
- Wählen Sie Neuen geheimen Clientschlüsselaus.
- Geben Sie im Feld Beschreibung eine Beschreibung für das Clientgeheimnis ein. Beispielsweise clientsecret1.
- Wählen Sie unter Läuft ab einen Zeitraum aus, für den das Geheimnis gültig ist, und wählen Sie dann Hinzufügen aus.
- Notieren Sie sich den Wert des Geheimnisses, das in Ihrem Clientanwendungscode verwendet werden soll. Dieser geheime Wert wird nicht erneut angezeigt, nachdem Sie diese Seite verlassen haben. Sie verwenden diesen Wert als Anwendungsgeheimnis im Code Ihrer Anwendung.
Erstellen der Azure AD B2C-Richtlinienschlüssel
Sie müssen die Client-ID und den geheimen Clientschlüsselwert speichern, den Sie zuvor in Ihrem Azure AD B2C-Mandanten aufgezeichnet haben.
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
- Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
- Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
- Wählen Sie unter "Optionen" die Option
Manual
aus. - Geben Sie einen Namen für den Richtlinienschlüssel ein.
SecureRESTClientId
Das PräfixB2C_1A_
wird automatisch dem Namen Des Schlüssels hinzugefügt. - Geben Sie in "Geheim" Ihre Client-ID ein, die Sie zuvor aufgezeichnet haben.
- Wählen Sie für die Schlüsselverwendung die Option
Signature
aus. - Wählen Sie "Erstellen" aus.
- Erstellen Sie einen anderen Richtlinienschlüssel mit den folgenden Einstellungen:
-
Vorname:
SecureRESTClientSecret
. - Geheimer Schlüssel: Geben Sie Ihren geheimen Clientschlüssel ein, den Sie zuvor aufgezeichnet haben.
-
Vorname:
Ersetzen Sie für ServiceUrl Ihren Mandantennamen durch den Namen Ihres Microsoft Entra-Mandanten. Alle verfügbaren Optionen finden Sie in der REFERENZ zum technischen Profil von 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>
Hinweis
Wenn Sie die grant_type
- oder scope
-Ansprüche in anderen technischen Profilen verwenden, empfehlen wir, dass sie auch DefaultValue
angeben und AlwaysUseDefaultValue="true"
verwenden, um potenzielle Konflikte bei der Bindung mit dem falschen Wert zu vermeiden.
Ändern des technischen REST-Profils zur Verwendung der Bearertokenauthentifizierung
Um die Bearertokenauthentifizierung in Ihrer benutzerdefinierten Richtlinie zu unterstützen, ändern Sie das technische Profil der REST-API mithilfe der folgenden Schritte:
Öffnen Sie die Erweiterungsrichtliniendatei TrustFrameworkExtensions.xml in Ihrem Arbeitsverzeichnis.
Suchen Sie nach dem
<TechnicalProfile>
Knoten, derId="REST-API-SignUp"
beinhaltet.Suchen Sie das
<Metadata>
-Element.Ändern Sie den AuthenticationType in Bearer wie folgt:
<Item Key="AuthenticationType">Bearer</Item>
Ändern Sie UseClaimAsBearerToken zu bearerToken oder fügen Sie es wie folgt hinzu. Das BearerToken ist der Name des Anspruchs, aus dem das Bearertoken abgerufen wird (der Ausgabeanspruch von
REST-AcquireAccessToken
).<Item Key="UseClaimAsBearerToken">bearerToken</Item>
Fügen Sie den Anspruch aus dem vorherigen Schritt als Eingabeanspruch hinzu:
<InputClaim ClaimTypeReferenceId="bearerToken"/>
Nachdem Sie Ihre Richtlinie aktualisiert haben, sollte Ihr technisches Profil dem folgenden XML-Code ähneln:
<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>
Aufrufen des technischen REST-Profils
Um das REST-GetProfile
technische Profil aufzurufen, müssen Sie zunächst ein Microsoft Entra-Zugriffstoken mithilfe des REST-AcquireAccessToken
technischen Profils erwerben. Das folgende Beispiel zeigt, wie Sie das REST-GetProfile
technische Profil aus einem technischen Validierungsprofil aufrufen:
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
<ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>
Das folgende Beispiel zeigt, wie Sie das REST-GetProfile
technische Profil von einer Benutzerreise oder einer Unterreise aufrufen:
<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>
Verwenden eines statischen OAuth2-Bearers
Hinzufügen des OAuth2-Bearertokenrichtlinienschlüssels
Um ein technisches REST-API-Profil mit einem OAuth2-Bearertoken zu konfigurieren, rufen Sie ein Zugriffstoken vom REST-API-Besitzer ab. Erstellen Sie dann den folgenden kryptografischen Schlüssel, um das Bearertoken zu speichern.
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
- Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
- Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
- Wählen Sie unter "Optionen" die Option
Manual
aus. - Geben Sie einen Namen für den Richtlinienschlüssel ein. Beispiel:
RestApiBearerToken
. Das PräfixB2C_1A_
wird automatisch dem Namen Des Schlüssels hinzugefügt. - Geben Sie im geheimen Schlüssel Ihren geheimen Clientschlüssel ein, den Sie zuvor aufgezeichnet haben.
- Wählen Sie für die Schlüsselverwendung die Option
Encryption
aus. - Wählen Sie "Erstellen" aus.
Konfigurieren Ihres technischen REST-API-Profils für die Verwendung des Bearertoken-Richtlinienschlüssels
Konfigurieren Sie nach dem Erstellen des erforderlichen Schlüssels die technischen PROFILmetadaten der REST-API, um auf das Bearertoken zu verweisen.
- Öffnen Sie in Ihrem Arbeitsverzeichnis die Erweiterungsrichtliniendatei („TrustFrameworkExtensions.xml“).
- Suchen Sie nach dem technischen Profil der REST-API. Beispiel
REST-ValidateProfile
: oderREST-GetProfile
. - Suchen Sie das
<Metadata>
-Element. - Ändern Sie den AuthenticationType in
Bearer
. - Ändern Sie AllowInsecureAuthInProduction auf
false
. - Fügen Sie unmittelbar nach dem schließende
</Metadata>
Element den folgenden XML-Codeausschnitt hinzu:<CryptographicKeys> <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" /> </CryptographicKeys>
Der folgende XML-Codeausschnitt ist ein Beispiel für ein technisches Profil, das mit Bearer-Token-Authentifizierung konfiguriert ist.
<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>
Fügen Sie den Verweis auf das technische Überprüfungsprofil dem technischen Profil für die Registrierung hinzu, das REST-AcquireAccessToken
aufruft. Dieses Verhalten bedeutet, dass Azure AD B2C das Konto im Verzeichnis erst nach erfolgreicher Überprüfung erstellt.
Beispiel:
```XML
<ValidationTechnicalProfiles>
....
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
....
</ValidationTechnicalProfiles>
Authentifizierung mit API-Schlüssel
Von einigen Diensten wird ein API-Schlüsselmechanismus verwendet, um den Zugriff auf Ihre HTTP-Endpunkte während der Entwicklung zu verschleiern. In diesem Fall muss der Aufrufer einen eindeutigen Schlüssel als HTTP-Header oder HTTP-Abfrageparameter einschließen. Für Azure Functions können Sie dies erreichen, indem Sie code
als Abfrageparameter in die Endpunkt-URL Ihres API-Connectors einschließen. Beispiel: https://contoso.azurewebsites.net/api/endpoint
?code=0123456789
.
Dies ist kein Mechanismus, der allein in der Produktion verwendet werden sollte. Daher ist die Konfiguration für die Standard- oder Zertifikatauthentifizierung immer erforderlich. Wenn Sie keine Authentifizierungsmethode (nicht empfohlen) für Entwicklungszwecke implementieren möchten, können Sie in der API-Connectorkonfiguration die Basis-Authentifizierung auswählen und temporäre Werte für username
und password
verwenden, die Ihre API ignorieren kann, während Sie eine ordnungsgemäße Autorisierung implementieren.
DER API-Schlüssel ist ein eindeutiger Bezeichner, der verwendet wird, um einen Benutzer für den Zugriff auf einen REST-API-Endpunkt zu authentifizieren. Der Schlüssel wird in einem benutzerdefinierten HTTP-Header gesendet. Der HTTP-Trigger für Azure Functions verwendet beispielsweise den x-functions-key
HTTP-Header, um den Anforderer zu identifizieren.
Hinzufügen von Richtlinienschlüsseln als API-Schlüssel
Um ein technisches REST-API-Profil mit API-Schlüsselauthentifizierung zu konfigurieren, erstellen Sie den folgenden kryptografischen Schlüssel zum Speichern des API-Schlüssels:
- Melden Sie sich beim Azure-Portal an.
- Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
- Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
- Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
- Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
- Wählen Sie unter "Optionen" die Option "Manuell" aus.
- Geben Sie "RestApiKey" für "Name" ein. Das Präfix B2C_1A_ kann automatisch hinzugefügt werden.
- Geben Sie im Feld "Geheim" den REST-API-Schlüssel ein.
- Wählen Sie für die Schlüsselverwendungdie Option "Verschlüsselung" aus.
- Wählen Sie "Erstellen" aus.
Konfigurieren Ihres technischen REST-API-Profils für die Verwendung der API-Schlüsselauthentifizierung
Konfigurieren Sie nach dem Erstellen des erforderlichen Schlüssels die technischen Profilmetadaten der REST-API, um auf die Zugangsdaten zu verweisen.
- Öffnen Sie in Ihrem Arbeitsverzeichnis die Erweiterungsrichtliniendatei („TrustFrameworkExtensions.xml“).
- Suchen Sie nach dem technischen Profil der REST-API. Beispiel
REST-ValidateProfile
: oderREST-GetProfile
. - Suchen Sie das
<Metadata>
-Element. - Ändern Sie den AuthenticationType in
ApiKeyHeader
. - Ändern Sie AllowInsecureAuthInProduction auf
false
. - Fügen Sie unmittelbar nach dem schließende
</Metadata>
Element den folgenden XML-Codeausschnitt hinzu:<CryptographicKeys> <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" /> </CryptographicKeys>
Die ID des kryptografischen Schlüssels definiert den HTTP-Header. In diesem Beispiel wird der API-Schlüssel als x-functions-key gesendet.
Der folgende XML-Codeausschnitt ist ein Beispiel für ein RESTful-technisches Profil, das zum Aufrufen einer Azure-Funktion mit API-Schlüsselauthentifizierung konfiguriert ist:
<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>
Verwandte Inhalte
- Erste Schritte mit unseren Beispielen.
- Erfahren Sie mehr über das RESTful Technical Profile-Element in der benutzerdefinierten Richtlinienreferenz.