OAuth 2.0 Client - application.yml, OAuth2ClientProperties

ํด๋ผ์ด์–ธํŠธ ๊ถŒํ•œ ๋ถ€์—ฌ ์š”์ฒญ ์‹œ์ž‘

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ๊ฐ€ ์„œ๋ฒ„๋กœ ๊ถŒํ•œ ๋ถ€์—ฌ ์š”์ฒญ์„ ํ•˜๊ฑฐ๋‚˜ ํ† ํฐ ์š”์ฒญ์„ ํ•  ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด ๋ฐ ์—”๋“œํฌ์ธํŠธ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค.

  2. application.yml ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ์— ํด๋ผ์ด์–ธํŠธ ์„ค์ •๊ณผ ์ธ๊ฐ€ ์„œ๋ฒ„ ์—”๋“œํฌ์ธํŠธ ์„ค์ •์„ ํ•œ๋‹ค.

  3. ์ดˆ๊ธฐํ™”๊ฐ€ ์ง„ํ–‰๋˜๋ฉด applcation.yml์— ํด๋ผ์ด์–ธํŠธ ๋ฐ ์—”๋“œํฌ์ธํŠธ ์ •๋ณด๊ฐ€ OAuth2ClientProperties ์˜ ๊ฐ ์†์„ฑ์— ๋ฐ”์ธ๋”ฉ ๋œ๋‹ค.

  4. OAuth2ClientProperties ์— ๋ฐ”์ธ๋”ฉ ๋˜์–ด ์žˆ๋Š” ์†์„ฑ์˜ ๊ฐ’์€ ์ธ๊ฐ€ ์„œ๋ฒ„๋กœ ๊ถŒํ•œ ๋ถ€์—ฌ ์š”์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•œ ClientRegistration ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ์ €์žฅ๋œ๋‹ค.

  5. OAuth2Client๋Š” ClientRegistration ์„ ์ฐธ์กฐํ•ด์„œ ๊ถŒํ•œ ๋ถ€์—ฌ ์š”์ฒญ์„ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ธ๊ฐ€ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•œ๋‹ค.

img.png

application.yml

ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช… ์ „์†ก ๋ฐฉ์‹ ์ข…๋ฅ˜

  • client_secret_basic

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ client_id์™€ client_secret์„ HTTP ๊ธฐ๋ณธ ์ธ์ฆ ํ—ค๋”์— ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„์— ์ธ์ฆ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

    • HTTP ์š”์ฒญ์˜ Authorization ํ—ค๋”์— client_id์™€ client_secret์„ Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜์—ฌ Basic ๋ฐฉ์‹์œผ๋กœ ์ „์†กํ•œ๋‹ค.

  • client_secret_post

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ client_id์™€ client_secret์„ ์š”์ฒญ ๋ณธ๋ฌธ์— ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„์— ์ธ์ฆ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

    • client_id์™€ client_secret์„ application/x-www-form-urlencoded ํ˜•์‹์˜ ์š”์ฒญ ๋ณธ๋ฌธ์— ํฌํ•จํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.

  • client_secret_jwt

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ client_secret์„ ์‚ฌ์šฉํ•˜์—ฌ JWT๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ์ธ์ฆ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    • JWT๋Š” client_id์™€ ๊ธฐํƒ€ ํด๋ ˆ์ž„์„ ํฌํ•จํ•˜์—ฌ, client_secret์œผ๋กœ ์„œ๋ช…๋œ๋‹ค.

  • private_key_jwt

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณต๊ฐœ ํ‚ค์™€ ๊ฐœ์ธ ํ‚ค ์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ JWT๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ์ธ์ฆ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    • JWT๋Š” client_id์™€ ๊ธฐํƒ€ ํด๋ ˆ์ž„์„ ํฌํ•จํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์˜ ๊ฐœ์ธ ํ‚ค๋กœ ์„œ๋ช…๋œ๋‹ค.

  • none

    • ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณต๊ฐœ ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

    • client_id๋งŒ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, client_secret์ด ํ•„์š”ํ•˜์ง€ ์•Š๋Š”๋‹ค.


OAuth2ClientProperties

img.png
img_1.png
  • Registration ์€ ์ธ๊ฐ€ ์„œ๋ฒ„์— ๋“ฑ๋ก๋œ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • Provider ๋Š” ๊ณต๊ธ‰์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ๋ฐ ๊ณต๊ธ‰์ž์˜ ์ •๋ณด๋ฅผ ๊ฐ๊ฐ registration, provider ๋งต์— ์ €์žฅํ•˜๊ณ  ์ธ๊ฐ€ ์„œ๋ฒ„์™€์˜ ํ†ต์‹  ์‹œ ๊ฐ ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.


์ด์ „ โ†ฉ๏ธ - OAuth 2.0 Client - OAuth 2.0 Clientarrow-up-right

๋ฉ”์ธ โซarrow-up-right

๋‹ค์Œ โ†ช๏ธ - OAuth 2.0 Client - ClientRegistrationarrow-up-right

Last updated