-
OAuth - Client Credentials Grant Typeconcept/server 2020. 11. 3. 00:19
educative 를 번역, 요약한 자료입니다.
이 grant type은 기계 대 기계 authorization에 사용된다. 여기서는 유저가 관여하지 않는다.
마이크로 서비스 아키텍처를 따르는 애플리케이션이 있다고 가정해보자. 애플리케이션은 작은 부분으로 나뉘고 각 부분은 별도의 서버에 배포된다.
한 내부 서버가 다른 서버의 일부 데이터에 액세스해야 하는 경우, client credentials grant type을 사용할 수 있다.
Client Credentials grant type working
1단계 : Token request
여기서는 직접 토큰 요청이 있다. 유저가 관여하지 않기 때문에 클라이언트가 직접 HTTP POST 요청을 Authorization 서버로 전송한다.
request query 파라미터는 다음과 같다
1. grant_type
클라이언트 자격 증명을 사용하여 액세스 토큰을 요청하므로 이 매개 변수에는 client_credentials가 포함될 것이다.
2. client_id
client id
3. client_secret
client secret
4. scope
요청되는 리소스를 정의하는 optional 한 파라미터
request의 모습은 다음과 같다
POST /token/endpoint HTTP/1.1 Host: authserver.dummy.com grant_type=client_credentials &client_id=12345 &client_secret=gh5Gdkj743HFG45udbfGfs &scope=images_read
2단계 : Token response
클라이언트 자격 증명이 유효한 경우 인증 서버에서 토큰을 반환한다.
response의 모습은 다음과 같다.
HTTP/1.1 200 OK Content-Type: application/json { "access_token":"YT3774ghsghdj6t4GJT5hd", "token_type":"bearer", "expires_in":3600, "refresh_token":"YT768475hjsdbhdgby6434hdh", "scope":"images_read" }
'concept > server' 카테고리의 다른 글
OAuth - Refresh Token Grant (0) 2020.11.03 OAuth - Resource Owner Credentials Grant (0) 2020.11.03 OAuth - Implicit Grant Type (암시적 승인 타입) (0) 2020.11.02 OAuth - Authorization Code Grant Type (0) 2020.11.02 OAuth 2.0 Intro, 용어 (0) 2020.11.02