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.
  1. 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 /token bereitgestellt.
      • 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.
    • 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.

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": true
wenn 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.