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: src/content/docs/identityserver/configuration/index.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,10 +18,11 @@ The Configuration API is a collection of endpoints that allow for management and
18
18
implementation. The Configuration API can be hosted either separately or within the IdentityServer implementation, and is
19
19
distributed through the separate [Duende.IdentityServer.Configuration NuGet package](https://www.nuget.org/packages/Duende.IdentityServer.Configuration).
20
20
21
-
Currently, the Configuration API supports the [Dynamic Client Registration](/identityserver/configuration/dcr.mdx) protocol.
21
+
Currently, the Configuration API supports the [Dynamic Client Registration](/identityserver/configuration/dcr.mdx) protocol.
22
22
23
-
The Configuration API is part of the [Duende IdentityServer](https://duendesoftware.com/products/identityserver) Business Edition or higher. The same [license](https://duendesoftware.com/products/identityserver#pricing)
24
-
and [special offers](https://duendesoftware.com/specialoffers) apply.
23
+
:::note
24
+
This feature is part of the [Duende IdentityServer Business and Enterprise Edition](https://duendesoftware.com/products/identityserver).
25
+
:::
25
26
26
27
The Configuration API source code is available [on GitHub](https://github.com/DuendeSoftware/products/tree/main/identity-server/src/Configuration).
Copy file name to clipboardExpand all lines: src/content/docs/identityserver/fundamentals/resources/isolation.md
+16-13Lines changed: 16 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,10 +11,10 @@ redirect_from:
11
11
---
12
12
13
13
:::note
14
-
This is an Enterprise Edition feature.
14
+
This feature is part of the [Duende IdentityServer Enterprise Edition](https://duendesoftware.com/products/identityserver).
15
15
:::
16
16
17
-
OAuth itself only knows about scopes - the (API) resource concept does not exist from a pure protocol point of view.
17
+
OAuth itself only knows about scopes - the (API) resource concept does not exist from a pure protocol point of view.
18
18
This means that all the requested scope and audience combination get merged into a single access token.
19
19
This has a couple of downsides:
20
20
@@ -25,8 +25,8 @@ This has a couple of downsides:
25
25
* resource specific processing like signing or encryption algorithms conflict
26
26
* without sender-constraints, a resource could potentially re-use (or abuse) a token to call another contained resource directly
27
27
28
-
To solve this problem [RFC 8707](https://tools.ietf.org/html/rfc8707) adds another request parameter for the authorize and token endpoint called `resource`.
29
-
This allows requesting a token for a specific resource (in other words - making sure the audience claim has a single
28
+
To solve this problem [RFC 8707](https://tools.ietf.org/html/rfc8707) adds another request parameter for the authorize and token endpoint called `resource`.
29
+
This allows requesting a token for a specific resource (in other words - making sure the audience claim has a single
30
30
value only, and all scopes belong to that single resource).
31
31
32
32
## Using The Resource Parameter
@@ -52,7 +52,8 @@ If the client would request a token for the `read` scope, the resulting access t
52
52
the invoice and the products API and thus be accepted at both APIs.
53
53
54
54
### Machine to Machine Scenarios
55
-
If the client in addition passes the `resource` parameter specifying the name of the resource where it wants to use
55
+
56
+
If the client in addition passes the `resource` parameter specifying the name of the resource where it wants to use
56
57
the access token, the token engine can `down-scope` the resulting access token to the single resource, e.g.:
57
58
58
59
```text
@@ -70,13 +71,14 @@ Thus resulting in an access token like this (some details omitted):
70
71
71
72
```json
72
73
{
73
-
"aud": ["urn:invoice"],
74
-
"scope": "read",
75
-
"client_id": "client"
74
+
"aud": ["urn:invoice"],
75
+
"scope": "read",
76
+
"client_id": "client"
76
77
}
77
78
```
78
79
79
80
### Interactive Applications
81
+
80
82
The authorize endpoint supports the `resource` parameter as well, e.g.:
81
83
82
84
```text
@@ -98,6 +100,7 @@ resource=urn:invoices
98
100
```
99
101
100
102
### Requesting Access To Multiple Resources
103
+
101
104
It is also possible to request access to multiple resources. This will result in multiple access tokens - one for each request resource.
102
105
103
106
```text
@@ -135,7 +138,8 @@ resource=urn:products
135
138
The end-result will be that the client has two access tokens - one for each resource and can manage their lifetime via the refresh token.
136
139
137
140
## Enforcing Resource Isolation
138
-
All examples so far used the `resource` parameter optionally. If you have API resources, where you want to make sure
141
+
142
+
All examples so far used the `resource` parameter optionally. If you have API resources, where you want to make sure
139
143
they are not sharing access tokens with other resources, you can enforce the resource indicator, e.g.:
140
144
141
145
```csharp title="ApiResources.cs" {6,12}
@@ -156,11 +160,11 @@ var resources = new[]
156
160
```
157
161
158
162
The `RequireResourceIndicator` property **does not** mean that clients are forced to send the `resource` parameter when
159
-
they request scopes associated with the API resource. You can still request those scopes without setting the `resource`
160
-
parameter (or including the resource), and IdentityServer will issue a token as long as the client is allowed to request
163
+
they request scopes associated with the API resource. You can still request those scopes without setting the `resource`
164
+
parameter (or including the resource), and IdentityServer will issue a token as long as the client is allowed to request
161
165
the scopes.
162
166
163
-
Instead, `RequireResourceIndicator` controls **when** the resource's URI is included in the **audience claim** (`aud`)
167
+
Instead, `RequireResourceIndicator` controls **when** the resource's URI is included in the **audience claim** (`aud`)
164
168
of the issued access token.
165
169
166
170
* When `RequireResourceIndicator` is `false` (the default):
@@ -169,4 +173,3 @@ of the issued access token.
169
173
* When `RequireResourceIndicator` is `true`:
170
174
The API's resource URI will **only** be included in the audience **if the client explicitly includes the resource URI**
171
175
via the `resource` parameter when requesting the token.
Copy file name to clipboardExpand all lines: src/content/docs/identityserver/overview/specs.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,10 @@ redirect_from:
13
13
14
14
Duende IdentityServer implements the following specifications:
15
15
16
+
:::note
17
+
Some specifications are only available in the [Duende IdentityServer Business or Enterprise Edition](https://duendesoftware.com/products/identityserver).
0 commit comments