Introspection

Spring Authorization Server - ์—”๋“œํฌ์ธํŠธ ํ”„๋กœํ† ์ฝœ

OAuth 2.0 Token Introspection Endpoint

OAuth2TokenEndpointConfigurer

  • OAuth2 ํ† ํฐ ๊ฒ€์‚ฌ ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • OAuth2 ํ† ํฐ ๊ฒ€์‚ฌ ์š”์ฒญ์— ๋Œ€ํ•œ ์ „์ฒ˜๋ฆฌ, ๊ธฐ๋ณธ ์ฒ˜๋ฆฌ ๋ฐ ํ›„์ฒ˜๋ฆฌ ๋กœ์ง์„ ์ปค์Šคํ…€ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • OAuth2TokenIntrospectionEndpointFilter๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ OAuth2 ์ธ์ฆ ์„œ๋ฒ„ SecurityFilterChain ๋นˆ์— ๋“ฑ๋กํ•œ๋‹ค.

OAuth2TokenIntrospectionEndpointFilter

  • OAuth2 ํ† ํฐ ๊ฒ€์‚ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•„ํ„ฐ์ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  • introspectionRequestConverter

    • OAuth2 ํ† ํฐ ๊ฒ€์‚ฌ ์š”์ฒญ์„ ์ถ”์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, OAuth2TokenIntrospectionAuthenticationToken์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • OAuth2TokenIntrospectionAuthenticationProvider

    • OAuth2TokenIntrospectionAuthenticationToken์„ ๋ฐ›์•„ ์ธ์ฆ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” AuthenticationProvider ๊ตฌํ˜„์ฒด

RequestMatcher

  • ํ† ํฐ ๊ฒ€์‚ฌ ์š”์ฒญ ํŒจํ„ด

    • /oauth2/introspect, POST


์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋Šฅ

img_73.png
  1. introspectionRequestConverter ์ถ”๊ฐ€

  2. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” introspectionRequestConverter ๋“ค์„ ์ปค์Šคํ…€ํ•˜๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

  3. AuthenticationProvider ์ถ”๊ฐ€

  4. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” AuthenticationProvider ๋“ค์„ ์ปค์Šคํ…€ํ•˜๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

  5. ์ธ์ฆ๋œ OAuth2TokenIntrospectionAuthenticationToken ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  OAuth2TokenIntrospection๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ›„์ฒ˜๋ฆฌ๊ธฐ

  6. OAuth2AuthenticationException์„ ์ฒ˜๋ฆฌํ•˜๊ณ  OAuth2Error ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ›„์ฒ˜๋ฆฌ๊ธฐ


Resource Server ์„ค์ •

img_75.png
img_76.png
img_77.png

์ฝ”๋“œ ํ๋ฆ„

img_74.png

1. ํ† ํฐ ์š”์ฒญ

img_78.png

2. ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๋กœ ์š”์ฒญ

img_79.png

3. ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„ - BearerTokenAuthenticationFilter -> OpaqueTokenAuthenticationProvider

img_80.png
  • makeRequest()๋กœ ์ธ๊ฐ€ ์„œ๋ฒ„์™€ ํ†ต์‹  ํ›„ ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค.

img_81.png
img_82.png

4. ์ธ๊ฐ€ ์„œ๋ฒ„ - OAuth2TokenIntrospectionEndpointFilter -> OAuth2TokenIntrospectionAuthenticationConverter

  • ํ•„์š”ํ•œ ์ •๋ณด ์ถ”์ถœ ํ›„ OAuth2TokenIntrospectionAuthenticationToken์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

img_83.png

5. ์ธ๊ฐ€ ์„œ๋ฒ„ - ProviderManager -> OAuth2TokenIntrospectionAuthenticationProvider

  • ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๊ณ  OAuth2TokenIntrospectionAuthenticationToken์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

img_84.png

6. ์ธ๊ฐ€ ์„œ๋ฒ„ - OAuth2TokenIntrospectionEndpointFilter -> sendIntrospectionResponse

img_85.png

7. ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„ - Controller

img_86.png
img_87.png

์ด์ „ โ†ฉ๏ธ - Spring Authorization Server(์—”๋“œํฌ์ธํŠธ ํ”„๋กœํ† ์ฝœ) - Token Endpoint

๋ฉ”์ธ โซ

๋‹ค์Œ โ†ช๏ธ - Spring Authorization Server(์—”๋“œํฌ์ธํŠธ ํ”„๋กœํ† ์ฝœ) - Token Revocation Endpoint

Last updated