Technologien

Möchten Sie mehr über die Unterschiede zwischen Autorisierung und Authentifizierung erfahren? Kein Problem! Beachten Sie die folgenden Informationen zur spezifischen Terminologie, zu den Prozessen und Technologien, die bei der Arbeit mit IBM Cloud® App ID verwendet werden.

OAuth 2

OAuth 2.0 ist ein offenes Standardprotokoll, das für die Autorisierung von Anwendungen verwendet wird.

Open ID Connect (OIDC)

OIDC ist eine Authentifizierungsschicht, die mit OAuth 2 arbeitet. Wenn Sie OIDC und App ID zusammen verwenden, helfen Ihre Anwendungsberechtigungsnachweise bei der Konfiguration Ihrer OAuth-Endpunkte. Wenn Sie das SDK verwenden, werden die Endpunkt-URLs automatisch erstellt. Sie können die URLs jedoch auch selbst unter Verwendung Ihrer Serviceberechtigungsnachweise erstellen. Die URL hat das folgende Format: App ID-Serviceendpunkt + "/oauth/v4" + /tenantID.

Beispiel:

{
  "clientId": "7eba72ef-b913-47b0-b3b6-54358bb69035",
  "tenantId": "8f5aa500-357e-443a-aab6-bf878f852b5a",
  "secret": "OWEzZGM4M2UtZjhlYS00MDI2LTkwNGItNDJmYzViMmU2YzIz",
  "name": "testing",
  "oAuthServerUrl": "https://us-south.appid.cloud.ibm.com/oauth/v4/8f5aa500-357e-443a-aab6-bf878f852b5a",
  "profilesUrl": "https://us-south.appid.cloud.ibm.com",
  "discoveryEndpoint": "https://us-south.appid.ibm.cloud.com/oauth/v4/8f5aa500-357e-443a-aab6-bf878f852b5a/.well-known/openid-configuration"
}

Im vorliegenden Beispiel lautet die URL https://us-south.appid.cloud.ibm.com/oauth/v4/8f5aa500-357e-443a-aab6-bf878f852b5a. Anschließend fügen Sie den Endpunkt hinzu, an den Sie eine Anforderung stellen wollten. In der folgenden Tabelle sind verschiedene Beispiele für Endpunkte aufgeführt.

Beispiele für Endpunkte
Endpunkt Format
Berechtigung <oauthServerUrl>/authorization
Token <oauthServerUrl>/token
Benutzerinformationen <oauthServerUrl>/userinfo
JWKS <oauthServerUrl>/publickeys

Wenn Sie das SDK verwenden, werden die Endpunkt-URLs automatisch erstellt.

Tokens

Der Service verwendet drei verschiedene Arten von Token. Token werden unter Identitätsprovider > Verwalten im App ID-Dashboard festgelegt. Weitere Informationen zu Token und dazu, wie sie in App ID verwendet werden, finden Sie in Token verwalten.

  • Zugriffstoken: Stellen Sie die Berechtigung dar und aktivieren Sie die Kommunikation mit geschützten Back-End-Ressourcen. Die Ressourcen werden durch Berechtigungsfilter geschützt, die von App ID definiert werden.

  • Identitätstoken: Stellen die Authentifizierung dar und enthalten Informationen zum Benutzer.

  • Aktualisierungstoken: Können verwendet werden, um neue Token abzurufen, ohne den Benutzer erneut zu authentifizieren. Durch die Verwendung von Aktualisierungstoken können Benutzer Ihre Informationen in der Anwendung speichern, das heißt, sie können angemeldet bleiben.

Berechtigungsheader

App ID entspricht der Bearer-Token-Spezifikation und verwendet eine Kombination aus Zugriffs- und Identitäts-Token, die als HTTP Authorization-Header gesendet werden. Der Berechtigungsheader verfügt über drei unterschiedliche Teile, die durch Leerzeichen voneinander getrennt sind. Die Token sind mit einer Base64-Codierung codiert. Das Identitätstoken ist optional.

Beispiel:

Authorization=Bearer <accessToken> [<idToken>]

API-Strategie

Die API-Strategie erwartet Anforderungen, die einen Autorisierungsheader mit einem gültigen Zugriffstoken enthalten. Die Anforderung kann auch ein Identitätstoken enthalten, dies ist jedoch nicht erforderlich. Wenn ein Token ungültig oder abgelaufen ist, gibt die API-Strategie einen HTTP 401-Fehler zurück, der den folgenden HTTP-Header enthält:

Www-Authenticate=Bearer scope="<scope>" error="<error>"

Wenn die Anforderung ein gültiges Token zurückgibt, wird die Steuerung an die nächste Middleware übergeben und die Eigenschaft appIdAuthorizationContext wird in das Anforderungsobjekt eingefügt. Diese Eigenschaft enthält die ursprünglichen Zugriffs- und Identitätstoken sowie die entschlüsselten Nutzdaten als einfache JSON-Objekte.

Web-App-Strategie

Wenn die Web-App-Strategie nicht berechtigte Versuche, auf geschützte Ressourcen zuzugreifen, feststellt, wird der Benutzerbrowser automatisch zur Authentifizierungsseite weitergeleitet. Diese kann durch App ID bereitgestellt werden. Nach der erfolgreichen Authentifizierung kehrt der Benutzer zur Callback-URL der Web-App zurück. Die Web-App-Strategie ruft Zugriffs- und Identitätstoken ab und speichert sie in einer HTTP-Sitzung unter WebAppStrategy.AUTH_CONTEXT. Der Benutzer kann entscheiden, ob die Zugriffs- und Identitätstoken in der App-Datenbank gespeichert werden sollen.

Weiterleitungs-URIs

App ID verwendet eine Liste vollständig qualifizierter, genehmigter URIs, um Ihre Benutzer nach einer Interaktion mit Ihrer App weiterzuleiten. Nachdem sich ein Benutzer z. B. erfolgreich angemeldet hat, leitet App ID den Benutzer zur Homepage Ihrer App oder zu einer anderen Seite weiter, die von Ihnen angegeben wurde. Das Format Ihres URI kann sich abhängig von Ihrer Anwendung ändern. Weitere Informationen zu diesem Thema finden Sie in Weiterleitungs-URIs hinzufügen.

JSON Web Key Set (JWKS)

Ein JWKS stellt eine Gruppe von Verschlüsselungsschlüsseln dar. App ID verwendet einen JWKS, um die Authentizität der vom Service generierten Tokens zu überprüfen. Wenn Sie die Schlüssel-ID verwenden, um die Signatur zu überprüfen, können Sie sicherstellen, dass das Token von einer vertrauenswürdigen Quelle ausgegeben wurde App ID. Wir können auch sicherstellen, dass die Informationen im Token nie geändert wurden.