|
| 1 | +[[overview]] |
| 2 | += Overview |
| 3 | + |
| 4 | +This site contains reference documentation and how-to guides for Spring Authorization Server. |
| 5 | + |
| 6 | +[[introducing-spring-authorization-server]] |
| 7 | +== Introducing Spring Authorization Server |
| 8 | + |
| 9 | +Spring Authorization Server is a framework that provides implementations of the https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[OAuth 2.1] and https://openid.net/specs/openid-connect-core-1_0.html[OpenID Connect 1.0] specifications and other related specifications. |
| 10 | +It is built on top of https://spring.io/projects/spring-security[Spring Security] to provide a secure, light-weight, and customizable foundation for building OpenID Connect 1.0 Identity Providers and OAuth2 Authorization Server products. |
| 11 | + |
| 12 | +[[use-cases]] |
| 13 | +== Use Cases |
| 14 | + |
| 15 | +The following list provides some use cases for using Spring Authorization Server compared to using an open source or commercial OAuth2 or OpenID Connect 1.0 Provider product. |
| 16 | + |
| 17 | +* Provides full control of configuration and customization when advanced customization scenarios are required. |
| 18 | +* Preference for a light-weight authorization server compared to a commercial product that includes all the "bells and whistles". |
| 19 | +* Potential savings in software licensing and/or hosting costs. |
| 20 | +* Quick startup and ease of use during development using the familiar Spring programming model. |
| 21 | + |
| 22 | +[[feature-list]] |
| 23 | +== Feature List |
| 24 | + |
| 25 | +Spring Authorization Server supports the following features: |
| 26 | + |
| 27 | +[cols="2a,4a,6a"] |
| 28 | +|=== |
| 29 | +|Category |Feature |Related specifications |
| 30 | + |
| 31 | +|xref:protocol-endpoints.adoc#oauth2-token-endpoint[Authorization Grant] |
| 32 | +| |
| 33 | +* Authorization Code |
| 34 | +** xref:protocol-endpoints.adoc#oauth2-authorization-endpoint[User Consent] |
| 35 | +* Client Credentials |
| 36 | +* Refresh Token |
| 37 | +* Device Code |
| 38 | +** xref:protocol-endpoints.adoc#oauth2-device-verification-endpoint[User Consent] |
| 39 | +* Token Exchange |
| 40 | +| |
| 41 | +* The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[draft]) |
| 42 | +** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.1[Authorization Code Grant] |
| 43 | +** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.2[Client Credentials Grant] |
| 44 | +** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.3[Refresh Token Grant] |
| 45 | +* OpenID Connect Core 1.0 (https://openid.net/specs/openid-connect-core-1_0.html[spec]) |
| 46 | +** https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth[Authorization Code Flow] |
| 47 | +* OAuth 2.0 Device Authorization Grant |
| 48 | +(https://tools.ietf.org/html/rfc8628[spec]) |
| 49 | +** https://tools.ietf.org/html/rfc8628#section-3[Device Flow] |
| 50 | +* OAuth 2.0 Token Exchange (https://datatracker.ietf.org/doc/html/rfc8693[spec]) |
| 51 | +** https://datatracker.ietf.org/doc/html/rfc8693#section-2[Token Exchange Flow] |
| 52 | + |
| 53 | +|xref:core-model-components.adoc#oauth2-token-generator[Token Formats] |
| 54 | +| |
| 55 | +* Self-contained (JWT) |
| 56 | +* Reference (Opaque) |
| 57 | +| |
| 58 | +* JSON Web Token (JWT) (https://tools.ietf.org/html/rfc7519[RFC 7519]) |
| 59 | +* JSON Web Signature (JWS) (https://tools.ietf.org/html/rfc7515[RFC 7515]) |
| 60 | + |
| 61 | +|Token Types |
| 62 | +| |
| 63 | +* xref:protocol-endpoints.adoc#oauth2-token-endpoint-dpop-bound-access-tokens[DPoP-bound Access Tokens] |
| 64 | +| |
| 65 | +* OAuth 2.0 Demonstrating Proof of Possession (DPoP) (https://datatracker.ietf.org/doc/html/rfc9449[RFC 9449]) |
| 66 | + |
| 67 | +|xref:configuration-model.adoc#configuring-client-authentication[Client Authentication] |
| 68 | +| |
| 69 | +* `client_secret_basic` |
| 70 | +* `client_secret_post` |
| 71 | +* `client_secret_jwt` |
| 72 | +* `private_key_jwt` |
| 73 | +* `tls_client_auth` |
| 74 | +* `self_signed_tls_client_auth` |
| 75 | +* `none` (public clients) |
| 76 | +| |
| 77 | +* The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-2.4[Client Authentication]) |
| 78 | +* JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication (https://tools.ietf.org/html/rfc7523[RFC 7523]) |
| 79 | +* OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens (https://datatracker.ietf.org/doc/html/rfc8705[RFC 8705]) |
| 80 | +* Proof Key for Code Exchange by OAuth Public Clients (PKCE) (https://tools.ietf.org/html/rfc7636[RFC 7636]) |
| 81 | + |
| 82 | +|xref:protocol-endpoints.adoc[Protocol Endpoints] |
| 83 | +| |
| 84 | +* xref:protocol-endpoints.adoc#oauth2-authorization-endpoint[OAuth2 Authorization Endpoint] |
| 85 | +* xref:protocol-endpoints.adoc#oauth2-pushed-authorization-request-endpoint[OAuth2 Pushed Authorization Request Endpoint] |
| 86 | +* xref:protocol-endpoints.adoc#oauth2-device-authorization-endpoint[OAuth2 Device Authorization Endpoint] |
| 87 | +* xref:protocol-endpoints.adoc#oauth2-device-verification-endpoint[OAuth2 Device Verification Endpoint] |
| 88 | +* xref:protocol-endpoints.adoc#oauth2-token-endpoint[OAuth2 Token Endpoint] |
| 89 | +* xref:protocol-endpoints.adoc#oauth2-token-introspection-endpoint[OAuth2 Token Introspection Endpoint] |
| 90 | +* xref:protocol-endpoints.adoc#oauth2-token-revocation-endpoint[OAuth2 Token Revocation Endpoint] |
| 91 | +* xref:protocol-endpoints.adoc#oauth2-authorization-server-metadata-endpoint[OAuth2 Authorization Server Metadata Endpoint] |
| 92 | +* xref:protocol-endpoints.adoc#jwk-set-endpoint[JWK Set Endpoint] |
| 93 | +* xref:protocol-endpoints.adoc#oidc-provider-configuration-endpoint[OpenID Connect 1.0 Provider Configuration Endpoint] |
| 94 | +* xref:protocol-endpoints.adoc#oidc-logout-endpoint[OpenID Connect 1.0 Logout Endpoint] |
| 95 | +* xref:protocol-endpoints.adoc#oidc-user-info-endpoint[OpenID Connect 1.0 UserInfo Endpoint] |
| 96 | +* xref:protocol-endpoints.adoc#oidc-client-registration-endpoint[OpenID Connect 1.0 Client Registration Endpoint] |
| 97 | +| |
| 98 | +* The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[draft]) |
| 99 | +** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-3.1[Authorization Endpoint] |
| 100 | +** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-3.2[Token Endpoint] |
| 101 | +* OAuth 2.0 Pushed Authorization Requests (https://datatracker.ietf.org/doc/html/rfc9126[RFC 9126]) |
| 102 | +** https://datatracker.ietf.org/doc/html/rfc9126#section-2[Pushed Authorization Request Endpoint] |
| 103 | +* OAuth 2.0 Device Authorization Grant (https://tools.ietf.org/html/rfc8628[RFC 8628]) |
| 104 | +** https://tools.ietf.org/html/rfc8628#section-3.1[Device Authorization Endpoint] |
| 105 | +** https://tools.ietf.org/html/rfc8628#section-3.3[Device Verification Endpoint] |
| 106 | +* OAuth 2.0 Token Introspection (https://tools.ietf.org/html/rfc7662[RFC 7662]) |
| 107 | +* OAuth 2.0 Token Revocation (https://tools.ietf.org/html/rfc7009[RFC 7009]) |
| 108 | +* OAuth 2.0 Authorization Server Metadata (https://tools.ietf.org/html/rfc8414[RFC 8414]) |
| 109 | +* JSON Web Key (JWK) (https://tools.ietf.org/html/rfc7517[RFC 7517]) |
| 110 | +* OpenID Connect Discovery 1.0 (https://openid.net/specs/openid-connect-discovery-1_0.html[spec]) |
| 111 | +** https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig[Provider Configuration Endpoint] |
| 112 | +* OpenID Connect RP-Initiated Logout 1.0 (https://openid.net/specs/openid-connect-rpinitiated-1_0.html[spec]) |
| 113 | +** https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout[Logout Endpoint] |
| 114 | +* OpenID Connect Core 1.0 (https://openid.net/specs/openid-connect-core-1_0.html[spec]) |
| 115 | +** https://openid.net/specs/openid-connect-core-1_0.html#UserInfo[UserInfo Endpoint] |
| 116 | +* OpenID Connect Dynamic Client Registration 1.0 (https://openid.net/specs/openid-connect-registration-1_0.html[spec]) |
| 117 | +** https://openid.net/specs/openid-connect-registration-1_0.html#ClientRegistration[Client Registration Endpoint] |
| 118 | +** https://openid.net/specs/openid-connect-registration-1_0.html#ClientConfigurationEndpoint[Client Configuration Endpoint] |
| 119 | +|=== |
0 commit comments