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.
Um die Sicherheit für Aufrufe Ihrer APIs zu erhöhen, können Sie die Microsoft Entra-Authentifizierung über das Azure-Portal einrichten, sodass Sie Ihren Code nicht aktualisieren müssen. Alternativ können Sie die Authentifizierung über den API-Code anfordern oder erzwingen.
Es gibt folgende Möglichkeiten, Authentifizierung hinzuzufügen:
Keine Änderungen am Code: Schützen Sie Ihre API mit Microsoft Entra ID über das Azure-Portal, damit Sie Ihren Code nicht aktualisieren bzw. Ihre API nicht erneut bereitstellen müssen.
Hinweis
Bei der Microsoft Entra-Authentifizierung, die Sie im Azure-Portal aktivieren, wird standardmäßig keine fein abgestufte Autorisierung durchgeführt. Beispielsweise sperrt diese Authentifizierung Ihre API nur für einen bestimmten Mandanten und nicht für einen bestimmten Benutzer oder eine App.
Aktualisieren Sie den Code Ihrer API: Schützen Sie Ihre API, indem Sie die Zertifikatauthentifizierung oder die Microsoft Entra-Authentifizierung über Code erzwingen.
Authentifizieren von Aufrufen Ihrer API ohne Codeänderungen
Im Folgenden sind die allgemeinen Schritte für diese Methode aufgeführt:
Erstellen Sie zwei Microsoft Entra-Anwendungsidentitäten (App-Registrierung): eine für Ihre Logik-App-Ressource und eine für Ihre Web-App (oder API-App).
Verwenden Sie für die Authentifizierung von Aufrufen Ihrer API die Anmeldeinformationen (Client-ID und Geheimnis) für den Dienstprinzipal, welcher der Microsoft Entra-Anwendungsidentität für Ihre Logik-App zugeordnet ist.
Nehmen Sie die Anwendungs-IDs in die Workflowdefinition der Logik-App auf.
Teil 1: Erstellen einer Microsoft Entra-Anwendungsidentität für die Logik-App
Die Logik-App-Ressource verwendet diese Microsoft Entra-Anwendungsidentität zum Authentifizieren bei Microsoft Entra ID. Sie müssen diese Identität nur einmal für Ihren Mandanten einrichten. Sie können z.B. die gleiche Identität für alle Logik-Apps verwenden, Sie können aber auch pro Logik-App eindeutige Identitäten erstellen. Sie können diese Identitäten im Azure-Portal oder über PowerShell einrichten.
Suchen Sie im Suchfeld des Azure-Portalsdie Microsoft Entra-ID, und wählen Sie sie aus.
Vergewissern Sie sich, dass Sie sich in demselben Mandanten befinden, in dem auch die Web-App oder die API-App enthalten ist.
Tipp
Um Mandanten zu wechseln, öffnen Sie Ihr Profil in der Azure-Titelleiste, und wählen Sie „Verzeichnis wechseln“ aus.
Wählen Sie im Mandantenressourcenmenü unter "Verwalten" die Option "App-Registrierungen" aus.
Auf der Seite "App-Registrierungen " werden alle App-Registrierungen in Ihrem Mandanten angezeigt. Um nur Ihre App-Registrierungen anzuzeigen, wählen Sie Anwendungen mit Besitzer aus.
Wählen Sie auf der Symbolleiste Neue Registrierung.
Führen Sie auf der Seite "Anwendung registrieren " die folgenden Schritte aus:
Geben Sie für "Name" einen benutzerfreundlichen, benutzerorientierten Namen für die Anwendungsidentität Ihrer Logik-App an.
Wählen Sie unter "Unterstützte Kontotypen" die Option aus, die die Kontotypen am besten beschreibt, die die Anwendungsidentität verwenden oder Zugriff auf Ihre API erhalten können.
Wählen Sie unter Umleitungs-URI die Option Web als Plattform aus. Geben Sie neben dieser Option eine eindeutige URL für den Speicherort an, um die Authentifizierungsantwort zurückzugeben.
Wenn Sie fertig sind, wählen Sie "Registrieren" aus.
Auf der Registerkarte "Eigene Anwendungen " wird nun Ihre erstellte Anwendungsidentität angezeigt. Wenn diese Identität nicht angezeigt wird, wählen Sie auf der Symbolleiste Aktualisieren aus.
Wählen Sie in der Liste der App-Registrierungen Ihre neue Anwendungsidentität aus.
Wählen Sie im Navigationsmenü „Anwendungsidentität“ die Option Übersicht aus.
Kopieren Und speichern Sie auf der Seite "Übersicht " unter "Essentials" die Anwendungs-ID (Client-ID), die als Client-ID für Ihre Logik-App in Teil 3 verwendet werden soll.
Wählen Sie im Menü "Anwendungsidentität " unter " Verwalten" die Option "Zertifikate und geheime Schlüssel" aus.
Wählen Sie auf der Seite "Geheime Clientschlüssel " die Option "Neuer geheimer Clientschlüssel" aus.
Geben Sie im Bereich "Geheimen Clientschlüssel hinzufügen " für "Beschreibung" einen Namen für Ihren geheimen Schlüssel an. Wählen Sie für Expires eine Dauer für Ihr Geheimnis aus. Wenn Sie fertig sind, wählen Sie Hinzufügen aus.
Das von Ihnen erstellte Geheimnis fungiert als „Geheimnis“ bzw. Kennwort der Anwendungsidentität für die Logik-App.
Auf der Seite "Zertifikate und geheime Schlüssel" wird auf der Registerkarte " Geheime Clientschlüssel " ihr geheimer Schlüssel zusammen mit einem geheimen Wert und einer geheimen ID angezeigt.
Kopieren Sie den Geheimniswert zur späteren Verwendung. Wenn Sie Ihre Logik-App in Teil 3 konfigurieren, geben Sie diesen Wert als „Geheimnis“ oder Kennwort an.
Teil 2: Erstellen einer Microsoft Entra-Anwendungsidentität für die Web-App oder API-App
Wenn Ihre Web-App oder API-App bereits bereitgestellt wurde, können Sie die Authentifizierung aktivieren und die Anwendungsidentität im Azure-Portal erstellen. Andernfalls können Sie die Authentifizierung bei der Bereitstellung mit einer Azure Resource Manager-Vorlage aktivieren.
Erstellen der Anwendungsidentität für eine bereitgestellte Web-App oder API-App im Azure-Portal
Suchen Sie im Azure-Portal Ihre Web-App oder API-App, und wählen Sie sie aus.
Wählen Sie unter Einstellungen die Option Authentifizierung>Identitätsanbieter hinzufügen aus.
Nachdem der Bereich Identitätsanbieter hinzufügen geöffnet wurde, wählen Sie auf der Registerkarte Grundlagen in der Liste Identitätsanbieter die Option Microsoft aus, um Microsoft Entra-Identitäten zu verwenden. Wählen Sie dann Hinzufügen aus.
Erstellen Sie nun wie folgt eine Anwendungsidentität für Ihre Web-App oder API-App:
Wählen Sie unter App-Registrierungstyp die Option Neue App-Registrierung erstellen aus.
Geben Sie unter Name einen Namen für Ihre Anwendungsidentität an.
Wählen Sie unter Unterstützte Kontotypen die Kontotypen aus, die für Ihr Szenario geeignet sind.
Wählen Sie unter Zugriff einschränken die Option Authentifizierung erforderlich aus.
Wählen Sie unter Nicht authentifizierte Anforderungen die Option basierend auf Ihrem Szenario aus.
Wenn Sie fertig sind, wählen Sie Hinzufügen aus.
Im Abschnitt " Identitätsanbieter " wird nun die neue Anwendungsidentität für Ihre Web-App oder API-App angezeigt:
Tipp
Wenn die Anwendungsidentität nicht angezeigt wird, wählen Sie auf der Symbolleiste Aktualisieren aus.
Jetzt müssen Sie die Anwendungs-ID (Client) und die Mandanten-ID für die Anwendungsidentität suchen, die Sie eben für Ihre Web-App oder API-App erstellt haben. Sie verwenden diese IDs in Teil 3. Fahren Sie mit den folgenden Schritten für das Azure-Portal fort.
Finden Sie die Client-ID und Mandanten-ID der Anwendungsidentität für Ihre Web-App oder API-App im Azure-Portal
Wählen Sie im Menü "Web App " unter "Verwalten" die Option "Authentifizierung" aus.
Suchen Sie im Abschnitt Identitätsanbieter die zuvor erstellte Anwendungsidentität. Wählen Sie den Namen der Anwendungsidentität aus.
Suchen Sie auf der Seite "Übersicht " die Werte für die Anwendungs-ID (Client-ID) und die Verzeichnis-ID (Mandanten-ID). Kopieren und speichern Sie die Werte zur Verwendung in Teil 3.
Sie können die GUID (Mandanten-ID) bei Bedarf auch in der Bereitstellungsvorlage Ihrer Web-App oder API-App verwenden. Diese GUID ist Ihre spezifische Mandanten-GUID („Mandanten-ID“) und sollte in dieser URL angezeigt werden:
https://sts.windows.net/<tenant-GUID>
Einrichten der Authentifizierung bei der Bereitstellung mit einer Azure Resource Manager-Vorlage
Wenn Sie eine ARM-Vorlage (Azure Resource Manager) verwenden, müssen Sie dennoch eine Microsoft Entra-Anwendungsidentität für Ihre Web-App oder API-App erstellen, die sich von der App-Identität für Ihre Logik-App unterscheidet. Führen Sie zum Erstellen der Anwendungsidentität und zum Ermitteln der Client-ID und Mandanten-ID die vorherigen Schritte in Teil 2 für das Azure-Portal aus. Sie werden sowohl die Client-ID als auch die Mandanten-ID in der Bereitstellungsvorlage für Ihre App und auch für Teil 3 verwenden.
Wichtig
Wenn Sie die Microsoft Entra-Anwendungsidentität für Ihre Web-App oder API-App erstellen, müssen Sie anstelle von PowerShell das Azure-Portal verwenden. Mit dem PowerShell-Cmdlet werden nicht die erforderlichen Berechtigungen für die Anmeldung der Benutzer bei einer Website eingerichtet.
Sobald Sie über die Client-ID und die Mandanten-ID verfügen, nehmen Sie diese IDs als untergeordnete Ressourcen Ihrer Web-App oder API-App in Ihre Bereitstellungsvorlage auf:
"resources": [
{
"apiVersion": "2015-08-01",
"name": "web",
"type": "config",
"dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
"properties": {
"siteAuthEnabled": true,
"siteAuthSettings": {
"clientId": "<client-ID>",
"issuer": "https://sts.windows.net/<tenant-ID>/"
}
}
}
]
Für die automatische Bereitstellung einer leeren Web-App und einer Logik-App zusammen mit Microsoft Entra-Authentifizierung können Sie die vollständige Vorlage hier anzeigen oder auf die folgende Schaltfläche In Azure bereitstellen klicken:
Teil 3: Ausfüllen des Abschnitts für die Autorisierung in Ihrer Logik-App
In der obigen Vorlage ist der Abschnitt für diese Autorisierung bereits eingerichtet, aber wenn Sie die Logik-App-Definition direkt erstellen, müssen Sie den gesamten Abschnitt für die Autorisierung aufnehmen.
Öffnen Sie Ihre Logik-App-Definition in der Codeansicht.
Wechseln Sie zur HTTP-Aktionsdefinition und dann zum Abschnitt Autorisierung, und fügen Sie die folgenden Eigenschaften ein:
{
"tenant": "<tenant-ID>",
"audience": "<client-ID-from-Part-2-web-app-or-API app>",
"clientId": "<client-ID-from-Part-1-logic-app>",
"secret": "<secret-from-Part-1-logic-app>",
"type": "ActiveDirectoryOAuth"
}
| Eigenschaft | Erforderlich | Beschreibung |
|---|---|---|
tenant |
Ja | Die GUID für den Microsoft Entra-Mandanten. |
audience |
Ja | Die GUID für die Zielressource, auf die Sie zugreifen möchten. Dies ist die Client-ID aus der Anwendungsidentität für Ihre Web-App oder API-App. |
clientId |
Ja | Die GUID für den Client, der darauf zugreifen möchte, dies ist die Client-ID der Anwendungsidentität für Ihre Logik-App. |
secret |
Ja | Der geheime Schlüssel oder das Kennwort aus der Anwendungsidentität für den Client, der das Zugriffstoken anfordert. |
type |
Ja | Der Authentifizierungstyp. Für die ActiveDirectoryOAuth-Authentifizierung lautet der Wert ActiveDirectoryOAuth. |
Beispiel:
{
"actions": {
"HTTP": {
"inputs": {
"method": "POST",
"uri": "https://your-api-azurewebsites.net/api/your-method",
"authentication": {
"tenant": "tenant-ID",
"audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
"clientId": "client-ID-from-azure-ad-app-for-logic-app",
"secret": "key-from-azure-ad-app-for-logic-app",
"type": "ActiveDirectoryOAuth"
}
}
}
}
}
Sichere API-Aufrufe über Code
Zertifikatauthentifizierung
Sie können Clientzertifikate verwenden, um die eingehenden Anforderungen von Ihrem Logik-App-Workflow für Ihre Web-App oder API-App zu überprüfen. Weitere Informationen zum Einrichten des Codes finden Sie unter Konfigurieren der gegenseitigen TLS-Authentifizierung.
Wichtig
Schützen Sie immer vertrauliche und personenbezogene Daten, z. B. Anmeldeinformationen, geheime Schlüssel, Zugriffstasten, Verbindungszeichenfolgen, Zertifikate, Fingerabdrucke und ähnliche Informationen mit der höchsten verfügbaren oder unterstützten Sicherheitsstufe.
Stellen Sie sicher, dass Sie diese Informationen sicher speichern, indem Sie Microsoft Entra ID und Azure Key Vault verwenden. Codieren Sie diese Informationen nicht, teilen Sie sie mit anderen Benutzern, oder speichern Sie sie an einer beliebigen Stelle, auf die andere Personen zugreifen können. Richten Sie einen Plan ein, um Geheimnisse zu rotieren oder zu widerrufen, im Falle, dass sie kompromittiert werden. Weitere Informationen finden Sie in den folgenden Ressourcen:
Schließen Sie im Abschnitt Autorisierung die folgenden Eigenschaften ein:
{
"type": "ClientCertificate",
"password": "<password>",
"pfx": "<long-pfx-key>"
}
| Immobilie | Erforderlich | Beschreibung |
|---|---|---|
type |
Ja | Der Authentifizierungstyp. Für TLS/SSL-Clientzertifikate muss der Wert ClientCertificate lauten. |
password |
Nein | Das Kennwort für den Zugriff auf das Clientzertifikat (PFX-Datei). |
pfx |
Ja | Der base64-codierte Inhalt des Clientzertifikats (PFX-Datei). |
Standardauthentifizierung
Sie können die Standardauthentifizierung, z.B. einen Benutzernamen und ein Kennwort, verwenden, um eingehende Anforderungen von der Logik-App für Ihre Web-App oder API-App zu überprüfen. Obwohl die Standardauthentifizierung ein gängiges Muster ist und Sie diese Authentifizierung in jeder Sprache verwenden können, die zum Erstellen Ihrer Web-App oder API-App verwendet wird, verwenden Sie immer die beste verfügbare oder unterstützte Authentifizierungsstufe.
Warnung
Microsoft warnt davor, die folgenden Abläufe für die Authentifizierung und Autorisierung zu verwenden:
Kennwortanmeldeinformationen (Resource Owner Password Credentials, ROPC) für OAuth 2.0
Mit diesem Fluss können Sie sich mit einem Kennwort bei einer Anwendung anmelden. Der Fluss ist mit der mehrstufigen Authentifizierung (MFA) nicht kompatibel, erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Fluss nur, wenn andere sicherere Flüsse nicht unterstützt oder verfügbar sind.
Weitere Informationen finden Sie unter Oauth 2.0 Resource Owner Password Credentials.
Impliziter Genehmigungsfluss für OAuth 2.0
Dieser tokenbasierte Fluss ist für herkömmliche Web-Apps vorgesehen, bei denen der Server eine sicherere Kontrolle über die Verarbeitung
POSTvon Daten hat und häufig mit dem Autorisierungscodefluss verwendet wird. Aufgrund der Art und Weise, wie dieser Fluss ID-Token oder Zugriffstoken verarbeitet und zurückgibt, erfordert der Fluss ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Fluss nur, wenn andere sicherere Flüsse nicht unterstützt oder verfügbar sind.Weitere Informationen finden Sie im OAuth 2.0 impliziter Genehmigungsfluss.
Schließen Sie im Abschnitt Autorisierung die folgenden Eigenschaften ein:
{
"type": "Basic",
"username": "<username>",
"password": "<password>"
}
| Eigenschaft | Erforderlich | Beschreibung |
|---|---|---|
type |
Ja | Der Authentifizierungstyp, den Sie verwenden möchten. Für die Standardauthentifizierung muss der Wert **Basic**sein. |
username |
Ja | Der Benutzername, den Sie für die Authentifizierung verwenden möchten. |
password |
Ja | Das Kennwort, das Sie für die Authentifizierung verwenden möchten. |
Microsoft Entra-Authentifizierung über Code
Bei der Microsoft Entra-Authentifizierung, die Sie im Azure-Portal aktivieren, wird standardmäßig keine fein abgestufte Autorisierung durchgeführt. Beispielsweise sperrt diese Authentifizierung Ihre API nur für einen bestimmten Mandanten und nicht für einen bestimmten Benutzer oder eine App.
Extrahieren Sie den Header, der das JSON Web Token (JWT) enthält, um den API-Zugriff auf die Logik-App über Code zu beschränken. Überprüfen Sie die Identität des Aufrufers, und lehnen Sie Anforderungen ab, die nicht übereinstimmen.
