Keycloak-bezogene Konzepte

Zugangstoken

accessToken ist ein Zugriffstoken, das Informationen zur Benutzerautorisierung enthält , z. B. Autorisierungsumfang und Ablaufzeit. Das accessToken wird über das OAuth 2.0-Protokoll ausgestellt und für den Zugriff auf geschützte Ressourcen verwendet.
Nutzlast von accessToken:

{
    
    
    "exp": 1693065343,
    "iat": 1693065043,
    "jti": "25a23da2-b2b2-4a41-ac83-58aa48db801b",
    "iss": "http://localhost:8090/realms/realm-01",
    "aud": "account",
    "sub": "648b5f20-3067-434e-84f6-5f916278b3c2",
    "typ": "Bearer",
    "azp": "web-client",
    "session_state": "25934902-72ae-41f4-a6d3-f27e7993d863",
    "acr": "1",
    "allowed-origins": ["/*"],
    "realm_access": {
    
    
        "roles": ["default-roles-realm-01", "offline_access", "uma_authorization"]
    },
    "resource_access": {
    
    
        "account": {
    
    
            "roles": ["manage-account", "manage-account-links", "view-profile"]
        }
    },
    "scope": "openid email profile",
    "sid": "25934902-72ae-41f4-a6d3-f27e7993d863",
    "email_verified": false,
    "preferred_username": "user-001",
    "given_name": "",
    "family_name": ""
}

idToken

idToken ist ein Identitätstoken, das Informationen zur Benutzerauthentifizierung enthält , beispielsweise Benutzer-ID und Benutzername. Das idToken wird über das OpenID Connect-Protokoll ausgestellt und dient zur Überprüfung der Benutzeridentität und zur Autorisierung des Zugriffs auf Ressourcen.
idToken-Nutzlast:

{
    
    
    "exp": 1693065343,
    "iat": 1693065043,
    "auth_time": 0,
    "jti": "9e9800c9-2265-4db5-af83-0079c6d07f0e",
    "iss": "http://localhost:8090/realms/realm-01",
    "aud": "web-client",
    "sub": "648b5f20-3067-434e-84f6-5f916278b3c2",
    "typ": "ID",
    "azp": "web-client",
    "session_state": "25934902-72ae-41f4-a6d3-f27e7993d863",
    "at_hash": "n0Js0LT-eThM1c4nzZpoLg",
    "acr": "1",
    "sid": "25934902-72ae-41f4-a6d3-f27e7993d863",
    "email_verified": false,
    "preferred_username": "user-001",
    "given_name": "",
    "family_name": ""
}

Aktualisierungstoken

„refreshToken“-Nutzlast:

{
    
    
    "exp": 1693066843,
    "iat": 1693065043,
    "jti": "7bfcd83f-591b-44f7-be5e-c1aac9f0c30a",
    "iss": "http://localhost:8090/realms/realm-01",
    "aud": "http://localhost:8090/realms/realm-01",
    "sub": "648b5f20-3067-434e-84f6-5f916278b3c2",
    "typ": "Refresh",
    "azp": "web-client",
    "session_state": "25934902-72ae-41f4-a6d3-f27e7993d863",
    "scope": "openid email profile",
    "sid": "25934902-72ae-41f4-a6d3-f27e7993d863"
}

JWT-Token

JWT-Token ist ein leichtgewichtiges Token, das zur Weitergabe von Authentifizierungs- und Autorisierungsinformationen zwischen verschiedenen Anwendungen verwendet wird.
JWT-Tokens können je nach Design und Anforderungen der Anwendung vom Server oder Client generiert werden.
Clientseitige Generierung: Wenn die Anwendung bei der Benutzeranmeldung ein JWT-Token generieren und im Client (z. B. einem Browser) speichern muss, ist der Client für die Generierung des JWT-Tokens verantwortlich. In diesem Fall verwendet der Client normalerweise die Anmeldeinformationen des Benutzers (z. B. Benutzername und Passwort), um ein JWT-Token zu generieren.
Serverseitige Generierung: Wenn die Anwendung jedes Mal, wenn eine geschützte Ressource angefordert wird, ein JWT-Token generieren muss, ist die Serverseite für die Generierung des JWT-Tokens verantwortlich. In diesem Fall verwendet der Server normalerweise den geheimen Schlüssel der Anwendung, um das JWT-Token zu generieren.

Der Unterschied zwischen Access Token und JWT Token:

Access Token und JWT Token sind beides Token, die zur Authentifizierung und Autorisierung verwendet werden, sie weisen jedoch die folgenden Unterschiede auf:

  1. Access Token ist ein Token im OAuth 2.0-Protokoll und wird für den Zugriff auf geschützte Ressourcen verwendet. Es wird in der Regel von einem Autorisierungsserver ausgestellt und enthält Informationen über den Token-Inhaber und die Autorisierung. JWT-Token ist ein leichtgewichtiges Token, das zur Übertragung von Authentifizierungs- und Autorisierungsinformationen zwischen verschiedenen Anwendungen verwendet wird.
  2. Der Zugriffstoken ist in der Regel kurzfristig und muss nach Ablauf erneut erworben werden, während der JWT-Token die Ablaufzeit festlegen oder einen Aktualisierungstoken zum Aktualisieren verwenden kann.
  3. Zugriffstoken erfordern normalerweise eine Interaktion mit einem Autorisierungsserver, um das Token zu überprüfen und zu aktualisieren, wohingegen JWT-Token ohne Interaktion mit einem Autorisierungsserver überprüft und entschlüsselt werden können.

Client-Zugriffstyp

Zugriffstypen werden verwendet, um Client-Zugriffsrechte und -Sicherheit zu steuern.

  • Public
    ist ein öffentlicher Client und erfordert für den Zugriff keine Authentifizierung.
    Geeignet für Clientanwendungen, die eine Browseranmeldung erfordern. Zum Beispiel: Front-End-Websystem.
  • Vertraulicher
    vertraulicher Client. Für den Zugriff müssen Sie die Client-ID und das Client-Geheimnis angeben.
    Geeignet für serverseitige Anwendungen, die eine Browseranmeldung und den Erwerb eines Zugriffstokens erfordern. Zum Beispiel: serverseitiges Rendering-Websystem.
  • Für API-Dienste werden Nur-Bearer-
    Clients verwendet, die nur Bearer-Token unterstützen.
    Geeignet für serverseitige Anwendungen, die keine Browseranmeldung erfordern und nur Bearer-Token-Anfragen zulassen.

Reich

keycloak enthält zwei Felder:

  • Das Master-
    Feld wird für Sie erstellt, wenn Sie Keycloak zum ersten Mal starten. Es enthält das Administratorkonto, das Sie bei der ersten Anmeldung erstellt haben. Sie verwenden dieses Feld nur zum Erstellen anderer Felder.
  • Andere Bereiche
    werden von Administratoren im Hauptbereich erstellt. Innerhalb dieser Bereiche erstellen Administratoren Benutzer und Anwendungen. Anwendungen sind Eigentum der Benutzer.

Guess you like

Origin blog.csdn.net/qq_37597428/article/details/132514149