<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Oauth2 on j2234's log</title><link>https://log.j2234.cc/tags/oauth2/</link><description>Recent content in Oauth2 on j2234's log</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026</copyright><lastBuildDate>Tue, 07 Apr 2026 15:25:58 +0000</lastBuildDate><atom:link href="https://log.j2234.cc/tags/oauth2/index.xml" rel="self" type="application/rss+xml"/><item><title>OIDC 구현(GOOGLE)</title><link>https://log.j2234.cc/posts/velog/004-oidc-%EA%B5%AC%ED%98%84google/</link><pubDate>Sat, 19 Apr 2025 00:01:19 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/004-oidc-%EA%B5%AC%ED%98%84google/</guid><description>&lt;p&gt;이 글에 등장하는 전체 코드는 &lt;a href="https://github.com/jiheon2234-s-lab/spring_oidc" target="_blank" rel="noreferrer"&gt;깃허브 저장소&lt;/a&gt;에서 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;OIDC는 OAuth2에 인증 기능을 추가한 확장 프로토콜이므로, 구현 과정은 &lt;a href="https://velog.io/@jiheon2234/OAuth2%EC%99%80-OIDC-%EA%B5%AC%ED%98%84" target="_blank" rel="noreferrer"&gt;이전 글&lt;/a&gt;과 거의 동일하지만&amp;hellip;
제공자가 OIDC를 지원해야만 이 방식으로 구현이 가능하다.&lt;/p&gt;

&lt;h3 class="relative group"&gt;사용자 로그인 진입점
 &lt;div id="사용자-로그인-진입점" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%82%ac%ec%9a%a9%ec%9e%90-%eb%a1%9c%ea%b7%b8%ec%9d%b8-%ec%a7%84%ec%9e%85%ec%a0%90" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;OIDC에서는 로그인 페이지로 진입할 때,&lt;br&gt;
OAuth2에서 전달하는 기본 파라미터(&lt;code&gt;client_id&lt;/code&gt;, &lt;code&gt;response_type&lt;/code&gt;, &lt;code&gt;redirect_uri&lt;/code&gt;)에 &lt;strong&gt;&lt;code&gt;scope&lt;/code&gt;파라미터가 필수로 포함된다.&lt;/strong&gt; 이 &lt;code&gt;scope&lt;/code&gt;에는 반드시 &lt;code&gt;openid&lt;/code&gt;가 포함되어야 하며, 필요한 사용자 정보 항목을 추가로 명시할 수 있다.&lt;/p&gt;</description></item><item><title>OAuth2 구현(naver)</title><link>https://log.j2234.cc/posts/velog/005-oauth2-%EA%B5%AC%ED%98%84naver/</link><pubDate>Fri, 18 Apr 2025 22:01:25 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/005-oauth2-%EA%B5%AC%ED%98%84naver/</guid><description>&lt;p&gt;이 글에 등장하는 전체 코드는 &lt;a href="https://github.com/jiheon2234-s-lab/spring_oidc" target="_blank" rel="noreferrer"&gt;깃허브 저장소&lt;/a&gt;에서 확인할 수 있다.&lt;/p&gt;

&lt;h3 class="relative group"&gt;사용자 로그인 진입점
 &lt;div id="사용자-로그인-진입점" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ec%82%ac%ec%9a%a9%ec%9e%90-%eb%a1%9c%ea%b7%b8%ec%9d%b8-%ec%a7%84%ec%9e%85%ec%a0%90" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;index.html&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;사용자가 네이버 로그인 버튼을 클릭하면, 다음과 같은 URL로 이동한다:
&lt;code&gt;https://nid.naver.com/oauth2.0/authorize?&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;client_id={내 네이버 클라이언트 ID}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;response_type=code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;redirect_uri={네이버 개발자센터에 등록된 내 서버 URI}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;해당 화면에서 사용자는 네이버 계정으로 인증을 진행하게 된다.&lt;/p&gt;

&lt;h3 class="relative group"&gt;리다이렉트
 &lt;div id="리다이렉트" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%eb%a6%ac%eb%8b%a4%ec%9d%b4%eb%a0%89%ed%8a%b8" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;인증이 성공하면, 사용자는 &lt;code&gt;redirect_uri&lt;/code&gt;로 이동한다.&lt;/p&gt;</description></item><item><title>OAuth2와 OIDC</title><link>https://log.j2234.cc/posts/velog/006-oauth2%EC%99%80-oidc/</link><pubDate>Fri, 18 Apr 2025 14:49:50 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/006-oauth2%EC%99%80-oidc/</guid><description>&lt;p&gt;어떤 멘토 분이 이런 말을 하셨다.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;ldquo;요즘은 Spring Security에 OAuth2 라이브러리 하나만 추가해놓고&lt;br&gt;
소셜 로그인 인증을 구현했다고 한다.&lt;br&gt;
과연 이렇게 구현한 사람들이 OAuth2에 대해 안다고 할 수 있을까?&lt;br&gt;
OIDC가 뭔지는 알기나 할까?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;이 말을 듣고 찔려서 공부해보겠다.&lt;/p&gt;

&lt;h2 class="relative group"&gt;OAuth2는 인증 프로토콜이 아니라 &amp;ldquo;인가&amp;rdquo; 프로토콜이다.
 &lt;div id="oauth2는-인증-프로토콜이-아니라-인가-프로토콜이다" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#oauth2%eb%8a%94-%ec%9d%b8%ec%a6%9d-%ed%94%84%eb%a1%9c%ed%86%a0%ec%bd%9c%ec%9d%b4-%ec%95%84%eb%8b%88%eb%9d%bc-%ec%9d%b8%ea%b0%80-%ed%94%84%eb%a1%9c%ed%86%a0%ec%bd%9c%ec%9d%b4%eb%8b%a4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;del&gt;Authentication&lt;/del&gt; &lt;strong&gt;Authorization&lt;/strong&gt;
많은 글들이 OAuth2예시를 설명하면서, 이를 구분하지 않는다. 거의 &lt;code&gt;소셜 로그인 == OAuth2 로그인&lt;/code&gt; 정도로 취급되지만, OAuth2의 목적은 인증이 아닌 &lt;strong&gt;인가&lt;/strong&gt;이다.&lt;/p&gt;</description></item></channel></rss>