유럽과 같이 하는 사업 중에럼 로그인을 통합하여 구현해야 하는 부분이 있었다.
7-8개의 파트너 플랫폼&기술들은 하나의 계정으로 모든 플랫폼에 접근할 수 있어야하고
이미 세션이 있다면 로그인 필요없이 접근이 가능하도록 해야했다
이는 Oauth2.0방식의 인증방식을 사용했고 나도 이를 따라야했다.
나는 우리 플랫폼의 client_id와 client_secret을 부여받았다
이건 아마 등록을 하면 나오는 걸로 알고있다.
4가지 정도의 프로토콜유형이 있는데 나는 그 중에서
권한 부여 승인 코드 방식이라고도 부르는 Authorization Code Grant방식을 사용했다
자체 생성한 Authorization Code를 전달하는 방식으로 기본적으로 많이 쓰이는 방식이다.
또 이 방식은 refresh token을 사용가능하다는 점에서 장점이있다.
프로세스를 간략하게 설명해보겠다.
1. redirect_uri와 response type을 코드로 지정한 로그인화면(인터페이스는 프로젝트 자체 통합되어있음)
2. id,pw입력하여 로그인 버튼클릭 시 code를 받음
3. 해당 code로 access_token과 refresh_token을 발급받음
-------------------
여기까지가 기본 프로세스이고 추가 작업은
4. 초기화면으로 이동시켜줌
5. 해당 토큰을 서버에 저장하고 3500x10의 주기마다 refresh_token으로 새로운 token을 발급받아 저장
6. 발급받은 token으로 user정보 가져와서 user_id를 서버에 저장
7. 재접속시 토큰이 서버에 저장되어 있으면 로그인없이 바로 접근가능하도록 redirect
- 주요 파라미터를 아래와 같다
- 내가 쓴 방식에 대한 값은 빨간색으로 해놓겠다
client_id,
client_secret |
클라이언트 자격증명. 클라이언트가 권한 서버에 등록하면 발급받을 수 있으며 권한 서버 연동 시 클라이언트의 검증에 사용됩니다.
|
redirect_url
|
권한 서버가 요청에 대한 응답을 보낼 url을 설정합니다.
|
response_type
|
권한 부여 동의 요청 시 포함되는 값으로 권한 부여 방식에 대한 설정입니다.
아래 값 중 한 개를 사용합니다.
· code: Authorization Code Grant
· token: Implicit Grant
|
state
|
CSRF 공격에 대비하기 위해 클라이언트가 권한서버에 요청 시 포함하는 임의의 문자열.
클라이언트가 요청 시 state를 포함 시켰다면 권한 서버는 동일한 값을 클라이언트에게 보내야 함. |
grant_type
|
Access Token 획득 요청 시 포함되는 값으로 권한 부여 방식에 대한 설정입니다. 아래 값 중 한 개를 사용합니다.
· authorization_code: Authorization Code Grant
· password: Resource Owner Password Credentials Grant
· client_credentials: Client Credentials Grant
|
code
|
Authorization Code Grant 방식에서 Access Token요청 시 사용됩니다.
권한 서버에서 획득한 Authorization Code를 입력하면 Access Token을 발행할 수 있음. |
token_type
|
발행된 Token의 타입.
대표적으로 Bearer, MAC(Message Authentication Code)가 있음. |
expires_in
|
토큰 만료 시간이며 단위는 초이다.
보통 36000초 |
테스트는 postman으로 진행했고 java로 구현을 했다
자세한 코드는 추후에 올리겠다!
'server·network' 카테고리의 다른 글
[AWS] EC2 Ubuntu 20.04LTS 인스턴스에 ssh 접속 하기 (0) | 2023.06.27 |
---|---|
[AWS] EC2에 (Linux 기반)Ubuntu 20.04LTS 인스턴스 생성하기, 유럽리즌 생성하기 (0) | 2023.06.27 |
Ubuntu SSH 설치 및 설정, 방화벽 열어주기 (0) | 2023.05.18 |
tomcat위에 geoserver올려주기, extension 3rd Party Extension다운받기 (0) | 2023.03.29 |
리눅스에서 서버사양(OS, CPU, CPU갯수, RAM용량, HDD용량)확인하기 (0) | 2023.03.10 |
댓글