index.adoc 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. [[top]]
  2. = Overview
  3. :page-section-summary-toc: 1
  4. Joe Grandja, Steve Riesenberg
  5. v{spring-authorization-server-version}
  6. :docinfo: private-footer
  7. :nofooter:
  8. This site contains reference documentation and how-to guides for Spring Authorization Server.
  9. [horizontal]
  10. xref:index.adoc#introducing-spring-authorization-server[Introduction] :: Introduction and feature list
  11. xref:getting-help.adoc[Getting Help] :: Links to samples, questions and issues
  12. xref:getting-started.adoc[Getting Started] :: System requirements, dependencies and developing your first application
  13. xref:configuration-model.adoc[Configuration Model] :: Default configuration and customizing the configuration
  14. xref:core-model-components.adoc[Core Model / Components] :: Core domain model and component interfaces
  15. xref:protocol-endpoints.adoc[Protocol Endpoints] :: OAuth2 and OpenID Connect 1.0 protocol endpoint implementations
  16. xref:how-to.adoc[How-to Guides] :: Guides to get the most from Spring Authorization Server
  17. [[introducing-spring-authorization-server]]
  18. == Introducing Spring Authorization Server
  19. 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.
  20. 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.
  21. [[feature-list]]
  22. == Feature List
  23. Spring Authorization Server supports the following features:
  24. [cols="2a,4a,6a"]
  25. |===
  26. |Category |Feature |Related specifications
  27. |xref:protocol-endpoints.adoc#oauth2-token-endpoint[Authorization Grant]
  28. |
  29. * Authorization Code
  30. ** xref:protocol-endpoints.adoc#oauth2-authorization-endpoint[User Consent]
  31. * Client Credentials
  32. * Refresh Token
  33. * Device Code
  34. ** xref:protocol-endpoints.adoc#oauth2-device-verification-endpoint[User Consent]
  35. |
  36. * The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[draft])
  37. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.1[Authorization Code Grant]
  38. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.2[Client Credentials Grant]
  39. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-4.3[Refresh Token Grant]
  40. * OpenID Connect Core 1.0 (https://openid.net/specs/openid-connect-core-1_0.html[spec])
  41. ** https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth[Authorization Code Flow]
  42. * OAuth 2.0 Device Authorization Grant
  43. (https://tools.ietf.org/html/rfc8628[spec])
  44. ** https://tools.ietf.org/html/rfc8628#section-3[Device Flow]
  45. |xref:core-model-components.adoc#oauth2-token-generator[Token Formats]
  46. |
  47. * Self-contained (JWT)
  48. * Reference (Opaque)
  49. |
  50. * JSON Web Token (JWT) (https://tools.ietf.org/html/rfc7519[RFC 7519])
  51. * JSON Web Signature (JWS) (https://tools.ietf.org/html/rfc7515[RFC 7515])
  52. |xref:configuration-model.adoc#configuring-client-authentication[Client Authentication]
  53. |
  54. * `client_secret_basic`
  55. * `client_secret_post`
  56. * `client_secret_jwt`
  57. * `private_key_jwt`
  58. * `none` (public clients)
  59. |
  60. * The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-2.4[Client Authentication])
  61. * JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication (https://tools.ietf.org/html/rfc7523[RFC 7523])
  62. * Proof Key for Code Exchange by OAuth Public Clients (PKCE) (https://tools.ietf.org/html/rfc7636[RFC 7636])
  63. |xref:protocol-endpoints.adoc[Protocol Endpoints]
  64. |
  65. * xref:protocol-endpoints.adoc#oauth2-authorization-endpoint[OAuth2 Authorization Endpoint]
  66. * xref:protocol-endpoints.adoc#oauth2-device-authorization-endpoint[OAuth2 Device Authorization Endpoint]
  67. * xref:protocol-endpoints.adoc#oauth2-device-verification-endpoint[OAuth2 Device Verification Endpoint]
  68. * xref:protocol-endpoints.adoc#oauth2-token-endpoint[OAuth2 Token Endpoint]
  69. * xref:protocol-endpoints.adoc#oauth2-token-introspection-endpoint[OAuth2 Token Introspection Endpoint]
  70. * xref:protocol-endpoints.adoc#oauth2-token-revocation-endpoint[OAuth2 Token Revocation Endpoint]
  71. * xref:protocol-endpoints.adoc#oauth2-authorization-server-metadata-endpoint[OAuth2 Authorization Server Metadata Endpoint]
  72. * xref:protocol-endpoints.adoc#jwk-set-endpoint[JWK Set Endpoint]
  73. * xref:protocol-endpoints.adoc#oidc-provider-configuration-endpoint[OpenID Connect 1.0 Provider Configuration Endpoint]
  74. * xref:protocol-endpoints.adoc#oidc-logout-endpoint[OpenID Connect 1.0 Logout Endpoint]
  75. * xref:protocol-endpoints.adoc#oidc-user-info-endpoint[OpenID Connect 1.0 UserInfo Endpoint]
  76. * xref:protocol-endpoints.adoc#oidc-client-registration-endpoint[OpenID Connect 1.0 Client Registration Endpoint]
  77. |
  78. * The OAuth 2.1 Authorization Framework (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[draft])
  79. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-3.1[Authorization Endpoint]
  80. ** https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-3.2[Token Endpoint]
  81. * OAuth 2.0 Device Authorization Grant (https://tools.ietf.org/html/rfc8628[RFC 8628])
  82. ** https://tools.ietf.org/html/rfc8628#section-3.1[Device Authorization Endpoint]
  83. ** https://tools.ietf.org/html/rfc8628#section-3.3[Device Verification Endpoint]
  84. * OAuth 2.0 Token Introspection (https://tools.ietf.org/html/rfc7662[RFC 7662])
  85. * OAuth 2.0 Token Revocation (https://tools.ietf.org/html/rfc7009[RFC 7009])
  86. * OAuth 2.0 Authorization Server Metadata (https://tools.ietf.org/html/rfc8414[RFC 8414])
  87. * JSON Web Key (JWK) (https://tools.ietf.org/html/rfc7517[RFC 7517])
  88. * OpenID Connect Discovery 1.0 (https://openid.net/specs/openid-connect-discovery-1_0.html[spec])
  89. ** https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig[Provider Configuration Endpoint]
  90. * OpenID Connect RP-Initiated Logout 1.0 (https://openid.net/specs/openid-connect-rpinitiated-1_0.html[spec])
  91. ** https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout[Logout Endpoint]
  92. * OpenID Connect Core 1.0 (https://openid.net/specs/openid-connect-core-1_0.html[spec])
  93. ** https://openid.net/specs/openid-connect-core-1_0.html#UserInfo[UserInfo Endpoint]
  94. * OpenID Connect Dynamic Client Registration 1.0 (https://openid.net/specs/openid-connect-registration-1_0.html[spec])
  95. ** https://openid.net/specs/openid-connect-registration-1_0.html#ClientRegistration[Client Registration Endpoint]
  96. ** https://openid.net/specs/openid-connect-registration-1_0.html#ClientConfigurationEndpoint[Client Configuration Endpoint]
  97. |===