You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: reference/relation.md
+24-2Lines changed: 24 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,30 @@
2
2
# Relation
3
3
> See also: {ref}`manage-relations`
4
4
5
-
In JAAS, like in [OpenFGA](https://openfga.dev/docs/concepts#what-is-a-relation), a relation is about Relation Based Access Control (**ReBAC**) and describes the relationship between two entities.
5
+
In JAAS, following [Relation Based Access Control (**ReBAC**)](https://en.wikipedia.org/wiki/Relationship-based_access_control) and using [OpenFGA](https://openfga.dev/docs/concepts#what-is-a-relation), a relation is a tuple that represents the relationship between two entities A and B, where
6
+
7
+
- entity A ('object') is the entity that receives (or uses) the relationship and
8
+
- entity B ('target') is the entity that provides the relationship, and
9
+
- the relationship itself is about permission for A to perform an action on B; that is, a relation represents an entitlement of A on B.
10
+
11
+
For example, if a `user` named `[email protected]` has the `member` relation with a group named `foo`, then the tuple that represents this relation will look like this:
This reads as: "an entity of type `user`, named `[email protected]`, has the `member` relationship to an entity of type `group`, named `foo`.
20
+
21
+
> See more: {ref}`list-of-controller-relations`, {ref}`list-of-cloud-relations`, {ref}`list-of-model-relations`, {ref}`list-of-offer-relations`, {ref}`list-of-service-account-relations`, {ref}`list-of-role-relations`, {ref}`list-of-group-relations`
22
+
23
+
24
+
25
+
```{note}
26
+
**JAAS vs. OpenFGA.**
27
+
JAAS terminology is slightly different from OpenFGA. In OpenFGA, entity A and entity B are called 'user' and 'object', but in JAAS, they are called 'object' and 'target'.
28
+
```
6
29
7
30
8
31
```{important}
@@ -13,4 +36,3 @@ JAAS relations have nothing to the with {external+juju:ref}`Juju relations <rela
13
36
JAAS relations are currently similar to {external+juju:ref}`Juju access levels <user-access-levels>` -- they're both about permissions. The difference is that the relation paradigm is much broader; the list of relations is anticipated to become a superset of Juju access levels; and, while Juju access levels are always about a user's permissions on a controller, cloud, model, or offer, JAAS relations encompass many more entities on both sides, e.g., groups, roles, and service accounts.
14
37
```
15
38
16
-
> See more: {ref}`list-of-controller-relations`, {ref}`list-of-cloud-relations`, {ref}`list-of-model-relations`, {ref}`list-of-offer-relations`, {ref}`list-of-service-account-relations`, {ref}`list-of-role-relations`, {ref}`list-of-group-relations`
0 commit comments