Okta SSO/OIDC 가이드
English version: https://blog.selectfromuser.com/okta/
한국어 버전 (앱 템플릿 이용): https://blog.selectfromuser.com/okta-app-template/
셀렉트 어드민은 Identity Provider를 통해 Single Sign On (SSO)을 지원합니다.
본문에서는 Okta를 이용하여 셀렉트 어드민 개별 권한 설정을 진행합니다.
목차
- 지원 기능
- 설정 방법
- Okta 그룹 권한 동기화
- IdP-initiated 통합 로그인
- 문제해결
지원 기능
- SP-initiated SSO (Single Sign-On,
your-subdomain.selectfromuser.com/?iss=1
Example Link) - IdP-initiated SSO (through Third-party Initiated Login)
- Just-In-Time provisioning
요구사항
- 셀렉트 어드민 해당팀 관리자 권한
- Okta 관리자
- 셀렉트 플랫폼: 엔터프라이즈 플랜 이상, 부가서비스 제공
설정 방법
Okta 관리자 페이지 > Applications > Browse App > Select Admin 으로 검색 가능합니다.
앱 설정시 "Select Domain" 에 도메인을 입력합니다.
hello-okta.selectfromuser.com
(꼭 "https://" 제외하여야함)[1] Okta 정보 입력
- Okta 관리자 페이지> SelectAdmin application > Sign On 탭
- Client ID와 Client secret를 복사
- OpenID Provider Metadata 클릭하여 "issuer" 부분 확인 후 복사
[2] SelectAdmin 정보 입력
- SelectAdmin 관리자 페이지 > 설정 > 보안 > "OIDC (Okta)" 에서 활성화 클릭
- Client ID, Client secret, Issuer URL 입력 (주소 끝에
/oauth
또는/oauth/default
가 입력되어야합니다. *Authorization server name) - 어드민 공유링크(YOUR_SUBDOMAIN.selectfromuser.com)에 접속하면 Okta가 표시됩니다.
Okta 그룹 권한 동기화
옥타 관리자 페이지 > Security > API > Authorization Servers > 서버 선택(default)
- 새로운 scope 추가: 해당 이름을 가진 스코프를 추가합니다.
groups
- 새로운 claim 추가: Add claim > ID Token / Always > Value type: Groups 선택합니다. 여기에서 동기화 할 그룹을 필터링 가능합니다. (만약 모든 그룹을 연동하려면
.*
를 입력해주세요) - Group mapping 켜기: 셀렉트 어드민 > 설정 > 보안에서 옵션을 켭니다.
- Group-Role 맵핑 입력: 왼쪽은 Okta의 group 이름이고, 오른쪽은 SelectAdmin의 role 이름입니다.
IdP-initiated SSO
일반 사용자는 옥타 대시보드나 브라우저 플러그인을 통해서도 셀렉트 어드민에 바로 접속 가능합니다.
문제해결
채팅 또는 커뮤니티로 문의바랍니다.
/logout
즉시 로그아웃 가능합니다.- 그룹 동기화가 없으면, 새로운 사용자는 권한이 없다고 표시됩니다.
- 그룹 동기화가 없으면, 기존 초대된 계정과 이메일이 일치하는 사용자만 접근 가능합니다.
- 그룹 동기화가 있고, 'Everyone'을 'Viewer'로 연결 해놓은 경우 모든 임직원이 어드민에 바로 접속 가능합니다.
- 그룹 동기화가 없으면서 모든 사용자에게 접속을 허용하여면 allow new user as a viewer (JiT) 옵션을 켜야합니다.
- 그룹 동기화로 변경된 권한도 로그에 기록됩니다.
- 셀렉트 어드민은 Okta에서 가져온 그룹이름을 캐시하거나 저장하지 않습니다. 따라서 그룹이름 입력시 검증을 하지 않으므로 오타에 유의해주세요.
- 어떠한 경우에도 셀렉트 어드민 관리자가 아닌 경우 (인증되지 않은 사람) 보안옵션을 대신 비활성화 해드리고 있지 않습니다.