[Okta] 프로비저닝 연동 가이드
본 가이드는 Okta의 App Integration Wizard(AIW)를 기반으로 QueryPie와 SCIM 연동을 구현하는 방법을 안내합니다. 본 제품의 SCIM 기능은 RPC 7643을 기반하여 SCIM 2.0 기본 규격에 맞추어 제작되었으므로, 타사 Identity Provider 연동 시에도 해당 가이드를 따라 필요한 정보를 QueryPie에서 수집하시어 연동을 진행하여 주시기 바랍니다.
Prerequisites
- Okta IAM 서비스의 Lifecycle Management(LCM) 라이선스 구독이 필요합니다.
- Okta 관리자 콘솔(Okta Admin Console)에 접근하여 App을 만들고 사용자/그룹을 앱에 할당할 수 있는 권한이 요구됩니다.
- 최소 필요 권한
- User
- Edit users’ application assignments
- Group
- Edit groups’ application assignments
- Application
- Manage applications
- User
- 최소 필요 권한
- https://help.okta.com/en-us/content/topics/security/ip-address-allow-listing.htm 페이지 내 Okta IP range allowlist 를 참조하여 해당하는 테넌트의 IP대역을 확인하여 사전에 인바운드 트래픽 예외처리 허용을 해야 합니다.
- 라이선스와 함께 쿼리파이 제품이 설치되어 있어야 합니다.
- 쿼리파이 Owner/Application Admin Role 권한의 계정이 있어야 합니다.
- Provisioning 활성화 하기 단계를 먼저 수행해야 합니다.
Okta API를 활용한 아웃바운드 사용자 동기화를 설정할 예정인 경우, Okta 연동하기 페이지 내 절차대로 대신 진행하여 주시기 바랍니다. SCIM과 동시에 활성화 시, 사용자 동기화에 영향을 받을 수 있으므로 유의하시기 바랍니다.
Integration Steps
상위 사전 작업이 모두 마무리되면 이하의 순차에 따라 SCIM 연동을 수행합니다.
Okta 커스텀 SCIM앱 생성
Okta Admin Console > Applications > Applications > Create App Integration > SAML 2.0 > Configure SAML
- Okta 서비스 에 접속하여 관리자 계정으로 로그인합니다.
- 우측 상단의
Admin
버튼을 클릭하여 관리자 콘솔에 접속합니다. - Okta 관리자 페이지의 좌측 패널에서 Applications > Applications 메뉴로 이동합니다.
Create App Integration
버튼을 클릭합니다.- 커스텀 SCIM 연동을 목적으로 Sign-in method로 SAML 2.0 옵션을 선택한 뒤
Next
버튼을 클릭합니다. - General Settings 단계에서 General Settings 내 값을 적절히 정의한 뒤 하단의
Next
버튼을 클릭합니다.- App name : 식별 가능한 애플리케이션 이름을 기입합니다.
- App logo : 사용자가 식별 가능한 로그를 업로드합니다.
- Configure SAML 단계에서 SAML Settings 내 값을 적절히 정의한 뒤 하단의
Next
버튼을 클릭합니다.- Single sign-on URL : https://
{{querypie.domain}}
/saml/sp/acs - Audience URI (SP Entity ID) : https://
{{querypie.domain}}
/saml/sp/metadata - Attribute Statements (optional) : QueryPie url 필수 attribute 들을 이하와 같이 기입합니다.
- Name: firstName
Name format: Unspecified
Value: user.firstName - Name: lastName
Name format: Unspecified
Value: user.lastName - Name: email
Name format: Unspecified
Value: user.email - Name: loginId
Name format: Unspecified
Value: user.login
- Name: firstName
- Single sign-on URL : https://
- Feedback 단계에서
I'm an Okta customer adding an internal app
을 선택한 뒤 하단의Finish
버튼을 클릭합니다. - Application이 생성되면 상단의 General 탭으로 이동하여 App Settings 메뉴의 우측
Edit
버튼을 클릭합니다. - Provisioning 필드를 SCIM 으로 선택한 뒤
Save
버튼을 클릭합니다. - Okta 연동하기 | Okta에서-QueryPie-애플리케이션-연동-정보-설정 및 Okta 연동하기 | QueryPie에서-Okta-연동-및-동기화-설정을 따라 SSO 연동을 마무리한 뒤, 이후 스텝을 진행하시기 바랍니다.
Okta-QueryPie Provisioning 연동
Okta Admin Console > Applications > Applications > Custom SCIM App > Provisioning > Integration
여기에서 Provisioning 활성화 하기 단계를 먼저 수행해야 합니다.
- Okta에서 생성한 SCIM App의 Provisioning 탭으로 이동합니다.
- SCIM Connection의 우측
Edit
버튼을 눌러 이하의 값을 채워 수정합니다.- SCIM connector base URL : QueryPie에서 조회한 SCIM Endpoint 값을 삽입합니다.
- Unique identifier field for users : “ userName ”
- Support provisioning action : < U n e x p e c t e d n o d e n a m e = a c : t a s k - l i s t / > 4. Authentication Mode : “ HTTP Header ”
- HTTP Header > Authorization : QueryPie에서 생성한 SCIM전용 access token 값을 삽입합니다.
- Test Connector Configuration 버튼을 눌러 연결 테스트를 진행합니다.
- “ Connector configured successfully ” 문구와 함께 팝업이 나타나면
Close
버튼을 클릭합니다.
- 하단의
Save
버튼을 클릭하여 연결 설정을 저장합니다.
SCIM API 활성화 및 체크
Okta Admin Console > Applications > Applications > Custom SCIM App > Provisioning > To App
- Okta에서 생성한 SCIM App의 Provisioning 탭의 To App 화면으로 이동합니다.
- Provisioning to App 우측의 Edit 버튼을 클릭합니다.
- 이하의 설정의 체크박스를 활성화한 뒤 Save 버튼을 클릭하여 저장합니다.
- Create Users : 사용자가 앱에 할당될 때 앱에 추가합니다.
- Update User Attributes : 사용자의 프로필 업데이트가 발생되면 앱에 반영합니다.
- Deactivate Users : 사용자가 비활성화될 때 앱에서 함께 비활성화합니다.
- QueryPie SCIM App Attribute Mappings 하단의
Go to Profile Editor
버튼을 클릭합니다. - Attributes 하단의
Mappings
버튼을 클릭합니다. - 팝업창 상단의 두 탭 중 “Okta User to
{사용자가 정의한 App명}
” 으로 기재된 탭으로 이동합니다. - 사용자 임의의 설정에 맞게 항목을 맵핑한 뒤, 하단의
Save Mappings
버튼을 클릭합니다. - 하단의
Apply updates now
버튼을 클릭합니다.
일부 Attribute 추가 싱크 방법
- 쿼리파이 프로필 내 staticIp, macAddress 등 일부 attribute 항목이 SCIM Integration 당시에 별도 import 되지 않습니다. 해당 Attribute는 아래와 같습니다:
- secondEmail
- mobilePhone
- postalAddress (SCIM 스키마에 맞추어 “formatted”로 추가되어 해당 항목을 매핑하면 됩니다.)
- staticIp (쿼리파이 전용 커스텀 속성)
- macAddress (쿼리파이 전용 커스텀 속성)
- 해당 Attribute 정보를 함께 싱크가 필요한 경우, Okta 등의 IdP에서 Custom Attribute를 추가하여 매핑하여 동기화 시킬 수 있습니다. [Okta 예제]
- SCIM 앱의 Provisioning 탭 > To App 하단의
Go to Profile Editor
를 클릭합니다.
Add Attribute
버튼을 클릭합니다.
- 동기화에 필요한 Attribute를 새로 등록합니다.
- Data type : 쿼리파이와 동일하게 string 선택합니다.
- Display name : 옥타 내 표기할 속성명을 기입합니다.
- Variable name & External name : 동기화할 custom attribute 변수명을 기입합니다.
- 쿼리파이 사용자 프로필에서도 괄호로 변수명 확인이 가능합니다.
- 쿼리파이 사용자 프로필에서도 괄호로 변수명 확인이 가능합니다.
- External namespace : 해당 정보로 기입합니다.
< U n e x p e c t e d n o d e n a m e = a c : s t r u c t u r e d - m a c r o / > 5. 이후
Save
또는Save and Add Another
버튼을 클릭하여 저장합니다. - 그 다음
Mappings
버튼을 클릭합니다.
- 프롬프트 상단의 탭을 2번째 탭(Okta →
{APP}
)으로 선택합니다.
- 하단에 새로 생성한 Custom Attribute와 IdP 내 적절한 Attribute를 매핑하고 Save Mappings 버튼을 클릭하여 설정을 저장합니다.
- 이후 사용자를 앱에 할당합니다.
- SCIM 앱의 Provisioning 탭 > To App 하단의
사용자 Provisioning 체크
- SCIM 앱으로 다시 돌아가서 Assignments 탭에서
Assign
버튼의 옵션을 통해 사용자를 할당합니다.
Okta Admin Console > Applications > Applications > Custom SCIM App > Assignments
- Assign to People : 사용자 개별 단위로 할당
- Assign to Groups : 사용자 그룹 단위로 할당
- QueryPie 앱으로 돌아가서 Administrator > General > User Management > Users로 이동하여 사용자가 정상 푸시되었는지 확인합니다.
Administrator > General > User Management > Users > List Details
그룹 Provisioning 체크
Okta Admin Console > Applications > Applications > Custom SCIM App > Push Groups
- SCIM 앱으로 다시 돌아가서 Push Groups 탭에서
Push Groups
버튼의 옵션을 통해 사용자를 할당합니다.- Find groups by name : 푸시할 그룹명으로 검색하여 할당
- Find groups by rule : 검색 룰을 정의하여 조건에 부합하는 그룹 할당
- QueryPie 앱으로 돌아가서 Administrator > General > User Management > Groups로 이동하여 그룹이 정상 푸시되었는지 확인합니다.
Okta 등 타사 Identity Provider(IdP)에서 푸시하여 생성한 Auth Provider가 QueryPie가 아닌 그룹의 경우, 그룹의 삭제를 해당 IdP에서 unlink 후 삭제 처리하시는 것을 권장드립니다. 본 제품에서 그룹을 삭제할 경우, 해당 IdP에서의 관리 플로우가 엉켜 해당 삭제된 그룹명으로는 제품에 다시 push가 어려울 수 있습니다.