API-Client bereitstellen
Ein API-Client wird im Anwendungsserverteil einer Web-App bereitgestellt. Eine Benutzerinteraktion startet Aktionen, die vom API-Client ausgeführt werden.
Benutzeraktionen
Die Schritte, die ein Benutzer in der Webanwendung ausführt, sind an die Aktionen gebunden, die vom API-Client
ausgeführt werden.
- Der Benutzer meldet sich an.
- Die Richtlinienauthentifizierung wird eingeleitet.
- Wenn eine Zurückweisung zurückgegeben wird, gibt die Anwendung eine Fehlerseite an den Benutzer zurück, die angibt, dass sich der Benutzer momentan nicht anmelden kann.
- Die Anwendung kann abhängig von dem erforderlichen Faktor ein unterschiedliches UX zurückgeben.
- Es ist auch möglich, diesen Schritt zu überspringen und ROPC auszuführen, nachdem ein Benutzer Berechtigungsnachweise bereitstellt. 'Kennwort' ist der einzige erste Faktor, der ausgeführt werden kann.
- Der Benutzer gibt Authentifizierungsdaten an.
- Eine Faktor-API wird vom API-Client aufgerufen; anschließend wird das JWT wieder
/tokenbereitgestellt. - Wenn keine weitere Authentifizierung erforderlich ist, wird der Benutzer jetzt authentifiziert. Wenn eine Mehrfaktorauthentifizierung (MFA) erforderlich ist, wird ein geeignetes UX an den Benutzer zurückgegeben.
- Eine Faktor-API wird vom API-Client aufgerufen; anschließend wird das JWT wieder
- Der Benutzer führt die MFA aus.
- Die nachfolgenden Aufrufe an Faktoren werden vom API-Client jedes Mal ausgeführt, wenn ein Token innerhalb des
mfa_challenge-Geltungsbereichs zurückgegeben wird.
- Die nachfolgenden Aufrufe an Faktoren werden vom API-Client jedes Mal ausgeführt, wenn ein Token innerhalb des
- Die Richtlinienauthentifizierung wird eingeleitet.
Souveränität des Zugriffstokens
Wenn Sie einen API-Client bereitstellen, der ISV-APIs für die Authentifizierung verwendet, müssen Sie entscheiden, was mit dem Zugriffstoken und möglicherweise mit dem Aktualisierungstoken passiert, das als Ergebnis dieses Ablaufs ausgegeben wird.
Zu berücksichtigende Details
- Es dürfen nur vollständige Zugriffstokens an den Browser zurückgegeben werden. Wenn eine MFA-Anforderung
(
mfa_challenge) zurückgegeben wird, startet die Browsersitzung eine Transaktion. - Das Aktualisierungstoken muss auf dem Anwendungsserver verbleiben.
- Wenn das Zugriffstoken an den Browser zurückgegeben wird, enthält die Webanwendung eine Logik zum Erkennen eines abgelaufenen Zugriffstokens. Dabei handelt es sich um eine 401- oder 403-Bedingung aus einer geschützten API. Diese Bedingung startet
einen Aktualisierungstokenablauf auf dem Anwendungsserver und es wird ein neues Token an den Browser ausgegeben. Dieser
Ablauf ermöglicht es, eine zusätzliche MFA-Anforderung (
mfa_challenge) zurückzugeben, wenn MFA erforderlich ist.
Hinweise zum Ressourcenserver
In den folgenden Fällen muss eine zusätzliche Überprüfung ausgeführt werden:
- Wenn Sie einen Ressourcenserver bereitstellen, der Zugriffstokens nutzt, die über die Zugriffsrichtlinie für API-Erteilungstypen an einen Client ausgegeben werden.
- Wenn die Introspektion für ein Zugriffstoken erfolgt, das von ISV ausgegeben wird.
Ein
mfa_challenge-Zugriffstoken gibt Folgendes zurück:"active": truewenn
die Introspektion erfolgt. Der Ressourcenserver muss eine Prüfung umfassen, mit der sichergestellt werden kann, dass
der Geltungsbereich (scope) des Zugriffstokens, für das eine Introspektion erfolgt, nicht
mfa_challenge lautet.Nachfolgend wird eine Beispielintrospektion für ein
mfa_challenge-Token gezeigt.{
"entitlements": [
"authn",
"readEnrollMFAMethod"
],
"at_hash": "Z3vQf5X3vzGu7sYqJShe_g",
"ext": {
"tenantId": "securitypoc.ice.ibmcloud.com"
},
"sub": "6030003FNL",
"amr": [
"password"
],
"uniqueSecurityName": "6030003FNL",
"iss": "https://securitypoc.ice.ibmcloud.com/oidc/endpoint/default",
"active": true,
"token_type": "Bearer",
"client_id": "89136d7c-564b-4ea4-aa5b-19b0d9a8a47f",
"aud": "89136d7c-564b-4ea4-aa5b-19b0d9a8a47f",
"grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"restrictEntitlements": true,
"scope": "mfa_challenge",
"grant_id": "bdbdd509-2866-46cd-b5cf-f5c5a4385691",
"category": "application",
"exp": 1594019673,
"app_id": "2512439131051198658",
"iat": 1594017873
}authnAnyUserHinweis: Für ein mfa_challenge Token, das noch keine MFA durchgeführt hat, lautet die Berechtigung.