overview.adoc 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. [[overview]]
  2. = Overview
  3. This site contains reference documentation and how-to guides for Spring Authorization Server.
  4. [[introducing-spring-authorization-server]]
  5. == Introducing Spring Authorization Server
  6. 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.
  7. 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.
  8. [[use-cases]]
  9. == Use Cases
  10. 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.
  11. * Provides full control of configuration and customization when advanced customization scenarios are required.
  12. * Preference for a light-weight authorization server compared to a commercial product that includes all the "bells and whistles".
  13. * Potential savings in software licensing and/or hosting costs.
  14. * Quick startup and ease of use during development using the familiar Spring programming model.
  15. [[feature-list]]
  16. == Feature List
  17. Spring Authorization Server supports the following features:
  18. [cols="2a,4a,6a"]
  19. |===
  20. |Category |Feature |Related specifications
  21. |xref:protocol-endpoints.adoc#oauth2-token-endpoint[Authorization Grant]
  22. |
  23. * Authorization Code
  24. ** xref:protocol-endpoints.adoc#oauth2-authorization-endpoint[User Consent]
  25. * Client Credentials
  26. * Refresh Token
  27. * Device Code
  28. ** xref:protocol-endpoints.adoc#oauth2-device-verification-endpoint[User Consent]
  29. |
  30. * The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[draft])
  31. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.1[Authorization Code Grant]
  32. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.2[Client Credentials Grant]
  33. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.3[Refresh Token Grant]
  34. * OpenID Connect Core 1.0 (https://openid.net/specs/openid-connect-core-1_0.html[spec])
  35. ** https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth[Authorization Code Flow]
  36. * OAuth 2.0 Device Authorization Grant
  37. (https://tools.ietf.org/html/rfc8628[spec])
  38. ** https://tools.ietf.org/html/rfc8628#section-3[Device Flow]
  39. |xref:core-model-components.adoc#oauth2-token-generator[Token Formats]
  40. |
  41. * Self-contained (JWT)
  42. * Reference (Opaque)
  43. |
  44. * JSON Web Token (JWT) (https://tools.ietf.org/html/rfc7519[RFC 7519])
  45. * JSON Web Signature (JWS) (https://tools.ietf.org/html/rfc7515[RFC 7515])
  46. |xref:configuration-model.adoc#configuring-client-authentication[Client Authentication]
  47. |
  48. * `client_secret_basic`
  49. * `client_secret_post`
  50. * `client_secret_jwt`
  51. * `private_key_jwt`
  52. * `none` (public clients)
  53. |
  54. * The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-2.4[Client Authentication])
  55. * JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication (https://tools.ietf.org/html/rfc7523[RFC 7523])
  56. * Proof Key for Code Exchange by OAuth Public Clients (PKCE) (https://tools.ietf.org/html/rfc7636[RFC 7636])
  57. |xref:protocol-endpoints.adoc[Protocol Endpoints]
  58. |
  59. * xref:protocol-endpoints.adoc#oauth2-authorization-endpoint[OAuth2 Authorization Endpoint]
  60. * xref:protocol-endpoints.adoc#oauth2-device-authorization-endpoint[OAuth2 Device Authorization Endpoint]
  61. * xref:protocol-endpoints.adoc#oauth2-device-verification-endpoint[OAuth2 Device Verification Endpoint]
  62. * xref:protocol-endpoints.adoc#oauth2-token-endpoint[OAuth2 Token Endpoint]
  63. * xref:protocol-endpoints.adoc#oauth2-token-introspection-endpoint[OAuth2 Token Introspection Endpoint]
  64. * xref:protocol-endpoints.adoc#oauth2-token-revocation-endpoint[OAuth2 Token Revocation Endpoint]
  65. * xref:protocol-endpoints.adoc#oauth2-authorization-server-metadata-endpoint[OAuth2 Authorization Server Metadata Endpoint]
  66. * xref:protocol-endpoints.adoc#jwk-set-endpoint[JWK Set Endpoint]
  67. * xref:protocol-endpoints.adoc#oidc-provider-configuration-endpoint[OpenID Connect 1.0 Provider Configuration Endpoint]
  68. * xref:protocol-endpoints.adoc#oidc-logout-endpoint[OpenID Connect 1.0 Logout Endpoint]
  69. * xref:protocol-endpoints.adoc#oidc-user-info-endpoint[OpenID Connect 1.0 UserInfo Endpoint]
  70. * xref:protocol-endpoints.adoc#oidc-client-registration-endpoint[OpenID Connect 1.0 Client Registration Endpoint]
  71. |
  72. * The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[draft])
  73. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-3.1[Authorization Endpoint]
  74. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-3.2[Token Endpoint]
  75. * OAuth 2.0 Device Authorization Grant (https://tools.ietf.org/html/rfc8628[RFC 8628])
  76. ** https://tools.ietf.org/html/rfc8628#section-3.1[Device Authorization Endpoint]
  77. ** https://tools.ietf.org/html/rfc8628#section-3.3[Device Verification Endpoint]
  78. * OAuth 2.0 Token Introspection (https://tools.ietf.org/html/rfc7662[RFC 7662])
  79. * OAuth 2.0 Token Revocation (https://tools.ietf.org/html/rfc7009[RFC 7009])
  80. * OAuth 2.0 Authorization Server Metadata (https://tools.ietf.org/html/rfc8414[RFC 8414])
  81. * JSON Web Key (JWK) (https://tools.ietf.org/html/rfc7517[RFC 7517])
  82. * OpenID Connect Discovery 1.0 (https://openid.net/specs/openid-connect-discovery-1_0.html[spec])
  83. ** https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig[Provider Configuration Endpoint]
  84. * OpenID Connect RP-Initiated Logout 1.0 (https://openid.net/specs/openid-connect-rpinitiated-1_0.html[spec])
  85. ** https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout[Logout Endpoint]
  86. * OpenID Connect Core 1.0 (https://openid.net/specs/openid-connect-core-1_0.html[spec])
  87. ** https://openid.net/specs/openid-connect-core-1_0.html#UserInfo[UserInfo Endpoint]
  88. * OpenID Connect Dynamic Client Registration 1.0 (https://openid.net/specs/openid-connect-registration-1_0.html[spec])
  89. ** https://openid.net/specs/openid-connect-registration-1_0.html#ClientRegistration[Client Registration Endpoint]
  90. ** https://openid.net/specs/openid-connect-registration-1_0.html#ClientConfigurationEndpoint[Client Configuration Endpoint]
  91. |===