기타107 [Security-OAuth2] Authorization Code Flow도 ID / Password를 입력하는데 Password Grant만 안전하지 않다고 하나요 ? 개요OAuth2의 인증 방식중 Password Credentials 라는 것이 있습니다. 이는 ID와 Password를 입력하여 Access Token을 얻어서 Resource Server에 접근할 수 있는 메커니즘을 가진 인증 방식입니다. 그런데 이 방식은 취약한 방법으로 더이상 OAuth2에서는 권장하지 않는 방식입니다. 그리고 일반적으로 많이 사용하는 Authorization Code Flow 방식이 있습니다. 이는 인증을 한 후 Code를 통해서 Resource Server에 접근할 수 있도록 하는 인증 방식입니다. 이 또한 처음에 ID / Password를 입력받아서 인증하게됩니다.두개의 Type 모두 동일하게 유저는 ID와 Password를 입력하는데 왜 Authorization Code Fl.. 2024. 10. 1. [기타] 날짜와 시간 표현의 국제 표준인 ISO 8601에 대해서 자세히 알아보자. (RFC3339, ISO8601, JavaTime) 개요먼저 표준화라는것은 사물, 개념, 방법 및 절차 등에 대하여 합리적인 기준을 설정하여 그 기준에 맞추는 것을 말합니다. 표준이 필요한 이유는 생산, 소비, 서비스 등 다양한 분야에서 생산성과 경제성을 높이고자함입니다. 표준화가 되어있는 요소에 대해서는 재활용이 가능하고 서로 이해하는것도 좋습니다. 최근의 좋은 표준의 예시는 in/out port로써 C-Type으로 통일되어가고 있습니다. 기존에 각 제품마다 표준이 달라서 불편했던 생산과 소비에 이제 단일화된 표준으로 편리함을 제공해주고 있지요. 이것이 바로 표준화가 필요한 이유입니다.오늘은 날짜와 시간 표현의 국제 표준인 ISO 8601과 RFC 3339에 대해서 알아보는 시간을 가져보려고합니다. 인터넷 표준에 비추어 볼때 우리가 따라야하는 표준은 I.. 2024. 7. 2. [security] OAuth 2.0의 인가 스펙과 OIDC(OpenID Connect)의 인증 스펙에 대해서 알아봅시다 개요안녕하세요. 오늘은 OIDC(OpenID Connect)에 대해서 자세히 알아보는 시간을 가져보도록 하겠습니다. 다들 OAuth2에 대해서는 아실것 같습니다. 잘 모르시는 분들은 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow를 통해서 먼저 보고 오시는것을 추천드립니다. OAuth2는 HTTP 기반에서의 권한 부여(Authorizaiton)를 위한 업계 표준 프로토콜입니다. OIDC는 OAuth2의 확장중 하나로써 인증(Authentication)에 대한 프로토콜입니다.오늘은 인증과 인가의 차이부터 OIDC까지 알아보도록 하겠습니다.요약인증과 인가의 차이인증(Authentication): 사용자의 신원을 확인하는 과정입니다. 로그인과 같은 방식으로 사용자가 누구.. 2024. 6. 19. [Security] OAuth 2 Extension, Proof Key of Code Exchange(PKCE)에 대해서 알아보자 개요안녕하세요. 이전 포스팅 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow을 통해서 OAuth2 개론을 알아보았습니다. OAuth2는 http 기반에서의 인증의 표준으로써 안전하게 토큰을 발급하고 이를 통해서 인증(Authentication)된 유저만 접근할 수 있도록 할 수 있습니다.하지만 기본 OAuth2는 네이티브 앱 또는 SPA 웹을 사용할 경우 authorization code interception attack을 당할 수 있습니다. 이 공격을 당하면 본인이 아닌 다른 유저가 token을 발급받을 수 있게됩니다. 따라서 이를 방지하기 위해서 OAuth 2.1의 업데이트의 하나로 Proof Key of Code Exchange(PKCE)가 있습니다.오늘은 .. 2024. 6. 9. ChatGPT 알아보기 - Token 안녕하세요. 오늘은 ChatGPT 시리즈의 마지막으로 ChatGPT에서 Token에 대해서 알아보도록하겠습니다. Token이란 ChatGPT의 기본 단위입니다. 이 Token이라는 단위를 이용해서 가격을 설정하고 이전 대화의 컨텍스트를 유지하는 단위로도 됩니다. Tokenizing Token은 단어의 조각이라고 할 수 있습니다. 프롬프트가 입력되면 입력된 프롬프트는 모델에 처리되기전에 먼저 token으로 분할됩니다. 이렇게 token화 되는 방식은 정확하게 word만을 나누는것은 아니며 띄어쓰기, 컴마, 복합어 등을 기준으로 쪼개질 수 있습니다. https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them 에서 이야기하.. 2023. 6. 4. ChatGPT 알아보기 - API 사용하기 안녕하세요. 이전 시간에는 ChatGPT의 동작 과정과 프롬프트(Prompt)에 대해서 알아보는 시간을 가졌었습니다. 프롬프트 엔지니어링을 통해서 서비스에서 ChatGPT를 써볼 수 있지 않을까 ? 라고 고민하실 수 있습니다. 저도 고민하고 있고 실제로 사용하는것도 API 하나로 쉽게 가능합니다.오늘 포스팅에서는 ChatGPT를 프로젝트에 적용하기 위해서의 API의 사용방법에 대해서 알아보도록 하겠습니다.Open API 사용방법https://openai.com/blog/introducing-chatgpt-and-whisper-apis 사이트에 접속하여 로그인을 진행합니다.로그인을 하게되면 3가지를 선택할 수 있습니다. 해당 UI에서 제일 오른쪽의 API를 선택합니다.그 후 프로필을 선택하고 View AP.. 2023. 5. 24. ChatGPT 알아보기 - ChatGPT의 동작 과정과 프롬프트(Prompt) ? 안녕하세요. 이전 포스팅에서 ChatGPT 알아보기 - 개요와 기본 사용법라는 포스팅으로 찾아 뵈었었는데요. 해당 포스팅에서 ChatGPT를 사용하는 방법과 기존 구글 검색과의 차이점, 그리고 어디에 사용하면 좋을지에 대해서 알아보았었습니다. 오늘은 ChatGPT의 기본적인 동작 과정과 잘 사용하기 위해 프롬프트라는 개념과 적용하는 방법에 대해서 알아보도록 하겠습니다. ChatGPT의 동작 과정 이전 포스팅을 통해 우리는 기본적으로 ChatGPT의 사용방법에 대해서 알게 되었습니다. 오늘은 먼저 ChatGPT와 유저의 동작이 어떻게 되는지 한번 알아보도록 하겠습니다. 사용자가 ChatGPT interface에 Text를 입력합니다. 이러한 Text는 질문이 될 수 있고, 정보를 전달하는 것일 수 있습니다.. 2023. 5. 13. ChatGPT 알아보기 - 개요와 기본 사용법 안녕하세요. 요즘 IT 업계의 핫한 키워드 중 하나로 ChatGPT가 있습니다. ChatGPT는 대화형 AI로써 검색의 새로운 패러다임을 가져다주고 있습니다. 저는 회사에서 진행한 한 세션에서 인사이트를 얻었습니다. 개발자로써 이러한 새로운 기술, 새로운 환경에 대해서 이해하고 사용할 수 있으면 지금까지와는 또 다르게 개발자로써의 성장을 한번 더 할 수 있을거라고 생각했습니다. 오늘은 ChatGPT에 대해서 제가 정맇한 내용으로 알아보는 시간을 가져보도록 하겠습니다. 그리고 다음 시간에는 좀 더 ChatGPT를 잘 사용할 수 있는 Token과 프롬프트 엔지니어링에 대해서도 알아보려고 합니다. ChatGPT 란 ? ChatGPT란 방대한 양의 텍스트 데이터로 학습된 AI 언어 모델입니다. ChatGPT는 .. 2023. 5. 5. [기타] CloudEvents v1.0.2 번역 및 정리 - 이벤트 메시지 스키마 스펙 안녕하세요. 사바라다입니다 ! 클라우드가 보편화되고 서비스를 만들어내는게 쉬워지면서 여러개의 서버로 하나의 서비스를 이루는 MSA(MicroService Architecture)로 개발이 이루어지고 전환도 이루지고 있습니다. 이에 따라 기존의 모놀리식(monolithic) 방식과는 주요하게 고려해야할 부분이 부분이 다릅니다. 오늘 여러분들에게 소개드릴 내용은 CloudEvents Spec입니다. 하나의 서비스를 하나의 서버가 아닌 여러개의 서버로 제공한다는 것은 서버간의 Message 교환이 중요합니다. 따라서 Message의 Schema 또한 중요한데요. CloudEvents Spec은 이러한 스키마의 표준에 대해서 고민하고 논의하여 정의된 문서입니다. 오늘은 CloudEvents Spec의 내용을 요.. 2023. 4. 19. [OAuth2] spring-authorization-server를 이용하여 인증 서버(auth server) 만들기 안녕하세요. 이전시간까지 우리는 jwt란 무엇인지, OAuth2 스펙과 기본적인 flow에 대해서 각각 알아보았습니다.[JWT] JWT(Json Web Token)에 대해서 자세히 알아봅시다 - 이론편[OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow이번 포스팅과 다음 포스팅에서는 OAuth2의 인증 서버와 리소스 서버를 실제로 구현해보도록 하겠습니다.이번 실습은 이전시간에 배운 authorize_code grant type을 토대로 진행합니다.오늘 실습에 대한 코드는 github Repository에서 확인하실 수 있습니다.spring-authorization-server의 등장기존에는 Spring Security에서 인증 서버를 구성할 수 있도록 지원하고 있었습니다.. 2023. 3. 18. [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow 안녕하세요. 이전 포스팅에서는 jwt의 이론과 Java, Spring Boot에서의 실습을 진행해보았습니다.이번 시간에는 OAuth2의 기본적인 이론에 대해서 알아보도록 하겠습니다.그리고 이번 포스팅의 이론을 기반으로하여 다음시간에는 실습을 진행해보도록 하겠습니다.OAuth2란 ?OAuth(Open Authorization) 2.0는 HTTP 기반의 인증을 위한 업계 표준 프로토콜입니다. OAuth는 리소스를 소유하고 있는 소유자(Resource Owner)를 대신하여 리소스(Resource)에 대한 접근을 제어할 수 있습니다. 이 프로토콜은 접근하고자 하는 리소스를 소유하고 있는 리소스 소유자(Resource Owner)와 리소스 서버(Resource Server), 이를 사용하고자 하는 클라이언트(C.. 2023. 3. 11. [JWT+JAVA] JWT(Json Web Token)에 대해서 자세히 알아봅시다 - 실습편 안녕하세요. 이전 포스팅에서 JWT의 이론적인 측면에 대해서 자세히 다뤄보았습니다.오늘은 JWT를 java에서 생성해보고 검증하는 코드를 실제로 작성해보도록 하겠습니다.오늘 실습한 내용은 github에 올려두어 직접 테스트를 진행해보실 수 있습니다.실습 코드 github Link환경아래가 오늘 jwt 실습에 사용할 라이브러리입니다. jjwt를 사용합니다.jjwt를 사용하는 이유는 라이브러리를 선택할 때 아래의 기준으로 선택되었습니다.표준 스펙을 대부분 지원하는가 ?project가 가장 star의 수가 많은가 ?문서가 잘 되어있는가 ?implementation("io.jsonwebtoken:jjwt-api:0.11.5")runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")i.. 2023. 2. 27. 이전 1 2 3 4 ··· 9 다음