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
More detail is included in the next section about what happens during the authentication and how to configure OAuth 2.0 beyond the basic configuration shown previously.
118
118
119
-
###Authorization Flow {#authorization-flow}
119
+
## Authorization Flow {#authorization-flow}
120
120
121
121
This plugin does not communicate with any OAuth 2.0 provider in order to authenticate user and grants access. Instead, it decodes an access token provided by the client and authorises a user based on the scopes found in the token.
122
122
@@ -138,7 +138,7 @@ In chronological order, here is the sequence of events that occur when a client
138
138
5. RabbitMQ validates that the token has the **audience** claim and whose value matches the `resource_server_id` (this operation can be deactivated by setting `auth_oauth2.verify_aud` to `false`).
139
139
6. RabbitMQ translates the **scopes** found in the token into RabbitMQ **permissions** (the same permissions used in the RabbitMQ's internal database).
140
140
141
-
###Variables configurable in rabbitmq.conf {#variables-configurable}
141
+
## Variables Configurable in rabbitmq.conf {#variables-configurable}
@@ -166,7 +166,7 @@ In chronological order, here is the sequence of events that occur when a client
166
166
| `auth_oauth2.default_oauth_provider` | ID of the OAuth 2.0 provider used for the `auth_oauth2.resource_servers`, that did not specify any (via the variable `oauth_provider_id`) or when `auth_oauth2.jwks_uri` and `auth_oauth2.issuer` are both missing.
167
167
168
168
169
-
####Resource Server ID {#resource-server-id}
169
+
## Resource Server ID {#resource-server-id}
170
170
171
171
A RabbitMQ cluster must have at least one resource server identifier configured. If it has just one resource, this is configured in the `auth_oauth2.resource_server_id` variable and it is **mandatory**.
172
172
If the RabbitMQ cluster has more than one OAuth resource then they are configured under `auth_oauth2.resource_servers.<index>` and in this case `auth_oauth2.resource_server_id` variable is not mandatory.
@@ -175,7 +175,7 @@ RabbitMQ uess the resource server identity for these two purposes:
175
175
- To validate the token's audience (`aud`) whose value must contain the resource server identifier. This validation can be disabled though.
176
176
- To initiate the OAuth 2.0 Authorization Code flow in the Management UI. This is the flow used to authenticate a user and to get its access token. RabbitMQ must include the resource server identifier in the request's attribute called `resource`.
177
177
178
-
####Scope prefix {#scope-prefix}
178
+
## Scope Prefix {#scope-prefix}
179
179
180
180
OAuth 2.0 tokens use scopes to communicate what set of permissions particular client are granted. The scopes are free form strings.
181
181
@@ -196,7 +196,7 @@ auth_oauth2.scope_prefix = ''
196
196
...
197
197
```
198
198
199
-
####Scope Aliases {#scope-aliases}
199
+
## Scope Aliases {#scope-aliases}
200
200
201
201
:::important
202
202
@@ -245,7 +245,7 @@ auth_oauth2.scope_aliases.2.scope = rabbitmq.tag:management rabbitmq.read:*/* ra
245
245
# ...
246
246
```
247
247
248
-
####Signing Keys Files {#signing-key-files}
248
+
## Signing Keys Files {#signing-key-files}
249
249
250
250
The following configuration declares two signing keys and configures the kid of the default signing key. For more information check the section [Configure Signing keys](#configure-signing-keys).
The following configuration sets the JWKS endpoint from which RabbitMQ downloads the signing keys using the configured CA certificate and TLS variables.
Each `auth_oauth2.resource_servers.<id/index>.` entry has the following variables shown in the table below. Except for the variables `id` and `oauth_provider_id`, if a resource does not configure a variable, RabbitMQ uses the variable configured at the root level. For instance, if the resource `auth_oauth2.resource_servers.prod` does not configure `preferred_username_claims` variable, RabbitMQ uses the value configured in `auth_oauth2.preferred_username_claims` for the resource `prod`.
284
284
@@ -307,7 +307,7 @@ auth_oauth2.resource_servers.2.id = dev
307
307
308
308
See the advanced usage section called [Multiple Resource Servers](#multiple-resource-servers) for more information on how to configure them.
Next, let's take a look at the workflows the OAuth 2 plugin supports.
80
80
81
-
###Prerequisites {#prerequisites}
81
+
## Prerequisites {#prerequisites}
82
82
83
83
To use the OAuth 2 plugin, all RabbitMQ nodes must be
84
84
@@ -109,7 +109,7 @@ Also, the `https://my-oauth2-provider.com/realm/rabbitmq/.well-known/openid-conf
109
109
110
110
More detail is included in the next section about what happens during the authentication and how to configure OAuth 2.0 beyond the basic configuration shown previously.
111
111
112
-
###Authorization Flow {#authorization-flow}
112
+
## Authorization Flow {#authorization-flow}
113
113
114
114
This plugin does not communicate with any OAuth 2.0 provider in order to authenticate user and grants access. Instead, it decodes an access token provided by the client and authorises a user based on the scopes found in the token.
115
115
@@ -131,7 +131,7 @@ In chronological order, here is the sequence of events that occur when a client
131
131
5. RabbitMQ validates that the token has the **audience** claim and whose value matches the `resource_server_id` (this operation can be deactivated by setting `auth_oauth2.verify_aud` to `false`).
132
132
6. RabbitMQ translates the **scopes** found in the token into RabbitMQ **permissions** (the same permissions used in the RabbitMQ's internal database).
133
133
134
-
###Variables configurable in rabbitmq.conf {#variables-configurable}
134
+
## Variables Сonfigurable in rabbitmq.conf {#variables-configurable}
@@ -158,7 +158,7 @@ In chronological order, here is the sequence of events that occur when a client
158
158
| `auth_oauth2.default_oauth_provider` | ID of the OAuth 2.0 provider used for the `auth_oauth2.resource_servers`, that did not specify any (via the variable `oauth_provider_id`) or when `auth_oauth2.jwks_url` and `auth_oauth2.issuer` are both missing.
159
159
160
160
161
-
####Resource Server ID {#resource-server-id}
161
+
## Resource Server ID {#resource-server-id}
162
162
163
163
A RabbitMQ cluster must have at least one resource server identifier configured. If it has just one resource, this is configured in the `auth_oauth2.resource_server_id` variable and it is **mandatory**.
164
164
If the RabbitMQ cluster has more than one OAuth resource then they are configured under `auth_oauth2.resource_servers.<index>` and in this case `auth_oauth2.resource_server_id` variable is not mandatory.
@@ -167,7 +167,7 @@ RabbitMQ uess the resource server identity for these two purposes:
167
167
- To validate the token's audience (`aud`) whose value must contain the resource server identifier. This validation can be disabled though.
168
168
- To initiate the OAuth 2.0 Authorization Code flow in the Management UI. This is the flow used to authenticate a user and to get its access token. RabbitMQ must include the resource server identifier in the request's attribute called `resource`.
169
169
170
-
####Scope prefix {#scope-prefix}
170
+
## Scope Prefix {#scope-prefix}
171
171
172
172
OAuth 2.0 tokens use scopes to communicate what set of permissions particular client are granted. The scopes are free form strings.
The following configuration declares two signing keys and configures the kid of the default signing key. For more information check the section [Configure Signing keys](#configure-signing-keys).
The followibng configuration sets the JWKS endpoint from which RabbitMQ downloads the signing keys using the configured CA certificate and TLS variables.
Each `auth_oauth2.resource_servers.<id/index>.` entry has the following variables shown in the table below. Except for the variables `id` and `oauth_provider_id`, if a resource does not configure a variable, RabbitMQ uses the variable configured at the root level. For instance, if the resource `auth_oauth2.resource_servers.prod` does not configure `preferred_username_claims` variable, RabbitMQ uses the value configured in `auth_oauth2.preferred_username_claims` for the resource `prod`.
219
219
@@ -239,7 +239,7 @@ auth_oauth2.resource_servers.2.id = dev
239
239
240
240
See the advanced usage section called [Multiple Resource Servers](#multiple-resource-servers) for more information on how to configure them.
Next, let's take a look at the workflows the OAuth 2 plugin supports.
80
80
81
-
###Prerequisites {#prerequisites}
81
+
## Prerequisites {#prerequisites}
82
82
83
83
To use the OAuth 2 plugin, all RabbitMQ nodes must be
84
84
@@ -109,7 +109,7 @@ Also, the `https://my-oauth2-provider.com/realm/rabbitmq/.well-known/openid-conf
109
109
110
110
More detail is included in the next section about what happens during the authentication and how to configure OAuth 2.0 beyond the basic configuration shown previously.
111
111
112
-
###Authorization Flow {#authorization-flow}
112
+
## Authorization Flow {#authorization-flow}
113
113
114
114
This plugin does not communicate with any OAuth 2.0 provider in order to authenticate user and grants access. Instead, it decodes an access token provided by the client and authorises a user based on the scopes found in the token.
115
115
@@ -131,7 +131,7 @@ In chronological order, here is the sequence of events that occur when a client
131
131
5. RabbitMQ validates that the token has the **audience** claim and whose value matches the `resource_server_id` (this operation can be deactivated by setting `auth_oauth2.verify_aud` to `false`).
132
132
6. RabbitMQ translates the **scopes** found in the token into RabbitMQ **permissions** (the same permissions used in the RabbitMQ's internal database).
133
133
134
-
###Variables configurable in rabbitmq.conf {#variables-configurable}
134
+
## Variables Сonfigurable in rabbitmq.conf {#variables-configurable}
@@ -159,7 +159,7 @@ In chronological order, here is the sequence of events that occur when a client
159
159
160
160
161
161
162
-
####Resource Server ID {#resource-server-id}
162
+
## Resource Server ID {#resource-server-id}
163
163
164
164
A RabbitMQ cluster must have at least one resource server identifier configured. If it has just one resource, this is configured in the `auth_oauth2.resource_server_id` variable and it is **mandatory**.
165
165
If the RabbitMQ cluster has more than one OAuth resource then they are configured under `auth_oauth2.resource_servers.<index>` and in this case `auth_oauth2.resource_server_id` variable is not mandatory.
@@ -168,7 +168,7 @@ RabbitMQ uess the resource server identity for these two purposes:
168
168
- To validate the token's audience (`aud`) whose value must contain the resource server identifier. This validation can be disabled though.
169
169
- To initiate the OAuth 2.0 Authorization Code flow in the Management UI. This is the flow used to authenticate a user and to get its access token. RabbitMQ must include the resource server identifier in the request's attribute called `resource`.
170
170
171
-
####Scope prefix {#scope-prefix}
171
+
## Scope Prefix {#scope-prefix}
172
172
173
173
OAuth 2.0 tokens use scopes to communicate what set of permissions particular client are granted. The scopes are free form strings.
174
174
@@ -189,7 +189,7 @@ auth_oauth2.scope_prefix = ''
189
189
...
190
190
```
191
191
192
-
####Signing keys files {#signing-key-files}
192
+
## Signing keys files {#signing-key-files}
193
193
194
194
The following configuration declares two signing keys and configures the kid of the default signing key. For more information check the section [Configure Signing keys](#configure-signing-keys).
The followibng configuration sets the JWKS endpoint from which RabbitMQ downloads the signing keys using the configured CA certificate and TLS variables.
Each `auth_oauth2.resource_servers.<id/index>.` entry has the following variables shown in the table below. Except for the variables `id` and `oauth_provider_id`, if a resource does not configure a variable, RabbitMQ uses the variable configured at the root level. For instance, if the resource `auth_oauth2.resource_servers.prod` does not configure `preferred_username_claims` variable, RabbitMQ uses the value configured in `auth_oauth2.preferred_username_claims` for the resource `prod`.
0 commit comments