ÄÁÅÙÃ÷»ó¼¼º¸±â

½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ÀÎ ¾×¼Ç : º¸¾È ±âÃʺÎÅÍ OAuth 2±îÁö, ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ È°¿ëÇÑ ¾ÈÀüÇÑ ¾Û ¼³°è¿Í ±¸Çö
½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ÀÎ ¾×¼Ç : º¸¾È ±âÃʺÎÅÍ OAuth 2±îÁö, ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ È°¿ëÇÑ ¾ÈÀüÇÑ ¾Û ¼³°è¿Í ±¸Çö
  • ÀúÀڷη»Æ¼¿ì ½ºÇÊÄ« Àú/Ãֹμ® ¿ª
  • ÃâÆÇ»çÀ§Å°ºÏ½º
  • ÃâÆÇÀÏ2022-10-10
  • µî·ÏÀÏ2024-07-15
º¸À¯ 1, ´ëÃâ 1, ¿¹¾à 0, ´©Àû´ëÃâ 1, ´©Àû¿¹¾à 0

Ã¥¼Ò°³

¸ðµç ½ºÇÁ¸µ °³¹ßÀÚ¿¡°Ô ±ÇÀåÇÏ´Â ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ Çʼö °¡À̵å!

º¸¾ÈÀº ŸÇùÇÒ ¼ö ¾ø´Â Áß¿äÇÑ ¿ä¼Ò´Ù. ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼·Î ¾ÈÀüÇÏ°Ô µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í ÀÚ°Ý Áõ¸íÀ» °ËÁõÇÏ¸ç °ø°ÝÀ» ¹æÁöÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¼ö ÀÖ´Ù. ¡®¼³°è¿¡ ÀÇÇÑ º¸¾È¡¯ ¿øÄ¢À» µû¸£¸é µ¥ÀÌÅÍ µµ³­°ú ¹«´Ü ħÀÔÀ¸·ÎºÎÅÍ ³×Æ®¿öÅ©¸¦ º¸È£ÇÒ ¼ö ÀÖ´Ù.

¡º½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ÀÎ ¾×¼Ç¡»¿¡¼­´Â ÇÇÇØ°¡ ¹ß»ýÇϱâ Àü¿¡ »çÀÌÆ® °£ ½ºÅ©¸³Æðú ¿äû À§Á¶ °ø°ÝÀ» ¹æÁöÇÏ´Â ¹æ¹ýÀ» ¹è¿î´Ù. ¾ÏÈ£ ¾÷±×·¹ÀÌµå ½Ã¹Ä·¹À̼ǰú ¿©·¯ À¯ÇüÀÇ ±ÇÇÑ ºÎ¿©¸¦ Ãß°¡ÇÏ´Â °Í°ú °°Àº ±âº»ÀûÀÎ ³»¿ëÀ¸·Î ½ÃÀÛÇØ, ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ »õ ¾ÆÅ°ÅØó¿¡ Àû¿ëÇÏ°í °í±Þ OAuth2 ±¸¼ºÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ý°ú °°Àº ½ÉÈ­µÈ ³»¿ëÀ¸·Î ¸¶¹«¸®ÇÑ´Ù. ÀÌ Ã¥À» ¸ðµÎ °øºÎÇϸé ÀϹÝÀûÀÎ À§ÇùÀº ¹°·Ð ½É°¢ÇÑ À§Çù¿¡µµ ´ëºñÇÏ´Â ¸ÂÃã ±¸¼ºµÈ ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ±¸¼ºÀ» ¸¸µé ¼ö ÀÖ°Ô µÈ´Ù.

ÀúÀÚ¼Ò°³

