generated from google/docsy-example
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add description of client registration variables/properties (#122)
- Loading branch information
1 parent
591577d
commit 9a80609
Showing
25 changed files
with
384 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
68 changes: 68 additions & 0 deletions
68
content/en/docs/reference/configuration/client-registration/_index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
--- | ||
title: "Client registration" | ||
linkTitle: "Client registration" | ||
weight: 7 | ||
--- | ||
|
||
IAM has the ability to enable or disable the client registration, and | ||
to limit the registration to certain users. | ||
The default behavior is that anyone can register a client, even | ||
anonymous users. | ||
|
||
To have control over the below properties using the environment | ||
variables, please check the [Configuration][conf] section. | ||
|
||
### Disable client registration | ||
|
||
In order to totally disable the client registration, set | ||
|
||
```yaml | ||
iam: | ||
client-registration: | ||
enable: false | ||
``` | ||
The client registration is enabled by default in IAM. | ||
### Specify who can register a client | ||
In order to specify who can register a client, please set one | ||
among _ANYONE_, _REGISTERED_USERS_ or _ADMINISTRATORS_ such | ||
to limit to all, IAM users or administrators only the | ||
client registration | ||
```yaml | ||
iam: | ||
client-registration: | ||
allow-for: <ANYONE|REGISTERED_USERS|ADMINISTRATORS> | ||
``` | ||
The client registration is enabled for anyone by default. | ||
### Default settings of a new client | ||
For any newly registered client, the default value of the related | ||
access token, device code, ID token and refresh token lifetimes | ||
can be set trough the following properties | ||
```yaml | ||
iam: | ||
client-registration: | ||
client-defaults: | ||
# IAM default is 1 hour | ||
default-access-token-validity-seconds: 3600 | ||
# IAM default is 10 minutes | ||
default-device-code-validity-seconds: 600 | ||
# IAM default is 10 minutes | ||
default-id-token-validity-seconds: 600 | ||
# IAM default is 30 days | ||
default-refresh-token-validity-seconds: 2592000 | ||
``` | ||
The above values can be changed per client trough web interface | ||
or API by an IAM administrator. | ||
[conf]: ../#client-registration |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+8.63 KB
content/en/docs/reference/configuration/registration/nickname-attribute.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
146 changes: 146 additions & 0 deletions
146
content/en/docs/reference/configuration/scim-response/_index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
--- | ||
title: "Handling SCIM response" | ||
linkTitle: "SCIM response" | ||
weight: 6 | ||
--- | ||
|
||
IAM already supports a set of [SCIM APIs](../../api/scim-api/_index.md) based on the System for Cross-domain | ||
Identity Management standard. Starting from IAM v1.9.0, the API response to GET requests on user details | ||
(i.e. `/scim/Me` and `/scim/Users`) are extended with more information. | ||
All the new details are included into the _IndigoUser_ field. | ||
To enable this feature, dedicated properties (or environment variables) must be used to maintain backward compatibility. | ||
|
||
The list of information that may be included into the SCIM response are: | ||
|
||
* user's autorities | ||
* set of user-managed groups | ||
* set of user's attributes. | ||
|
||
|
||
### Authorities | ||
|
||
In order to include the list of user's authorities (i.e. `ROLE_USER`, `ROLE_ADMIN`, `ROLE_GM:<group-uid>`, etc.) into the SCIM response, | ||
one should set the following property (default is false): | ||
|
||
```yaml | ||
scim: | ||
include_authorities: true | ||
``` | ||
or the environment variable `IAM_SCIM_INCLUDE_AUTHORITIES=true`. | ||
|
||
Then, an example of SCIM Me output for an administrator user is the following: | ||
|
||
``` | ||
{ | ||
"id": "73f16d93-2441-4a50-88ff-85360d78c6b5", | ||
"meta": { ... }, | ||
"schemas": [ | ||
"urn:ietf:params:scim:schemas:core:2.0:User", | ||
"urn:indigo-dc:scim:schemas:IndigoUser" | ||
], | ||
... | ||
"userName": "admin", | ||
... | ||
"active": true, | ||
"urn:indigo-dc:scim:schemas:IndigoUser": { | ||
"oidcIds": [ ... ], | ||
"samlIds": [ ... ], | ||
"certificates": [ ... ], | ||
"authorities": [ | ||
"ROLE_ADMIN", | ||
"ROLE_USER" | ||
] | ||
} | ||
} | ||
``` | ||
|
||
|
||
### Managed groups | ||
|
||
In order to include the list of user-managed groups into the SCIM response, | ||
one should set the following property (default is false): | ||
|
||
```yaml | ||
scim: | ||
include_managed_groups: true | ||
``` | ||
|
||
or the environment variable `IAM_SCIM_INCLUDE_MANAGED_GROUPS=true`. | ||
|
||
Then, an example of SCIM Me output for a group manager is the following: | ||
|
||
``` | ||
{ | ||
"id":"80e5fb8d-b7c8-451a-89ba-346ae278a66f", | ||
"meta":{ ... }, | ||
"schemas":[ | ||
"urn:ietf:params:scim:schemas:core:2.0:User", | ||
"urn:indigo-dc:scim:schemas:IndigoUser" | ||
], | ||
... | ||
"userName": "gm-user", | ||
... | ||
"active": "true", | ||
"urn":"indigo-dc:scim:schemas:IndigoUser":{ | ||
"oidcIds":[ ... ] | ||
"samlIds":[ ... ], | ||
"endTime": "2024-08-06T02:00:00.000+02:00", | ||
"managedGroups":[ | ||
{ | ||
"display":"Analysis", | ||
"value":"6a384bcd-d4b3-4b7f-a2fe-7d897ada0dd1", | ||
"$ref":"http://localhost:8080/scim/Groups/6a384bcd-d4b3-4b7f-a2fe-7d897ada0dd1" | ||
}, | ||
{ | ||
"display":"Production", | ||
"value":"c617d586-54e6-411d-8e38-64967798fa8a", | ||
"$ref":"http://localhost:8080/scim/Groups/c617d586-54e6-411d-8e38-64967798fa8a" | ||
} | ||
] | ||
} | ||
} | ||
``` | ||
|
||
### Attributes | ||
|
||
In order to include the list of user's attributes, selected by attribute name, into the SCIM response, | ||
one should set the following property (default is false): | ||
|
||
```yaml | ||
scim: | ||
include_attributes: | ||
- name: nickname | ||
- name: another-attribute-name | ||
``` | ||
|
||
Then, an example of SCIM Me output for an IAM user is the following: | ||
|
||
``` | ||
{ | ||
"id":"d836e5ec-246c-456c-8476-923ee2f831c8", | ||
"meta":{ ... }, | ||
"schemas":[ | ||
"urn:ietf:params:scim:schemas:core:2.0:User", | ||
"urn:indigo-dc:scim:schemas:IndigoUser" | ||
], | ||
... | ||
"userName": "tester", | ||
... | ||
"active": "true", | ||
"urn":"indigo-dc:scim:schemas:IndigoUser":{ | ||
"oidcIds":[ ... ] | ||
"samlIds":[ ... ], | ||
"endTime": "2024-08-06T02:00:00.000+02:00", | ||
"attributes":[ | ||
{ | ||
"name":"nickname", | ||
"value":"tester" | ||
} | ||
], | ||
"endTime": "2024-08-06T02:00:00.000+02:00" | ||
} | ||
} | ||
``` | ||
|
||
In this example the user has only one attribute, named _nickname_, so the second attribute (_another-attribute-name_) is not shown into the SCIM response. |
Oops, something went wrong.