Okta SSO 로그인을 위한 튜토리얼이다.
Okta(옥타) 계정 및 Application 생성
Okta 를 사용하기 위해 계정 및 어플리케이션 설정을 해준다.
OKTA 사이트 -> SignUp 버튼 클릭 -> 이름, 이메일등 정보 입력 후 이메일 인증을 진행한다.
회원 가입 후 Okta 개발자 사이트 로그인을 하게 되면 Applications, API 등을 설정을 할수 있는 메뉴들이 표시되고 대쉬보드가 표시된다.
Application은 최대 5개까지 무료로 사용할 수있다.
Applications 추가를 위해 Application 메뉴를 클릭 후 Add Application 버튼을 클릭한다.
Web 을 선택 후 Next 버튼을 클릭한다.
Login redirect URIs 값을 Okta Spring Boot Starter 기본 값으로 변경한다. 다른 값을 사용시 설정을 해주면 사용 가능하다.
AS-IS : http://localhost:8080/authorization-code/callback
TO-BE : http://localhost:8080/login/oauth2/code/okta
그외에 설정은 기본 설정으로 해두어도 된다.
생성이 완료되면 Client ID, Client Secret, Okta domain 값을 저장해 둔다. Client Secret 값은 외부로 유출이 되면 안되는 값이므로 외부에 공개하면 안된다.
Download sample app 을 클릭하면 각 언어별로 샘플 프로젝트를 다운로드 받을 수도 있다.
Spring Boot Application 생성
Spring Boot Web 프로젝트를 생성한다.
build.gradle
implementation 'com.okta.spring:okta-spring-boot-starter:1.5.1'
implementation 'org.springframework.boot:spring-boot-starter-web'
Controller 추가
@Controller
public class WebController {
@RequestMapping("/")
@ResponseBody
public String home(@AuthenticationPrincipal final OidcUser oidcUser) {
return "Welcome, " + oidcUser.getFullName();
}
@RequestMapping("/attributes")
@ResponseBody
public String attributes(@AuthenticationPrincipal final OidcUser oidcUser) {
return oidcUser.getAttributes().toString();
}
@RequestMapping("/authorities")
@ResponseBody
public String authorities(@AuthenticationPrincipal final OidcUser oidcUser) {
return oidcUser.getAuthorities().toString();
}
}
application.yml 설정
위에서 Okta 어플리케이션 생성시 적어두었던 ClientID, ClientSecret, Domain 정보를 적어준다.
okta:
main:
oauth2:
issuer: https://{your 도메인}/oauth2/default
client-id: {clientID}
client-secret: {clientSecret}
서버 시작을 하게되면 Okta 로그인 창이 나타난다.
로그인 후 /attriattributes , /attributesauthorities 를 호출 하게 되면 사용자의 정보를 볼수 있다.
'Develop > java,spring' 카테고리의 다른 글
JWT(Json Web Token) 이란? (0) | 2020.12.15 |
---|---|
git 명령어 (0) | 2020.12.01 |
Java Stream GroupingBy 사용 (0) | 2020.11.26 |
JAVA 버전별 특징 (1) | 2020.11.20 |
JAVA var 키워드 (0) | 2020.11.18 |