Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
OCI-API-Gateway mit OAuth und OpenID Connect mit Microsoft Entra-ID sichern
Einführung
Oracle Cloud Infrastructure (OCI) API Gateway ist ein serverloser, vollständig verwalteter Service in OCI, mit dem API-Endpunkte und Webanwendungen geschützt werden können. Es bietet viele Sicherheitsfunktionen wie Ratenbegrenzung, Autorisierungsdurchsetzung, dynamisches Routing, SSL-Durchsetzung usw. Wir haben viele Anfragen von unseren Kunden gesehen, die gefragt haben, wie Microsoft Entra ID OAuth-Token zum Schutz von APIs verwendet werden können, die hinter OCI API Gateway ausgeführt werden, oder wie wir Microsoft Entra ID-Token zur Authentifizierung gegen OCI API Gateway nutzen können. Weitere Informationen zur OCI-API-Gateway-Authentifizierung finden Sie unter Token validieren, um Authentifizierung und Autorisierung zu API-Deployments hinzuzufügen.
Ziele
- Integrieren Sie OCI API Gateway und die Microsoft Entra-ID mit OAuth und OpenID Connect (OIDC). Wir werden sehen, wie wir das Microsoft Entra ID-Token zur sicheren Authentifizierung mit OCI API Gateway verwenden können.
Voraussetzungen
-
Zugriff auf OCI- und Microsoft Entra-ID-Mandanten.
-
Als JSON Web Token (JWT) von der Microsoft Entra ID kann dieses JWT mit Postman, curl oder einem anderen API-Client abgerufen werden.
Aufgabe 1: Microsoft Entra-ID als OAuth-Identitätsprovider konfigurieren (IdP)
Auf der Seite der Microsoft Entra-ID müssen wir zwei Clientanwendungen in Microsoft Entra ID konfigurieren: eine, die zur Authentifizierung bei Microsoft Entra ID verwendet wird, eine andere Clientanwendung wird verwendet, um eine API in der Microsoft Entra ID bereitzustellen, und wir rufen ein Token für diese bereitgestellte API mit der Client-ID, dem Secret der ersten App über Postman, ab. Wir untersuchen dieses Token und verwenden die Zielgruppenfelder (Audio) und die Ausstellerfelder, die in die OCI-API-Gateway-Konfiguration importiert werden sollen.
Führen Sie die folgenden Schritte aus, um die beiden Client-Apps auf der Microsoft Entra-ID zu erstellen und einzurichten:
-
Um die erste App zu erstellen, öffnen Sie das Microsoft Entra ID-Portal, klicken Sie auf App-Registrierungen und Neue Registrierung, um eine neue Anwendung zu registrieren.
-
Geben Sie die folgenden Informationen ein, und klicken Sie auf Registrieren.
- Name: Geben Sie den Namen der Anwendung ein.
- Unterstützte Kontotypen: Wählen Sie Nur Konten in diesem Organisationsverzeichnis (nur Standardverzeichnis - Einzelmandant) aus.
-
Klicken Sie auf API verfügbar machen, um dies Clientanwendungen bereitzustellen, indem Sie die Anwendungs-ID-URI hinzufügen, und klicken Sie auf Geltungsbereich hinzufügen, um den Geltungsbereich hinzuzufügen. Für dieses Tutorial haben wir Testwerte bereitgestellt, wie in den folgenden Bildern dargestellt, um eine API bereitzustellen und einen Geltungsbereich hinzuzufügen.
Indem Sie die Web-API registrieren und über Geltungsbereiche verfügbar machen und eine App-Rolle zuweisen, können Sie autorisierten Benutzern und Clientanwendungen, die auf Ihre API zugreifen, Zugriff auf ihre Ressourcen erteilen.
Hinweis: Beachten Sie die Anwendungs-ID-URI. Diese wird später beim Abrufen eines Tokens aus der Microsoft Entra-ID verwendet.
-
Klicken Sie auf Anwendungsrollen, um eine Anwendungsrolle hinzuzufügen, und zwar für die erste Anwendung.
-
Um die zweite App zu erstellen, öffnen Sie das Microsoft Entra ID-Portal, klicken Sie auf App-Registrierungen und Neue Registrierung, um eine neue Anwendung zu registrieren.
-
Geben Sie die folgenden Informationen ein, und klicken Sie auf Registrieren.
- Name: Geben Sie den Namen der Anwendung ein.
- Unterstützte Kontotypen: Wählen Sie Nur Konten in diesem Organisationsverzeichnis (nur Standardverzeichnis - Einzelmandant) aus.
-
Notieren Sie sich die Anwendungs-(Client-)ID, da wir sie als Zugangsdaten in der Tokengenerierungs-API verwenden, um ein Token für die erste Clientanwendung abzurufen, die als API angegeben wird.
-
Klicken Sie auf Zertifikate und Secrets, Neues Client Secret, geben Sie die folgenden Informationen ein, und klicken Sie auf Hinzufügen.
- Beschreibung: Geben Sie eine kurze Secret-Beschreibung ein.
- Ablauf: Wählen Sie den Ablauf aus. Standardmäßig ist der Ablauf des Secrets auf sechs Monate festgelegt.
Hinweis: Notieren Sie sich das Secret, indem Sie das Wertfeld kopieren.
Das Secret wird mit der Anwendungs-ID (Client-ID) von oben kombiniert.
-
Klicken Sie auf API-Berechtigungen und Berechtigung hinzufügen für
Api_App
. Wählen Sie im Abschnitt API auswählen die Option Von meiner Organisation verwendete APIs aus, und wählen Sie die API aus, die bei der Konfiguration der ersten App angegeben wurde. -
Wählen Sie Anwendungsberechtigung und die angegebene Berechtigung aus, und klicken Sie auf Berechtigungen hinzufügen.
-
Klicken Sie auf Überblick, Endpunkte, und kopieren Sie die URL des Tokenendpunkts OAuth 2.0 (v1), die für die Ausgabe von JWT-Token verwendet wird.
-
Unter Endpunkte wird die bekannte OpenID-Endpunkt-URL abgerufen, die die Remote-JWKS-URI enthält.
Der Microsoft Entra-ID-Teil ist fertig, und jetzt wird das OCI-API-Gateway konfiguriert. Bevor Sie das API-Gateway in OCI konfigurieren, erfassen wir jedoch die erforderlichen Details aus dem JWT und der openid-configuration
aus der Microsoft Entra-ID mit Postman. Wir müssen die folgenden Details sammeln:
- JWT-Aussteller: Dieser kann aus dem Token - Feld
iss
im Token abgerufen werden. - Zulässige JWT-Zielgruppen: Dieser Wert wird auch aus dem Tokenfeld
aud
im Token abgerufen. - Die Remote-JWKS-URI: Diese Option ist im OpenID Connect-Metadatendokument verfügbar. Dies ist die Remote-JWKS-URI:
https://login.microsoftonline.com/{tenant-id}/discovery/v2.0/keys
.
Rufen Sie mit Postman ein Zugriffstoken aus der Microsoft Entra-ID ab. Beachten Sie den Geltungsbereichswert. Dabei muss es sich um Ihre Anwendungs-ID-URI handeln, die im Abschnitt API bereitstellen Ihrer Api_App erstellt wurde, und fügen Sie /.default
am Ende hinzu, wie in der folgenden Abbildung dargestellt.
Verwenden Sie Postman, um das JWT-Token aus der Microsoft Entra-ID abzurufen. Geben Sie die Token-API-URL https://login.microsoftonline.com/{tenant-id}/oauth2/token
ein, und ersetzen Sie {tenant-id}
durch Ihre Azure-Mandanten-ID. Senden Sie eine Anforderung, und kopieren Sie den Wert access_token
.
Jetzt können wir das JWT-Token dekodieren, um einige Werte wie den zulässigen JWT-Aussteller und die zulässige JWT-Zielgruppe abzurufen.
Wir verwenden das von der Microsoft Entra-ID ausgegebene JSON Web Token (JWT) für die unter OCI API Gateway konfigurierte Aktienantwort.
Aufgabe 2: OCI-API-Gateway konfigurieren
-
Gehen Sie zu OCI API Gateway, und wählen Sie im Abschnitt Authentifizierung die Option Einzelne Authentifizierung aus, und geben Sie die folgenden Informationen ein.
- Authentifizierungstyp:
OAuth 2.0/ OpenID Connect
. - Tokenverzeichnis:
Header
. - JWT-Headername:
Authorization
. - Authentifizierungsschema:
Bearer
.
- Authentifizierungstyp:
-
Definieren Sie im Abschnitt Zusätzliche JWT-Validierung die zulässigen Aussteller und Zielgruppen. Da die Token-API v1 verwendet wurde, muss für Zulässige Aussteller der Wert
https://sts.windows.net/{tenant-id}/
festgelegt werden. Ersetzen Sie{tenant-id}
durch Ihre Azure-Mandanten-ID. Zulässige Zielgruppen müssen den in Aufgabe 1 abgerufenen Claimwertaud
enthalten. -
Geben Sie im Abschnitt Validierungstyp die JWKS-URI ein, die Sie vom bekannten OpenID-Endpunkt der Microsoft Entra-ID erhalten haben.
-
Um eine Route zu erstellen, geben Sie die folgenden Informationen ein, und klicken Sie auf Weiter.
- Pfad: Definieren Sie einen Pfad.
- Methoden: Wählen Sie eine Methode aus.
- Wählen Sie Ein einzelnes Backend hinzufügen aus.
- Backend-Typ: Wählen Sie Aktienantwort aus.
- Statuscode: Geben Sie den Statuscode ein.
- Hauptteil: Definieren Sie einen einfachen Hauptteil.
Hinweis: Aus Gründen der Einfachheit wird eine Aktienantwort als Backend-Typ für das API-Gateway angezeigt. Dies wäre in der Regel eine API, die über API Gateway geschützt ist. Die Konfiguration für die Microsoft Entra ID-OIDC-Authentifizierung ist jedoch ähnlich.
-
Prüfen Sie im Abschnitt Prüfen das Deployment, und klicken Sie auf Erstellen. Warten Sie, bis sich das Deployment im Status
Active
befindet, und kopieren Sie die Endpunkt-URL.
Testen Sie den gesicherten API-Endpunkt mit Postman. Geben Sie den Endpunkt ein, und fügen Sie ihm ein Suffix mit dem Routenpfad hinzu. Fügen Sie den Header Autorisierung hinzu, verwenden Sie das Schema Bearer, und fügen Sie das JWT-Token ein, das Sie von der Microsoft Entra-ID erhalten haben.
Ihr OCI-API-Gateway-Deployment ist jetzt mit der Microsoft Entra-ID gesichert.
Verwandte Links
Danksagungen
- Autor - Aqib Javid Bhat (Senior Cloud Engineer)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Use Microsoft Entra ID to Secure OCI API Gateway Using OAuth and OpenID Connect
F94676-01
March 2024