In WebAC you can use the
acl:agentGroup property of an Authorization to point to a resource that holds a list of usernames. This allows you to create and manage groups of users within Fedora, and to assign different permissions to different groups. This how-to will guide you through the process of creating a resource, creating an
agentGroup, and limiting access to that resource through an ACL that references that
- a running Fedora repository
The commands in this guide assume that your Fedora repository is running at http://localhost:8080/fcrepo.
Create these three files:
Upload these resources into Fedora:
testusercan read the
The first request should respond with 200 OK, while the second should be 403 Forbidden.
adminuserto also read the
fooresource, we can add
adminuserto the members of the group.
Create group.sparql with the following contents:
Run this command to update the group and add
You should receive a 204 No Content response on success.
Now you should be able to repeat the command from step 3 and successfully retrieve the
This time, you should get a 200 OK response.
- For it to be useful, the names listed in the
vcard:memberproperties of an authorization need to be names that your authentication system will provide to Fedora. Remember, Fedora does no authentication of its own.
- The purpose of the
acl:agentGroupgroups is distinct from any group mechanism your existing authentication system may have (e.g., LDAP or ActiveDirectory groups). The groups provided by the authentication system would be passed to Fedora as security principals, which the WebAC module compares against the
acl:agentproperty. In other words, externally defined groups are opaque to Fedora, thus it treats them as simple agents.
Differences from 4.x
The WebAC implementation in Fedora 4.x used the
acl:agentClass predicate to point to group listing resources, and those group listing resources were expected to have the class
foaf:Group and identify their members using the
foaf:member property. We have changed this implementation in Fedora 5.x to align with the "Groups of Agents" section of the SOLID WebAC specification.