Voraussetzungen
Sie benötigen Zugriff auf das Azure-Portal und die Entra-ID, um Anwendungen zu registrieren. Sie benötigen außerdem Zugriff auf einen Frends-Mandanten.
1 - Einrichten einer Anwendung in Azure AD
Neue App-Registrierung erstellen
Um zu beginnen, gehen Sie zuhttps://portal.azure.commit einem Konto, das neue Anwendungen im Verzeichnis registrieren kann, und gehen Sie zuAzure Active Directory > App-Registrierungenund klicken Sie aufNeuanmeldung.
Geben Sie einen aussagekräftigen Namen für die Anwendungsregistrierung ein und wählen Sie dieMandantenfähigaus derUnterstützte KontotypenListe, wie im Bild unten gezeigt. Sie müssen auch eine Umleitungs-URI hinzufügen, dies wird jedoch in den folgenden Schritten erledigt. Klicken Sie aufRegistrierensobald Sie die erforderlichen Einstellungen konfiguriert haben.
Zugriffstoken aktivieren und Umleitungs-URI festlegen
Beim Autorisierungscode-Flow müssen Sie die Antwort der Anwendung so einstellen, dass sie ein Zugriffstoken enthält, und eine Umleitungs-URI hinzufügen. Dies können Sie tun, indem Sie zuVerwalten > Authentifizierungund klicken Sie auf "+ Eine Plattform hinzufügen".
ImWeb konfigurierenIm angezeigten Fenster können Sie die Umleitungs-URI festlegen.Implizite Gewährung und Hybridflüsseaktivieren Sie denID-Token (für implizite und hybride Flows verwendet)Option. Wenn die externe Adresse Ihres Agenten myagent.frendsapp.com ist, wäre die Umleitungs-URIhttps://myagent.frendsapp.com/api/auth/oauth2-redirect.html
Sobald alle Einstellungen konfiguriert sind, klicken Sie aufKonfigurierenum zu speichern.
Neues Client-Geheimnis erstellen
Als nächstes finden Sie dieSeite „Zertifikate und Geheimnisse“imVerwaltenDropdown-Liste. Navigieren Sie zuClient-Geheimnisseund klicken Sie auf "+ Neues Client-Geheimnis".
Geben Sie in der geöffneten Ansicht einen beschreibenden Namen für das Client-Geheimnis ein und definieren Sie die Ablaufzeit. Klicken Sie dann aufHinzufügen. Nachdem das Client-Geheimnis hinzugefügt wurde, suchen Sie es in der Liste unten und kopieren und speichern Sie dieWertzur späteren Verwendung. Dieser Wert kann nur direkt nach der Erstellung gespeichert werden. Denken Sie also daran, ihn sofort zu speichern. Wenn Sie den Wert verlieren, müssen Sie ein neues Client-Geheimnis erstellen.
Sammeln Sie die folgenden Gegenstände:
Client-ID und Tenant-ID
Navigieren Sie zumÜberblickSeite in Ihrer Bewerbung und beachten Sie dieAnwendung
(Client-)IDund dieVerzeichnis-ID (Mandant)
OAuth 2.0-Autorisierungs- und Token-Endpunkt-URLs
Navigieren Sie zumEndpunkteSeite imÜberblickSpeisekarte.
Kopieren Sie beideOAuth 2.0-Autorisierungsendpunkt (v2)und dieOAuth 2.0-Token-Endpunkt (v2).
Ändern "Organisationen" in der Endpunkt-URL zurVerzeichnis-ID (Mandant).
Anwendungs-ID-URI
Navigieren Sie zumBereitstellen einer APISeite aus demVerwaltenDropdown. Kopieren Sie dieAnwendungs-ID-URIWert und speichern Sie ihn. Wenn dort kein Anwendungs-ID-URI-Wert vorhanden ist, klicken Sie einfach aufHinzufügenund es sollte ein vorgeschlagener Wert vorhanden sein, den Sie verwenden können.
2 - Zugriffstoken mit Postman generieren
Verwenden Sie zum Generieren eines Zugriffstokens Postman, da es über eine integrierte, äußerst praktische OAuth 2.0-Autorisierungsmethode verfügt.
Erstellen Sie eine neue Anfrageseite und navigieren Sie zuGenehmigungKonfigurieren Sie dann die Einstellungen wie im Bild und in den weiteren Anweisungen unten gezeigt.
InTokennameGeben Sie einen beschreibenden Namen für Ihre Access Token-Anforderung an.
InZuschussartWählen Sie dieAutorisierungscode (mit PKCE)Option aus dem Dropdown-Menü
InRückruf-URLfügen Sie dieUmleitungs-URIdie Sie zuvor konfiguriert haben
InAuthentifizierungs-URLfügen Sie dieOAuth 2.0-Autorisierungsendpunkt (v2)die Sie zuvor gespeichert haben
InZugriffstoken-URLfügen Sie dieOAuth 2.0-Token-Endpunkt (v2)die Sie zuvor gespeichert haben
InKunden-IDfügen Sie dieAnwendungs-(Client-)IDdie Sie zuvor gespeichert haben
InClient-Geheimnisfügen Sie dieClient-GeheimnisWert, den Sie zuvor erstellt (und hoffentlich) gespeichert haben. Wenn Sie ihn nicht gespeichert haben, müssen Sie einen neuen erstellen
InCode-Challenge-MethodewählenSHA-256aus dem Dropdown-Menü
InUmfangfügen Sie dieAnwendungs-(Client-)IDund fügen Sie am Ende /.default hinzu
InZustandhinzufügen123456. Wie von Postman angegeben, handelt es sich dabei um „einen undurchsichtigen Wert, der zur Verhinderung von Cross-Site-Request-Forgery verwendet wird.“
InClient-AuthentifizierungWählen Sie dieClientanmeldeinformationen im Textkörper sendenOption aus dem Dropdown-Menü
Sobald alle Einstellungen konfiguriert sind, klicken Sie aufNeues Zugriffstoken anfordernund Sie sollten zu einer Anmeldeseite weitergeleitet werden. Melden Sie sich an und Sie sollten in Postman Ihr Zugriffstoken erhalten.
3 - Zugriffstoken dekodieren
Da Sie nun über ein Zugriffstoken verfügen, dekodieren wir es und überprüfen den dekodierten Wert des Tokens.
Eine der einfachsten Möglichkeiten hierfür ist, zu gehen zujwt.iound verwenden Sie die Debugger-Funktion.
Fügen Sie denZugriffstokenWert für dieCodiertFeld. Überprüfen Sie, ob Sie die dekodiertenNUTZLAST: DATENFeld
Kopieren und speichern Sie dieissWert, der sich in derNUTZLAST:DATENFeld. Dies ist erforderlich, wenn Frends so konfiguriert wird, dass Entra ID als OAuth 2.0-Autorisierungsanbieter für eine mit Frends veröffentlichte API verwendet wird.
4 - Konfigurieren Sie die Frends-API so, dass die Entra-ID und die erstellte App-Registrierung als Autorisierungsanbieter verwendet werden
Konfigurieren des OAuth 2.0-Autorisierungscodeflusses in der OpenAPI-Spezifikation der Frends API
Hier ist eine einfache Beispiel-API, die die Verwendung von Entra ID als OAuth 2.0-Autorisierungsanbieter mit Autorisierungscode-Flow demonstriert. Sie können dies nach Ihren Bedürfnissen ändern.
openapi: 3.0.1
Info:
Titel: Demo zum OAuth 2.0-Autorisierungscodefluss
Beschreibung: Einfaches API-Beispiel, das die Verwendung von Entra ID als OAuth 2.0-Autorisierungsanbieter mit dem OAuth 2.0-Autorisierungscode-Flow demonstriert.
Version: 0.0.1
Server:
- URL: /API/MachineToMachine/v1
Pfade:
/Zeit:
erhalten:
Zusammenfassung: Gibt die aktuelle Uhrzeit und das Datum zurück.
Antworten:
'200':
Beschreibung: Aktuelle Uhrzeit und Datum
Inhalt:
Anwendung/Text:
Schema:
Typ: Zeichenfolge
Komponenten:
Sicherheitsschemata:
AzureAD:
Typ: oauth2
Beschreibung: Diese API verwendet OAuth 2.0-Flows.
fließt:
Autorisierungscode:
authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize?resource=DURCH CLIENT-ID ERSETZEN
tokenUrl: https://login.microsoftonline.com/DURCH ANWENDUNGS-ID ERSETZEN/
Bereiche: { }
Sicherheit:
- AzureAD: [ ]
Um die Verwendung von OAuth 2.0 mit der API zu ermöglichen, sind die wesentlichen TeileSicherheitsschemataUndSicherheitam Ende der OpenAPI-Spezifikation.
ImAutorisierungs-URLFeld müssen Sie den Text ersetzenDurch Client-ID ersetzenmit der tatsächlichen Client-ID. Für dieses Beispiel der App-Registrierung wird dieAutorisierungs-URLDer Feldwert sollte folgendermaßen aussehen:
https://login.microsoftonline.com/common/oauth2/authorize?resource=649c7107-f69f-4a4f-b691-71ef91f573d7
ImToken-URLFeld müssen Sie den Text ersetzenDurch Anwendungs-ID ersetzenmit der tatsächlichen Anwendungs-ID. Für dieses Beispiel der App-Registrierung wird dieToken-URLDer Feldwert sollte folgendermaßen aussehen:
https://login.microsoftonline.com/9cd84eb1-4a03-43a6-a2cf-dafd7ed0fb14/
Speichern Sie die OpenAPI-Spezifikation, bevor Sie mit dem nächsten Schritt fortfahren.
Konfigurieren Sie die OAuth 2.0-Anwendung in Frends
NOTIZ: Die Anweisungen ab diesem Punkt sind für Frends 5.7 oder älter vorgesehen.
NOTIZ: Für diesen Schritt benötigen Sie Administratorrechte für Ihren Frends-Mandanten oder müssen einen Frends-Administrator bitten, die Konfiguration für Sie vorzunehmen.
Navigieren Sie in der Frends-Benutzeroberfläche zuVerwaltung > OAuth-Anwendungenund klicken Sie auf „+ Neu erstellen“.
ImNeue OAuth-AnwendungSeite füllen Sie die folgenden Felder aus:
Name- Geben Sie einen beschreibenden Namen für die OAuth-Anwendung ein. Normalerweise bezieht sich der Name auf die API, in der die Authentifizierung und Autorisierung des OAuth 2.0 Authorization Code Flow verwendet wird.
Emittent- Fügen Sie dieissden Wert, den Sie zuvor gespeichert haben
Publikum- Fügen Sie dieAnwendungs-ID-URIden Wert, den Sie zuvor gespeichert haben
Wenn Sie fertig sind, klicken Sie aufÄnderungen speichern
Konfigurieren Sie die OAuth 2.0 API-Zugriffsrichtlinie in Frends
Navigieren Sie in der Frends-Benutzeroberfläche zuVerwaltung > API-Zugriffsrichtlinien.
ImNeue Zugriffsrichtlinie erstellenSeite füllen Sie die folgenden Felder aus:
Name- Geben Sie einen beschreibenden Namen ein, der sich auf die API und die API-Clients bezieht, für die diese Richtlinie den API-Zugriff definiert
Beschreibung- Dies ist nicht zwingend erforderlich, es empfiehlt sich jedoch, die Anwendungsfälle für die API detaillierter zu beschreiben
Erlaubter Zugriffstoken-Aussteller- Wählen Sie aus dem Dropdown-Menü den Aussteller aus, den Sie zuvor konfiguriert haben
Konfigurieren Sie die Frends-API so, dass eine oder mehrere bestimmte API-Zugriffsrichtlinien verwendet werden
Öffnen Sie die Frends API-Verwaltungsansicht, navigieren Sie zu Ihrer Frends-API und wählen Sie aus der Dropdown-Liste „API-Zugriffsrichtlinien“ die API-Zugriffsrichtlinie aus, die Sie im vorherigen Schritt konfiguriert haben. Unten sehen Sie ein Beispiel für eine Frends-API mit der im vorherigen Schritt ausgewählten Beispiel-API-Zugriffsrichtlinie.
CURL-Befehle
GET-Autorisierungscode-URL (Ändern Sie die Werte so, dass sie zu Ihrer eigenen Anwendung passen)
https://login.microsoftonline.com/97759401-0ff9-42fb-8eae-
9163e29d19bf/oauth2/v2.0/authorize?client_id=f1481436-ef32-494c-be79-
f7741d924d2e&response_type=code&redirect_uri=https%3A%2F%2Ffrends56-dev-
agent.frendsapp.com%2Fapi%2Fauth%2Foauth2-
Umleitung.html&response_mode=query&scope=openid&state=12345&prompt=login&code_challenge=0hC_t2_OO
DKI-GsOOm_CyCmJ4W5S4HHC2AgfAWlVNw8&code_challenge_method=S256
POST-Autorisierungscode mit PKCE (Ändern Sie die Werte so, dass sie zu Ihrer eigenen Anwendung passen)
curl --location '{{OAuth 2.0-Token-Endpunkt (v2)}}' \
--header 'Inhaltstyp: application/x-www-form-urlencoded' \
--header 'Cookie: fpc=Aqj8C-ZDxARAqUQLIwqZ1Dq5mfnUAgAAAF9kGN4OAAAA; stsservicecookie=estsfd; x-
ms-gateway-slice=estsfd' \
--data-urlencode 'Grant_Type=Autorisierungscode' \
--data-urlencode 'code={{authorization_code}}' \
--data-urlencode 'client_id={{client_id}}' \
--data-urlencode 'redirect_uri={{redirect_uri}}' \
--data-urlencode 'client_secret={{client_secret}}' \
--data-urlencode 'code_verifier={{code_verifier}}'
Verwandte ArtikelEinführung in die API-Authentifizierung mit FrendsEinführung in OAuth 2.0So verwenden Sie den OAuth 2.0 Client Credentials Flow in APIs, die in Frends veröffentlicht wurdenSo verwenden Sie den impliziten OAuth 2.0-Flow in APIs, die in Frends veröffentlicht wurdenSo verwenden Sie den OAuth 2.0-Autorisierungscode in APIs, die in Frends veröffentlicht wurden