2016-11-29 15:30:53 +00:00
[[_resource_create]]
2016-06-05 22:17:31 +00:00
== Creating Resources
2016-09-09 03:53:39 +00:00
Creating a resource is straightforward and generic. Your main concern is the granularity of the resources you create. In other words, resources can
2016-11-15 21:34:20 +00:00
be created to represent a set of one or more resources and the way you define them is crucial to managing permissions.
2016-06-05 22:17:31 +00:00
2016-11-15 21:34:20 +00:00
To create a new resource, click *Create* in the right upper corner of the resource listing.
2016-06-14 23:50:50 +00:00
.Add Resource
image:../../images/resource/create.png[alt="Add Resource"]
In {{book.project.name}}, a resource defines a small set of information that is common to different types of resources, such as:
2016-06-05 22:17:31 +00:00
* *Name*
+
2016-09-09 03:53:39 +00:00
A human-readable and unique string describing this resource.
2016-07-26 21:34:49 +00:00
2016-11-29 15:30:53 +00:00
[[_resource_create_type]]
2016-06-05 22:17:31 +00:00
* *Type*
+
2016-09-09 03:53:39 +00:00
A string uniquely identifying the type of a set of one or more resources. The type is a _string_ used to group different resource instances.
For example, the default type for the default resource that is automatically created is `urn:resource-server-name:resources:default`
2016-06-14 23:50:50 +00:00
2016-11-29 15:30:53 +00:00
[[_resource_create_uri]]
2016-06-05 22:17:31 +00:00
* *URI*
+
A URI that provides the location/address for the resource. For HTTP resources, the URI
is usually the relative path used to serve these resources.
+
* *Scopes*
+
2016-11-15 21:34:20 +00:00
One or more scopes to associate with the resource.
2016-06-05 22:17:31 +00:00
=== Typed Resources
2016-11-15 21:34:20 +00:00
The type field of a resource can be used to group different resources together, so they can be protected using a common set of permissions.
2016-06-05 22:17:31 +00:00
=== Resource Owners
Resources also have an owner. By default, resources are owned by the resource server.
2016-11-15 21:34:20 +00:00
However, resources can also be associated with users, so you can create permissions based on the resource owner. For example, only the resource owner is allowed to delete or update a given resource.
2016-06-05 22:17:31 +00:00
=== Managing Resources Remotely
2016-11-29 15:30:53 +00:00
Resource management is also exposed through the <<fake/../../service/protection/protection-api.adoc#_service_protection_api, Protection API>> to allow resource servers to remotely manage their resources.
2016-06-05 22:17:31 +00:00
When using the Protection API, resource servers can be implemented to manage resources owned by their users. In this case, you can
specify the user identifier to configure a resource as belonging to a specific user.
[NOTE]
2016-09-09 03:53:39 +00:00
{{book.project.name}} provides resource servers complete control over their resources. In the future, we should be able to
2016-11-15 21:34:20 +00:00
allow users to control their own resources as well as approve authorization requests and manage permissions, especially when using the UMA protocol.