¿£´Ù¹ÙÀÇ Çå½ÅÀûÀΠ¸®´õÀÌÀÚ Æ®·¹À̳ÊÀ̸砺ÏÀ¯·´ ±¹°¡ÀÇ ±ÝÀ¶ ½ÃÀåÀ» À§ÇÑ ÇÁ·ÎÁ§Æ® °³¹ßÀ» À̲ø°í ÀÖ´Ù. 9³â°£ÀÇ ½Ç¹« °æÇèÀ» °¡Áö°í ÀÖÀ¸¸ç ÀÌÀü¿¡´Â Àü ¼¼°è¿¡ ¼³Ä¡µÈ °¡Àå Å« ±Ô¸ðÀÇ ERP(Àü»çÀû ÀÚ¿ø °ü¸®) ¼Ö·ç¼Ç Áß Çϳª¸¦ ±¸ÃàÇϴ ÇÁ·ÎÁ§Æ®¿¡ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀڷΠÂü¿©Çß´Ù. ±×´Â °íÇ°ÁúÀÇ ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦°øÇϴ °Íµµ Áß¿äÇÏÁö¸¸ Áö½ÄÀ» °øÀ¯ÇÏ°í ´Ù¸¥ »ç¶÷µéÀÌ ±â¼úÀ» Çâ»óÇϵµ·Ï µ½´Â °Íµµ Áß¿äÇÏ´Ù°í ¹ÏÀ¸¸ç ÀÌ·± »ý°¢À¸·Î ÀÚ¹Ù ±â¼ú¿¡ °üÇÑ ±³À° °úÁ¤À» ¼³°èÇÏ°í °­ÀÇÇϸ砹̱¹°ú À¯·´¿¡¼­ ÇÁ·¹Á¨Å×À̼ǰú ¿öÅ©¼óÀ» Á¦°øÇÏ°í ÀÖ´Ù. ±×ÀÇ °­¿¬Àº º¹½ºµå µ¥ÀÌÁî(Voxxed Days), Å×Å©Ç÷οì(TechFlow), ºÎÄí·¹½´Æ¼ Å×Å©³î·ÎÁö À§Å©(Bucharest Technology Week), ÀÚ¹Ù½ºÄß(JavaSkop), ¿À¶óŬ ÄÚµå ÀͽºÇ÷ξî(Oracle Code Explore), ¿À¶óÀϸ® ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØó(O'Reilly Software Architecture), ¿À¶óŬ Äڵ堿ø(Oracle Code One) µî¿¡¼­ Á¢ÇÒ ¼ö ÀÖ´Ù.

¸ñÂ÷

[01ºÎ] Ã¹ ´Ü°è 

¢Ã 01Àå: ¿À´Ã³¯ÀÇ º¸¾È 
1.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼: °³³ä°ú ÀåÁ¡ 
1.2 ¼ÒÇÁÆ®¿þ¾î º¸¾ÈÀ̶õ? 
1.3 º¸¾ÈÀÌ Áß¿äÇÑ ÀÌÀ¯´Â ¹«¾ùÀΰ¡? 
1.4 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀϹÝÀûÀΠº¸¾È Ãë¾à¼º 
__1.4.1 ÀÎÁõ°ú ±ÇÇÑ ºÎ¿©ÀÇ Ãë¾à¼º 
__1.4.2 ¼¼¼Ç °íÁ¤À̶õ? 
__1.4.3 XSS(±³Â÷ »çÀÌÆ® ½ºÅ©¸³ÆÃ)¶õ? 
__1.4.4 CSRF(»çÀÌÆ® °£ ¿äû À§Á¶)¶õ? 
__1.4.5 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÁÖÀÔ Ãë¾à¼º ÀÌÇØ 
__1.4.6 ¹Î°¨ÇÑ µ¥ÀÌÅÍÀÇ ³ëÃâ Ã³¸®Çϱâ 
__1.4.7 ¸Þ¼­µå Á¢±Ù Á¦¾î ºÎÁ·À̶õ? 
__1.4.8 ¾Ë·ÁÁø Ãë¾à¼ºÀÌ Àִ Á¾¼Ó¼º ÀÌ¿ë 
1.5 ´Ù¾çÇÑ ¾ÆÅ°ÅØó¿¡ Àû¿ëµÈ º¸¾È 
__1.5.1 ÀÏüÇü À¥ ¾ÖÇø®ÄÉÀ̼Ǡ¼³°è 
__1.5.2 ¹é¿£µå/ÇÁ·±Æ®¿£µå ºÐ¸®¸¦ À§ÇÑ º¸¾È ¼³°è 
__1.5.3 OAuth 2 È帧 ÀÌÇØ 
__1.5.4 API Å°, ¾Ïȣȭ ¼­¸í, IP °ËÁõÀ» ÀÌ¿ëÇØ ¿äû º¸¾È 
1.6 À̠å¿¡¼­ ¹è¿ï ³»¿ë 
¿ä¾à 

¢Ã 02Àå: ¾È³ç! ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ 
2.1 Ã¹ ¹ø° ÇÁ·ÎÁ§Æ® ½ÃÀÛ 
2.2 ±âº» ±¸¼ºÀ̶õ? 
2.3 ±âº» ±¸¼º ÀçÁ¤ÀÇ 
__2.3.1 UserDetailsService ±¸¼º ¿ä¼Ò ÀçÁ¤ÀÇ 
__2.3.2 ¿£µåÆ÷ÀÎÆ® ±ÇÇÑ ºÎ¿© ±¸¼º ÀçÁ¤ÀÇ 
__2.3.3 ´Ù¸¥ ¹æ¹ýÀ¸·Î ±¸¼º ¼³Á¤ 
__2.3.4 AuthenticationProvider ±¸Çö ÀçÁ¤ÀÇ 
__2.3.5 ÇÁ·ÎÁ§Æ®¿¡ ¿©·¯ ±¸¼º Å¬·¡½º ÀÌ¿ë 
¿ä¾à 

[02ºÎ] ±¸Çö 

¢Ã 03Àå: »ç¿ëÀÚ °ü¸® 
3.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ÀÇ ÀÎÁõ ±¸Çö 
3.2 »ç¿ëÀÚ ±â¼úÇϱâ 
__3.2.1 UserDetails °è¾àÀÇ Á¤ÀÇ ÀÌÇØÇϱâ 
__3.2.2 GrantedAuthority °è¾à »ìÆ캸±â 
__3.2.3 ÃÖ¼ÒÇÑÀÇ UserDetails ±¸Çö ÀÛ¼º 
__3.2.4 ºô´õ¸¦ ÀÌ¿ëÇØ UserDetails Çü½ÄÀÇ ÀνºÅϽº ¸¸µé±â 
__3.2.5 »ç¿ëÀÚ¿Í ¿¬°üµÈ ¿©·¯ Ã¥ÀÓ °áÇÕ 
3.3 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼°¡ »ç¿ëÀÚ¸¦ °ü¸®Çϴ ¹æ¹ý ÁöÁ¤ 
__3.3.1 UserDetailsService °è¾àÀÇ ÀÌÇØ 
__3.3.2 UserDetailsService °è¾à ±¸Çö 
__3.3.3 UserDetailsManager °è¾à ±¸Çö 
¿ä¾à 

¢Ã 04Àå: ¾ÏÈ£ Ã³¸® 
4.1 PasswordEncoder °è¾àÀÇ ÀÌÇØ 
__4.1.1 PasswordEncoder °è¾àÀÇ Á¤ÀÇ 
__4.1.2 PasswordEncoder °è¾àÀÇ ±¸Çö 
__4.1.3 PasswordEncoderÀÇ Á¦°øµÈ ±¸Çö ¼±Åà
__4.1.4 DelegatingPasswordEncoder¸¦ ÀÌ¿ëÇÑ ¿©·¯ ÀÎÄÚµù Àü·« 
4.2 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ¾Ïȣȭ ¸ðµâ¿¡ °üÇÑ Ãß°¡ Á¤º¸ 
__4.2.1 Å° »ý¼º±â ÀÌ¿ë 
__4.2.2 ¾Ïȣȭ¿Í º¹È£È­ ÀÛ¾÷¿¡ ¾ÏÈ£±â ÀÌ¿ë 
¿ä¾à 

¢Ã 05Àå: ÀÎÁõ ±¸Çö 
5.1 AuthenticationProviderÀÇ ÀÌÇØ 
__5.1.1 ÀÎÁõ ÇÁ·Î¼¼½º Áß ¿äû ³ªÅ¸³»±â 
__5.1.2 ¸ÂÃãÇü ÀÎÁõ ³í¸® ±¸Çö 
__5.1.3 ¸ÂÃãÇü ÀÎÁõ ³í¸® Àû¿ë 
5.2 SecurityContext ÀÌ¿ë 
__5.2.1 º¸¾È ÄÁÅؽºÆ®¸¦ À§ÇÑ º¸À¯ Àü·« ÀÌ¿ë 
__5.2.2 ºñµ¿±â È£ÃâÀ» À§ÇÑ º¸À¯ Àü·« ÀÌ¿ë 
__5.2.3 µ¶¸³Çü ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ º¸À¯ Àü·« ÀÌ¿ë 
__5.2.4 DelegatingSecurityContextRunnable·Î º¸¾È ÄÁÅؽºÆ® Àü´Þ 
__5.2.5 DelegatingSecurityContextExecutorServi
º¸¾È ÄÁÅؽºÆ® Àü´Þ 
5.3 HTTP Basic ÀÎÁõ°ú ¾ç½Ä ±â¹Ý ·Î±×ÀΠÀÎÁõ ÀÌÇØÇϱâ 
__5.3.1 HTTP Basic ÀÌ¿ë ¹× ±¸¼º 
__5.3.2 ¾ç½Ä ±â¹Ý ·Î±×ÀÎÀ¸·Î ÀÎÁõ ±¸Çö 
¿ä¾à 

¢Ã 06Àå: ½ÇÀü - ÀÛ°í ¾ÈÀüÇÑ À¥ ¾ÖÇø®ÄÉÀ̼Ǡ
6.1 ÇÁ·ÎÁ§Æ® ¿ä±¸ »çÇ×°ú ¼³Á¤ 
6.2 »ç¿ëÀÚ °ü¸® ±¸Çö 
6.3 ¸ÂÃãÇü ÀÎÁõ ³í¸® ±¸Çö 
6.4 ÁÖ ÆäÀÌÁö ±¸Çö 
6.5 ¾ÖÇø®ÄÉÀ̼Ǡ½ÇÇà ¹× Å×½ºÆ® 
¿ä¾à 

¢Ã 07Àå: ±ÇÇÑ ºÎ¿© ±¸¼º - ¾×¼¼½º Á¦ÇÑ 
7.1 ±ÇÇÑ°ú ¿ªÇÒ¿¡ µû¶ó Á¢±Ù Á¦ÇÑ 
__7.1.1 »ç¿ëÀÚ ±ÇÇÑÀ» ±âÁØÀ¸·Î ¸ðµç ¿£µåÆ÷ÀÎÆ®¿¡ Á¢±Ù Á¦ÇÑ 
__7.1.2 »ç¿ëÀÚ ¿ªÇÒÀ» ±âÁØÀ¸·Î ¸ðµç ¿£µåÆ÷ÀÎÆ®¿¡ ´ëÇÑ Á¢±ÙÀ» Á¦ÇÑ 
__7.1.3 ¸ðµç ¿£µåÆ÷ÀÎÆ®¿¡ ´ëÇÑ Á¢±Ù Á¦ÇÑ 
¿ä¾à 

¢Ã 08Àå: ±ÇÇÑ ºÎ¿© ±¸¼º - Á¦ÇÑ Àû¿ë 
8.1 ¼±Åñ⠸޼­µå·Î ¿£µåÆ÷ÀÎÆ® ¼±Åà
8.2 MVC ¼±Åñâ·Î ±ÇÇÑÀ» ºÎ¿©ÇÒ ¿äû ¼±Åà
8.3 ¾ØÆ® ¼±Åñâ·Î ±ÇÇÑÀ» ºÎ¿©ÇÒ ¿äû ¼±Åà
8.4 Á¤±Ô½Ä ¼±Åñâ·Î ±ÇÇÑÀ» ºÎ¿©ÇÒ ¿äû ¼±Åà
¿ä¾à 

¢Ã 09Àå: ÇÊÅÍ ±¸Çö 
9.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ¾ÆÅ°ÅØóÀÇ ÇÊÅÍ ±¸Çö 
9.2 Ã¼Àο¡¼­ ±âÁ¸ ÇÊÅÍ ¾Õ¿¡ ÇÊÅÍ Ãß°¡ 
9.3 Ã¼Àο¡¼­ ±âÁ¸ ÇÊÅÍ µÚ¿¡ ÇÊÅÍ Ãß°¡ 
9.4 ÇÊÅ͠üÀÎÀÇ ´Ù¸¥ ÇÊÅÍ À§Ä¡¿¡ ÇÊÅÍ Ãß°¡ 
9.5 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼°¡ Á¦°øÇϴ ÇÊÅÍ ±¸Çö 
¿ä¾à 

¢Ã 10Àå: CSRF º¸È£¿Í CORS Àû¿ë 
10.1 ¾ÖÇø®ÄÉÀ̼ǿ¡ CSRF(»çÀÌÆ® °£ ¿äû À§Á¶) º¸È£ Àû¿ë 
__10.1.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ÀÇ CSRF º¸È£°¡ ÀÛµ¿Çϴ ¹æ½Ä 
__10.1.2 ½ÇÁ¦ ½Ã³ª¸®¿À¿¡¼­ CSRF º¸È£ »ç¿ë 
__10.1.3 CSRF º¸È£ ¸ÂÃã ±¸¼º 
10.2 CORS(±³Â÷ Ãâ󠸮¼Ò½º °øÀ¯) ÀÌ¿ë 
__10.2.1 CORS ÀÛµ¿ ¹æ½Ä 
__10.2.2 @CrossOrigin ¾î³ëÅ×À̼ÇÀ¸·Î CORS Á¤Ã¥ Àû¿ë 
__10.2.3 CorsConfigurer·Î CORS Àû¿ë 
¿ä¾à 

¢Ã 11Àå ½ÇÀü - Ã¥ÀÓÀÇ ºÐ¸® 
11.1 ¿¹Á¦ÀÇ ½Ã³ª¸®¿À¿Í ¿ä±¸ »çÇ× 
11.2 ÅäÅ«ÀÇ ±¸Çö°ú ÀÌ¿ë 
__11.2.1 ÅäÅ«À̶õ? 
__11.2.2 JSON À¥ ÅäÅ«À̶õ? 
11.3 ÀÎÁõ ¼­¹ö ±¸Çö 
11.4 ºñÁî´Ï½º ³í¸® ¼­¹ö ±¸Çö 
__11.4.1 Authentication °´Ã¼ ±¸Çö 
__11.4.2 ÀÎÁõ ¼­¹ö¿¡ ´ëÇÑ ÇÁ¶ô½Ã ±¸Çö 
__11.4.3 AuthenticationProvider ÀÎÅÍÆäÀ̽º ±¸Çö 
__11.4.4 ÇÊÅÍ ±¸Çö 
__11.4.5 º¸¾È ±¸¼º ÀÛ¼º 
__11.4.6 Àüü ½Ã½ºÅÛ Å×½ºÆ® 
¿ä¾à 

¢Ã 12Àå: OAuth 2°¡ ÀÛµ¿Çϴ ¹æ¹ý 
12.1 OAuth 2 ÇÁ·¹ÀÓ¿öÅ© 
12.2 OAuth 2 ÀÎÁõ ¾ÆÅ°ÅØóÀÇ ±¸¼º ¿ä¼Ò 
12.3 OAuth 2¸¦ ±¸ÇöÇϴ ¹æ¹ý ¼±Åà
__12.3.1 ½ÂÀΠÄڵ報׷£Æ® À¯ÇüÀÇ ±¸Çö 
__12.3.2 ¾ÏÈ£ ±×·£Æ® À¯Çü ±¸Çö 
__12.3.3 Å¬¶óÀ̾ðÆ® ÀÚ°Ý Áõ¸í ±×·£Æ® À¯Çü ±¸Çö 
__12.3.4 °»½Å ÅäÅ«À¸·Î »õ ¾×¼¼½º ÅäÅ« ¾ò±â 
12.4 OAuth 2ÀÇ ÇãÁ¡ 
12.5 °£´ÜÇÑ SSO(Single Sign-On) ¾ÖÇø®ÄÉÀ̼Ǡ±¸Çö 
__12.5.1 ±ÇÇÑ ºÎ¿© ¼­¹ö °ü¸® 
__12.5.2 ±¸Çö ½ÃÀÛ 
__12.5.3 ClientRegistration ±¸Çö 
__12.5.4 ClientRegistrationRepository ±¸Çö 
__12.5.5 ½ºÇÁ¸µ ºÎÆ® ±¸¼ºÀÇ ¼ø¼öÇÑ ¸¶¹ý 
__12.5.6 ÀÎÁõµÈ »ç¿ëÀÚÀÇ ¼¼ºÎ Á¤º¸ ¾ò±â 
__12.5.7 ¾ÖÇø®ÄÉÀ̼ǠÅ×½ºÆ® 
¿ä¾à 

¢Ã 13Àå: OAuth 2 - ±ÇÇÑ ºÎ¿© ¼­¹ö ±¸Çö 
13.1 ¸ÂÃãÇü ±ÇÇÑ ºÎ¿© ¼­¹ö ±¸Çö ÀÛ¼º 
13.2 »ç¿ëÀÚ °ü¸® Á¤ÀÇ 
13.3 ±ÇÇÑ ºÎ¿© ¼­¹ö¿¡ Å¬¶óÀ̾ðÆ® µî·Ï 
13.4 ¾ÏÈ£ ±×·£Æ® À¯Çü ÀÌ¿ë 
13.5 ½ÂÀΠÄڵ報׷£Æ® À¯Çü ÀÌ¿ë 
13.6 Å¬¶óÀ̾ðÆ® ÀÚ°Ý Áõ¸í ±×·£Æ® À¯Çü ÀÌ¿ë 
13.7 °»½Å ÅäÅ« ±×·£Æ® À¯Çü ÀÌ¿ë 
¿ä¾à 

¢Ã 14Àå: OAuth 2 - ¸®¼Ò½º ¼­¹ö ±¸Çö 
14.1 ¸®¼Ò½º ¼­¹ö ±¸Çö 
14.2 ¿ø°ÝÀ¸·Î ÅäÅ« È®ÀΠ
14.3 JdbcTokenStore·Î µ¥ÀÌÅͺ£À̽º ÂüÁ¶ ±¸Çö 
14.4 ¹æ½ÄÀÇ °£´ÜÇÑ ºñ±³ 
¿ä¾à 

¢Ã 15Àå OAuth 2 - JWT¿Í ¾Ïȣȭ ¼­¸í »ç¿ë 
15.1 JWTÀÇ ´ëĪ Å°·Î ¼­¸íµÈ ÅäÅ« ÀÌ¿ë 
15.1.1 JWT ÀÌ¿ë 
__15.1.2 JWT¸¦ ¹ßÇàÇϴ ±ÇÇÑ ºÎ¿© ¼­¹ö ±¸Çö 
__15.1.3 JWT¸¦ ÀÌ¿ëÇϴ ¸®¼Ò½º ¼­¹ö ±¸Çö 
15.2 JWT¸¦ ÀÌ¿ëÇÑ ºñ´ëĪ Å°·Î ¼­¸íµÈ ÅäÅ« ÀÌ¿ë 
__15.2.1 Å° ½Ö »ý¼º 
__15.2.2 ºñ¹Ð Å°¸¦ ÀÌ¿ëÇϴ ±ÇÇÑ ºÎ¿© ¼­¹ö ±¸¼º 
__15.2.3 °ø°³ Å°¸¦ ÀÌ¿ëÇϴ ¸®¼Ò½º ¼­¹ö ±¸Çö 
__15.2.4 °ø°³ Å°¸¦ ³ëÃâÇϴ ¿£µåÆ÷ÀÎÆ® ÀÌ¿ë 
15.3 JWT¿¡ ¸ÂÃãÇü ¼¼ºÎ Á¤º¸ Ãß°¡ 
__15.3.1 ÅäÅ«¿¡ ¸ÂÃãÇü ¼¼ºÎ Á¤º¸¸¦ Ãß°¡Çϵµ·Ï ±ÇÇÑ ºÎ¿© ¼­¹ö ±¸¼º 
__15.3.2 JWTÀÇ ¸ÂÃãÇü ¼¼ºÎ Á¤º¸¸¦ ÀÐÀ» ¼ö ÀÖ°Ô ¸®¼Ò½º ¼­¹ö ±¸¼º 
¿ä¾à 

¢Ã 16Àå: Àü¿ª ¸Þ¼­µå º¸¾È - »çÀü ¹× »çÈÄ ±ÇÇÑ ºÎ¿© 
16.1 Àü¿ª ¸Þ¼­µå º¸¾È È°¼ºÈ­ 
__16.1.1 È£Ãâ ±ÇÇÑ ºÎ¿©ÀÇ ÀÌÇØ 
__16.1.2 ÇÁ·ÎÁ§Æ®¿¡¼­ Àü¿ª ¸Þ¼­µå º¸¾È È°¼ºÈ­ 
16.2 ±ÇÇÑ°ú ¿ªÇÒ¿¡ »çÀü ±ÇÇÑ ºÎ¿© Àû¿ë 
16.3 »çÈÄ ±ÇÇÑ ºÎ¿© Àû¿ë 
16.4 ¸Þ¼­µåÀÇ »ç¿ë ±ÇÇÑ ±¸Çö 
¿ä¾à 

¢Ã 17Àå: Àü¿ª ¸Þ¼­µå º¸¾È - »çÀü ¹× »çÈÄ ÇÊÅ͸µ 
17.1 ¸Þ¼­µå ±ÇÇÑ ºÎ¿©¸¦ À§ÇÑ »çÀü ÇÊÅ͸µ Àû¿ë 
17.2 ¸Þ¼­µå ±ÇÇÑ ºÎ¿©¸¦ À§ÇÑ »çÈÄ ÇÊÅ͸µ Àû¿ë 
17.3 ½ºÇÁ¸µ µ¥ÀÌÅÍ ¸®Æ÷ÁöÅ丮¿¡ ÇÊÅ͸µ ÀÌ¿ë 
¿ä¾à 

¢Ã 18Àå ½ÇÀü - OAuth 2 ¾ÖÇø®ÄÉÀ̼Ǡ
18.1 ¾ÖÇø®ÄÉÀ̼Ǡ½Ã³ª¸®¿À 
18.2 KeycloakÀ» ±ÇÇÑ ºÎ¿© ¼­¹ö·Î ±¸¼º 
__18.2.1 ½Ã½ºÅÛ¿¡ Å¬¶óÀ̾ðÆ® µî·Ï 
__18.2.2 Å¬¶óÀ̾ðÆ® ¹üÀ§ ÁöÁ¤ 
__18.2.3 »ç¿ëÀÚ Ãß°¡ ¹× ¾×¼¼½º ÅäÅ« ¾ò±â 
__18.2.4 »ç¿ëÀÚ ¿ªÇÒ Á¤ÀÇ 
18.3 ¸®¼Ò½º ¼­¹ö ±¸Çö 
18.4 ¾ÖÇø®ÄÉÀ̼ǠÅ×½ºÆ® 
__18.4.1 »ç¿ëÀÚ°¡ Àڱ⠷¹Äڵ常 Ãß°¡ÇÒ ¼ö ÀÖ´ÂÁö Áõ¸í 
__18.4.2 »ç¿ëÀÚ°¡ Àڱ⠷¹Äڵ常 °¡Á®¿Ã ¼ö ÀÖ´ÂÁö Áõ¸í 
__18.4.3 °ü¸®ÀÚ¸¸ ·¹Äڵ带 »èÁ¦ÇÒ ¼ö ÀÖ´ÂÁö Áõ¸í 
¿ä¾à 

¢Ã 19Àå: ¸®¾×Ƽºê ¾ÛÀ» À§ÇÑ ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ 
19.1 ¸®¾×Ƽºê ¾ÛÀ̶õ? 
19.2 ¸®¾×Ƽºê ¾Û¿¡¼­ÀÇ »ç¿ëÀÚ °ü¸® 
19.3 ¸®¾×Ƽºê ¾Û¿¡¼­ ±ÇÇÑ ºÎ¿© ±ÔÄ¢ ±¸¼º 
__19.3.1 ¸®¾×Ƽºê ¾ÛÀÇ ¿£µåÆ÷ÀÎÆ® °èÃþ¿¡ ±ÇÇÑ ºÎ¿© Àû¿ë 
__19.3.2 ¸®¾×Ƽºê ¾Û¿¡ ¸Þ¼­µå º¸¾È Àû¿ë 
19.4 ¸®¾×Ƽºê ¾Û°ú OAuth 2 
¿ä¾à 

¢Ã 20Àå: ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ Å×½ºÆ® 
20.1 ¸ðÀÇ »ç¿ëÀڷΠÅ×½ºÆ® 
20.2 UserDetailsServiceÀÇ »ç¿ëÀڷΠÅ×½ºÆ® 
20.3 ¸ÂÃãÇü ÀÎÁõ Authentication °´Ã¼¸¦ ÀÌ¿ëÇÑ Å×½ºÆ® 
20.4 ¸Þ¼­µå º¸¾È Å×½ºÆ® 
20.5 ÀÎÁõ Å×½ºÆ® 
20.6 CSRF ±¸¼º Å×½ºÆ® 
20.7 CORS ±¸¼º Å×½ºÆ® 
20.8 ¸®¾×Ƽºê ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ±¸Çö Å×½ºÆ® 
¿ä¾à 

¢Ã ºÎ·ÏA: ½ºÇÁ¸µ ºÎÆ® ÇÁ·ÎÁ§Æ® ¸¸µé±â 
A.1 start.spring.io·Î ÇÁ·ÎÁ§Æ® ¸¸µé±â 
A.2 STS(½ºÇÁ¸µ Åø ½ºÀ§Æ®)·Î ÇÁ·ÎÁ§Æ® ¸¸µé±â

ÇÑÁÙ ¼­Æò