Verbesserung
Wichtig
#28564
OpenAPI: Accept authorization token, even if it contains no user information
An authorization token may also be issued for a technical user (with only client credentials). API requests with such a token should not generally be rejected.
A token introspection response could look like:
{ "active":true, "client_type":"confidential", "token_type":"Bearer", "exp":1742811704, "client_id":"XXXXXXXXXXXXXXXXXX" }
The authorization information could also be made available to the executing script. In the script above, access checks could be required depending on the authenticated client ID.
On the other hand, for requests that are not handled in user context (for which no application user can be identified), it could be beneficial, if the request could be mapped to a system user in which context the request is executed and which is available for checking roles an permissions.
Verbesserung
- Bei einem API-Key kann ein technisches Benutzerkonto konfiguriert werden. Anfragen für diesen API-Key werden dann im Kontext dieses Benutzerkontos ausgeführt.
- Bei der OpenID-Authentifizierung kann ein Mapping von Client-ID auf technischen Benutzer konfiguriert werden, wenn die Authentifizierung im Nutzerkontext erfolgen soll. Wenn die Token-Introspection-Response keinen Nutzernamen liefert, wird für die Client-ID ein technischer Benutzername gesucht, in dessen Kontext die Anfrage bearbeitet werden soll.
Test
- API mit OpenID-Authentifizierung im Nutzerkontext und Abbildung von Client-ID auf technischen Benutzer konfigurieren. API mit Token ohne Nutzerkontext anfragen.
- API-Key mit technischem Benutzer konfigurieren und Anfrage mit diesem API-Key stellen.