Skip to content

Instantly share code, notes, and snippets.

@pedroigor
Last active October 14, 2024 20:23
Show Gist options
  • Save pedroigor/1485c333ca3be0f1ce1353167c3d1f9d to your computer and use it in GitHub Desktop.
Save pedroigor/1485c333ca3be0f1ce1353167c3d1f9d to your computer and use it in GitHub Desktop.
Discussion with Stan about FGA and the authorization model
- Create Permission UI
# Permissions to manage all users in a realm
* Resource Type: Users <required>
* Scope: update | read | delete | create
* Allow Users: <select a group> | <select role> | <select whatever we think makes sense as a access control mechanism> <mandatory>
# Permissions to manage users from a group and manage groups in a realm
* Resource Type: Group <required>
* Resource: <groupid> <optional>
* Scope: create| update | read | delete | update-members | read-members | update-membership
* Allow Users: <select a group>
# Permissions to manage clients in a realm
* Resource Type: Client <required>
* Resource: <clientid> <optional>
* Scope: create| update | read | delete | token-exchange
* Allow Users: <select a group> | <select a client>
interface AuthorizationModel {
getScopes();
getSupportedPolicies();
}
ClientModel implements AuthorizationModel {
// override
}
{
"type": group,
"scopes": ["foo", "bar"]
"supportedPolicies: ["group", "client"]
}
{
"type": "group",
"scopes": {
"foo": {
uri: "/admin/realms/groups/{id}",
"verb": "put"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment