1. Authorization Code
- 권한 부여 승인을 위해서 자체생성한 Authorization Code를 전달하는 방식
- 기본이 되는 방식
- Refresh Token 사용이 가능
2. Client Credentials
- 클라이언트의 자격증명만으로 Access Token을 획득하는 방식
- 가장 간단한 방식
- 자격증명을 안전하게 보관할 수 있는 클라이언트에서만 사용되어야 함
- Refresh Token 사용 불가능
3. Implicit Grant
- 자격증명을 안전하게 저장하기 힘든 클라이언트에게 최적화된 방식
- Access Token이 바로 발급되기 때문에 만료기간을 짧게 설정할 필요가 있음
- Refresh Token 사용 불가능
4. Resource Owner Password Credentials Grant
- username, password로 Access Token을 받는 방식
- 클라이언트가 외부 프로그램일 경우 사용하면 안됨
- 권한서버, 리소스서버, 클라이언트가 모두 같은 시스템에 속해 있을때 사용해야 함 (대부분 비권장)
- 요청이 성공한 클라이언트는 메모리에서 자격증명을 폐기해야 함
- Refresh Token 사용 가능
<정리>
Authorization Code | Client Credentials | Implicit Grant | ROPC Grant | |
App 유형 | SPA, Web App, Mobile | Web Server | Browser | User / Client |
권장사항 | 일반적 | 비권장 | ||
Refresh Token | O | X | X | O |
Redirect Uri | 필수 | 필수 | 권장 | X |
<참조>
- https://learn.microsoft.com/ko-kr/azure/active-directory/develop/v2-oauth2-auth-code-flow
'Software Architecture' 카테고리의 다른 글
Spring 기반의 Layer별 테스트케이스 작성 가이드 (0) | 2024.04.03 |
---|---|
(콘웨이법칙)커뮤니케이션 구조가 소프트웨어의 구조를 결정한다. (1) | 2023.04.13 |
Designing Data-Intensive Applications - The Trouble with Distributed Systems #2 (0) | 2023.01.19 |
Designing Data-Intensive Applications - The Trouble with Distributed Systems #1 (0) | 2023.01.13 |
HTTP Cache #1(문서의 나이와 캐시 신선도) (0) | 2022.12.29 |