|
14 | 14 | * A simple and intuitive interface for quickly trying out different OAuth 2.0 grant types and client authentication methods |
15 | 15 | * Supports all modern OAuth 2.0 grant types: authorization code, implicit, password, client credentials, refresh token, JWT bearer, token exchange |
16 | 16 | * Supports all client authentication methods: client secret basic, client secret post, client secret JWT, private key JWT, TLS client auth |
| 17 | +* Supports the following extensions: PKCE, JARM |
17 | 18 |
|
18 | 19 | ## Installation |
19 | 20 |
|
@@ -119,32 +120,6 @@ oauth2c https://oauth2c.us.authz.cloudentity.io/oauth2c/demo \ |
119 | 120 |
|
120 | 121 | [Learn more about authorization code flow](https://cloudentity.com/developers/basics/oauth-grant-types/authorization-code-flow/) |
121 | 122 |
|
122 | | -#### Authorization code + PKCE |
123 | | - |
124 | | -The Proof Key for Code Exchange (PKCE) is an extension to the OAuth2 authorization code grant flow that |
125 | | -provides additional security when authenticating with an OAuth2 provider. In the PKCE flow, the client |
126 | | -generates a code verifier and a code challenge, which are then sent to the OAuth2 provider during |
127 | | -the authorization request. The provider returns an authorization code, which the client then exchanges for |
128 | | -an access token along with the code verifier. The provider verifies the code verifier to ensure that the |
129 | | -request is coming from the same client that initiated the authorization request. |
130 | | - |
131 | | -This additional step helps to prevent attackers from intercepting the authorization code and using it to |
132 | | -obtain an access token. PKCE is recommended for all public clients, such as single-page or mobile |
133 | | -applications, where the client secret cannot be securely stored. |
134 | | - |
135 | | -``` sh |
136 | | -oauth2c https://oauth2c.us.authz.cloudentity.io/oauth2c/demo \ |
137 | | - --client-id db5e375e7b634095b24bbb683fcb955b \ |
138 | | - --response-types code \ |
139 | | - --response-mode query \ |
140 | | - --grant-type authorization_code \ |
141 | | - --auth-method none \ |
142 | | - --scopes openid,email \ |
143 | | - --pkce |
144 | | -``` |
145 | | - |
146 | | -[Learn more about authorization code flow with pkce](https://cloudentity.com/developers/basics/oauth-grant-types/authorization-code-with-pkce/) |
147 | | - |
148 | 123 | #### Implicit |
149 | 124 |
|
150 | 125 | This grant type is similar to the authorization code grant, but the access token is returned directly to |
@@ -424,6 +399,71 @@ oauth2c https://oauth2c.us.authz.cloudentity.io/oauth2c/demo \ |
424 | 399 |
|
425 | 400 | [Lean more about none with PKCE](https://cloudentity.com/developers/basics/oauth-client-authentication/client-auth-set-to-none-with-pkce/) |
426 | 401 |
|
| 402 | +### Extensions |
| 403 | + |
| 404 | +#### PKCE |
| 405 | + |
| 406 | +The Proof Key for Code Exchange (PKCE) is an extension to the OAuth2 authorization code grant flow that |
| 407 | +provides additional security when authenticating with an OAuth2 provider. In the PKCE flow, the client |
| 408 | +generates a code verifier and a code challenge, which are then sent to the OAuth2 provider during |
| 409 | +the authorization request. The provider returns an authorization code, which the client then exchanges for |
| 410 | +an access token along with the code verifier. The provider verifies the code verifier to ensure that the |
| 411 | +request is coming from the same client that initiated the authorization request. |
| 412 | + |
| 413 | +This additional step helps to prevent attackers from intercepting the authorization code and using it to |
| 414 | +obtain an access token. PKCE is recommended for all public clients, such as single-page or mobile |
| 415 | +applications, where the client secret cannot be securely stored. |
| 416 | + |
| 417 | +``` sh |
| 418 | +oauth2c https://oauth2c.us.authz.cloudentity.io/oauth2c/demo \ |
| 419 | + --client-id db5e375e7b634095b24bbb683fcb955b \ |
| 420 | + --response-types code \ |
| 421 | + --response-mode query \ |
| 422 | + --grant-type authorization_code \ |
| 423 | + --auth-method none \ |
| 424 | + --scopes openid,email \ |
| 425 | + --pkce |
| 426 | +``` |
| 427 | + |
| 428 | +[Learn more about authorization code flow with pkce](https://cloudentity.com/developers/basics/oauth-grant-types/authorization-code-with-pkce/) |
| 429 | + |
| 430 | +#### JARM |
| 431 | + |
| 432 | +JWT-secured OAuth 2.0 authorization response, also known as JARM, is a method of securely transmitting authorization |
| 433 | +information in an OAuth 2.0 authorization response using JSON Web Tokens (JWT). This allows the authorization response |
| 434 | +to be verified by the client, ensuring that the information is coming from a trusted source and has not been tampered |
| 435 | +with. The JWT is signed using a secret key shared between the authorization server and the client, allowing the client |
| 436 | +to verify the authenticity of the JWT. This provides an additional layer of security to the OAuth 2.0 authorization process. |
| 437 | + |
| 438 | +##### Signed JWT |
| 439 | + |
| 440 | +``` sh |
| 441 | +oauth2c https://oauth2c.us.authz.cloudentity.io/oauth2c/demo \ |
| 442 | + --client-id cauktionbud6q8ftlqq0 \ |
| 443 | + --client-secret HCwQ5uuUWBRHd04ivjX5Kl0Rz8zxMOekeLtqzki0GPc \ |
| 444 | + --response-types code \ |
| 445 | + --response-mode query.jwt \ |
| 446 | + --grant-type authorization_code \ |
| 447 | + --auth-method client_secret_basic \ |
| 448 | + --scopes openid,email,offline_access \ |
| 449 | + --no-pkce |
| 450 | +``` |
| 451 | + |
| 452 | +#### Signed and encrypted JWT |
| 453 | + |
| 454 | +``` sh |
| 455 | +oauth2c https://oauth2c.us.authz.cloudentity.io/oauth2c/demo \ |
| 456 | + --client-id cauosoo2omc4fr8ai1fg \ |
| 457 | + --client-secret ipFkA1lMomOMI_d2HcGGQ7j8oxeHFqKw3kli76g92VM \ |
| 458 | + --response-types code \ |
| 459 | + --response-mode query.jwt \ |
| 460 | + --grant-type authorization_code \ |
| 461 | + --auth-method client_secret_post \ |
| 462 | + --scopes openid,email,offline_access \ |
| 463 | + --encryption-key https://raw.githubusercontent.com/cloudentity/oauth2c/master/data/key.json \ |
| 464 | + --no-pkce |
| 465 | +``` |
| 466 | + |
427 | 467 | ## License |
428 | 468 |
|
429 | 469 | `oauth2c` is released under the [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0). |
|
0 commit comments