-
Notifications
You must be signed in to change notification settings - Fork 86
Client Registration Settings
Anvil Connect can be configured for three types of client registration: dynamic
, token
, or scoped
, each being more restrictive than the previous option. The default client_registration
type is scoped
.
With client_registration
set to dynamic
, any party can register a client with the authorization server.
Optionally, a bearer token may be provided in the authorization header per RFC6750. If a valid access token is presented with a registration request, the client will be associated with the user represented by that token.
A trusted client may be registered, however, an access token must be presented and the token must have sufficient scope to register trusted clients. The scope required to register a trusted client defaults to realm
. This value can be configured with the trusted_registration_scope
setting.
// config.NODE_ENV.json
{
// ...
"client_registration": "dynamic",
"trusted_registration_scope": "register"
// ...
}
The following table indicates expected responses to Dynamic Client Registration requests.
trusted | w/token | w/scope | response |
---|---|---|---|
201 | |||
x | 403 | ||
x | 201 | ||
x | x | 403 | |
x | x | x | 201 |
x | x | 201 |
Client registration can be restricted so that a valid user access token is required by setting client_registration
to token
. In this case, any request without a token will fail. As with Dynamic Client Registration, in order to register a trusted client, the access token must have sufficient scope.
// config.NODE_ENV.json
{
// ...
"client_registration": "token",
"trusted_registration_scope": "realm"
// ...
}
trusted | w/token | w/scope | response |
---|---|---|---|
403 | |||
x | 403 | ||
x | 201 | ||
x | x | 403 | |
x | x | x | 201 |
x | x | 201 |
Third party registration can be restricted altogether with the scoped
client_registration
setting. In this case, all registration requires a prescribed registration_scope
.
// config.NODE_ENV.json
{
// ...
"client_registration": "scoped",
"registration_scope": "realm"
// ...
}
trusted | w/token | w/scope | response |
---|---|---|---|
403 | |||
x | 403 | ||
x | 403 | ||
x | x | 403 | |
x | x | x | 201 |
x | x | 201 |