-
Notifications
You must be signed in to change notification settings - Fork 24
Description
For example, the upload. The user has an access token of:
{
"exp": 1731661671,
"iat": 1731661371,
"auth_time": 1731661290,
"jti": "d36fce31-b1ec-4568-a7db-29b3d4ff59ad",
"iss": "https://trustify-sso.dentrassi.de/realms/trustify",
"aud": "account",
"sub": "5049d7ed-4035-4be8-a23e-6e5d1e30f4e3",
"typ": "Bearer",
"azp": "frontend",
"session_state": "4167ef65-8290-41a6-9023-7ee1627922f5",
"allowed-origins": [
"*"
],
"realm_access": {
"roles": [
"default-roles-trustify",
"offline_access",
"chicken-user",
"uma_authorization"
]
},
"resource_access": {
"account": {
"roles": [
"manage-account",
"manage-account-links",
"view-profile"
]
}
},
"scope": "openid email profile read:document",
"sid": "4167ef65-8290-41a6-9023-7ee1627922f5",
"email_verified": false,
"name": "Jens Reimann",
"preferred_username": "ctron",
"given_name": "Jens",
"family_name": "Reimann",
"email": "ctron@dentrassi.de"
}The important part being: .scope = "… read:document". Missing create: or update: scopes. So it's read-only.
Still, the UI offers an upload screen, which then fails with a 403.
I think there should be an enpoint in the backend which the UI can use to check if an operation possible for the user. As the scope read:document is specific to the keycloak setup. Which translates to the read:advisory and read:sbom permission. However, that information/logic is unknown to the client. And differs between different OIDC providers (like AWS cognito).
My proposal would be to create an endpoint where the frontend can check if a permission is granted or not. Sending the bearer token and the requested permission. Which are, right now, defined by: https://github.com/trustification/trustify/blob/ed72d871cd9a9d2afe6ce30380d0bbd5edf7b497/common/auth/src/permission.rs#L57-L110
Metadata
Metadata
Assignees
Labels
Type
Projects
Status