OAuth 2.0-Anwendungsregistrierung
Eine FoxIDs OAuth 2.0-Anwendungsregistrierung stellt entweder eine geschützte API-Ressource oder eine Backend-Anwendung mit Maschine-zu-Maschine-Authentifizierung dar. Registrieren Sie eine API, um Scopes bereitzustellen, und eine Backend Application, um Access Tokens mit dem Client Credentials Grant abzurufen.
Zu den wichtigsten Funktionen gehören mehrere API-Audiences in einem Access Token, API-Zugriff über Scopes, Client-Authentifizierung mit Secrets oder Zertifikaten, Claim-Transformation und Token Exchange.
Konfiguration
In FoxIDs Control:
- Wählen Sie die Umgebung aus, in der die API oder Backend-Anwendung registriert werden soll.
- Öffnen Sie Applications und klicken Sie auf Add application.
- Aktivieren Sie Show all options.
- Wählen Sie API oder Backend Application.
- Konfigurieren Sie die Anwendung und klicken Sie auf Create.

Klicken Sie nach der Erstellung auf Change application, um die vollständigen Anwendungseinstellungen zu prüfen oder zu ändern. Aktivieren Sie Show advanced nur, wenn die benötigte Einstellung erweitert ist.
OAuth 2.0 API
Wählen Sie API, um eine geschützte Backend-API als OAuth 2.0-Ressource zu registrieren. Die API-Registrierung definiert ihren Resource name, ihre Scopes und die in Access Tokens verwendete Audience.
Das folgende Beispiel registriert eine Customers API:
- Geben Sie
Customersals Name ein. - Geben Sie
customers-apials Resource name ein. - Fügen Sie die Scopes
readundwritehinzu. - Klicken Sie auf Create.

Die vollständigen Scope-Werte lauten customers-api:read und customers-api:write. Ein Client fordert einen oder beide Werte am Token-Endpunkt an, und das resultierende Access Token enthält customers-api als Audience.
Die API muss Issuer, Audience, Lebensdauer und den erforderlichen Scope des Access Tokens validieren. Eine aufrufende Anwendung erhält separat Zugriff, indem die API-Ressource und die Scopes hinzugefügt werden, die sie anfordern darf.
Backend-Anwendung und Client Credentials Grant
Wählen Sie Backend Application für einen Dienst, Daemon, geplanten Auftrag oder Hintergrundprozess. FoxIDs erstellt sie als vertraulichen Client, der über den Client Credentials Grant ohne Benutzer ein Access Token anfordert.
Das folgende Beispiel erstellt den aufrufenden Dienst:
- Geben Sie
Backend serviceals Name ein. - Geben Sie
backend-serviceals Client ID ein oder lassen Sie FoxIDs die ID generieren. - Kopieren Sie das generierte Client secret, bevor Sie das Erstellungsergebnis verlassen. Das vollständige generierte Secret wird nur während der Erstellung angezeigt.
- Klicken Sie auf Create.

Zugriff auf eine API gewähren
Klicken Sie nach dem Erstellen der Backend-Anwendung auf Change application und konfigurieren Sie Resource and scopes auf der Registerkarte OAuth 2.0 Client:
- Lassen Sie Default resource 'backend-service' for the application itself deaktiviert, da dieser Client nicht als eigene API fungiert.
- Klicken Sie auf Add Resource and scopes.
- Geben Sie
customers-apials Resource ein. - Fügen Sie die Scopes
readundwritehinzu. - Klicken Sie auf Update.

Die Backend-Anwendung kann jetzt customers-api:read, customers-api:write oder beide anfordern. Die vom Client angeforderten Scopes werden mit den von der API-Registrierung bereitgestellten Scopes abgeglichen.
Access Tokens können mehrere Audiences enthalten und dadurch Zugriff auf mehrere APIs gewähren, die in FoxIDs als OAuth 2.0-Ressourcen registriert sind. Fügen Sie der Backend-Anwendung jede benötigte Ressource und ihre zulässigen Scopes hinzu.
Client-Authentifizierung
Die Standardmethode zur Client-Authentifizierung am Token-Endpunkt ist client secret post. Um sie zu ändern, klicken Sie auf Change application, aktivieren Sie Show advanced und wählen Sie:
client secret basic, um Client ID und Secret mit HTTP Basic-Authentifizierung zu senden.client secret post, um Client ID und Secret im Body der Token-Anforderung zu senden.private key JWT, um sich mit einer signierten Client Assertion zu authentifizieren.

Bis zu 10 Secrets und 4 Client-Zertifikate können konfiguriert werden, um die Rotation von Zugangsdaten zu unterstützen. Bewahren Sie Secrets und private Schlüssel sicher auf und schreiben Sie sie nicht in Quellcode oder Protokolle.
Die folgende Anfrage verwendet die Standardmethode client secret post, um ein Access Token für die Customers API abzurufen:
POST https://foxids.com/tenant-x/environment-y/backend-service(*)/oauth/token HTTP/1.1
Host: foxids.com
Content-Type: application/x-www-form-urlencoded
client_id=backend-service
&client_secret=<client-secret>
&grant_type=client_credentials
&scope=customers-api%3Aread
Die Token-Antwort enthält ein Access Token für die Audience customers-api mit dem Scope customers-api:read.
Mit einem Zertifikat authentifizieren
Wählen Sie private key JWT und laden Sie das Client-Zertifikat nach dem Erstellen der Backend-Anwendung hoch. Der Client behält den zugehörigen privaten Schlüssel und signiert für jede Token-Anforderung eine kurzlebige Client Assertion.
Registrieren Sie überlappende Zertifikate, bevor Sie ein ablaufendes Zertifikat ersetzen, damit der Client die Schlüssel ohne Unterbrechung der Token-Anforderungen rotieren kann.
Client Secrets
FoxIDs hasht Client Secrets mit dem konfigurierten Passwort-Hash-Algorithmus. Ein generiertes Secret kann nach der Erstellung nicht wiederhergestellt werden. Bei Secrets mit mehr als 20 Zeichen behält FoxIDs die ersten drei Zeichen als Identifikationsinformation und zeigt sie mit Auslassungspunkten an, zum Beispiel 6j9....
Fügen Sie ein Ersatz-Secret hinzu, bevor Sie das bisherige entfernen, um Zugangsdaten ohne Ausfallzeit zu rotieren.
Claims, die für einen Client oder eine API ausgestellt werden, können mit Claim Transforms und Claim Tasks geändert werden.
Resource Owner Password Credentials Grant
FoxIDs unterstützt den Resource Owner Password Credentials Grant nicht, da die Anwendung dabei das Passwort des Benutzers verarbeiten muss und das Verfahren für eine sichere moderne Authentifizierung ungeeignet ist.