Okta Admin Console에서 Aiyori 앱을 OpenID Connect로 만들고(SSO), 할당한 직원과 그룹을 SCIM 2.0으로 Aiyori에 보냅니다.
공통 값과 잘 안 될 때 확인할 곳은 회사의 ID 관리 시스템과 연결 페이지에 있습니다. 화면 이름은 2026년 10월 기준 Okta Admin Console의 것입니다.
필요한 것
- Okta Admin Console(https://(조직)-admin.okta.com)에서 Application Administrator 이상의 역할.
- SSO는 Okta Single Sign-On으로 쓸 수 있습니다. SCIM에는 Lifecycle Management가 필요합니다.
- Aiyori 조직의 관리자가 강사 화면의 “설정” → “회사의 ID 관리 시스템과 연결” 화면을 열 수 있을 것.
1. 앱 만들기(OpenID Connect)
- Admin Console → Applications → Applications → Create App Integration.
- Sign-in method는 OIDC - OpenID Connect, Application type은 Web Application → Next.
- 아래 표의 값을 입력 → Save.
- General 탭에서 Client ID와 Client secret을 적어 둡니다. 시크릿은 그 줄의 눈 아이콘으로 표시해 복사합니다.
- Client Credentials의 Edit → Require PKCE as additional verification에 체크 → Save. Client authentication은 Client secret(기본값) 그대로 둡니다(Aiyori는 PKCE를 보냅니다).
- Okta 대시보드의 타일에서 들어올 수 있게 하려면(선택), Login initiated by를 Either Okta or App으로 하고, Initiate login URI에 https://app.aiyori.app/
api/ web/ sso/ start?code=(조직 코드)를 입력합니다.
- App integration name
- Aiyori
- Grant type
- Authorization Code만(기본값 그대로)
- Sign-in redirect URIs
- https://app.aiyori.app/
api/ web/ sso/ callback - Sign-out redirect URIs
- 비워 두어도 됩니다
- Assignments
- Limit access to selected groups(나중에 할당) 또는 Skip group assignment for now
2. Aiyori에 입력하기(SSO)
Aiyori의 강사 화면 → “설정” → “회사의 ID 관리 시스템과 연결” → “SSO” 탭에 입력하고 “저장” 버튼을 누릅니다.
- 발급자 URL(Issuer)
- https://(조직).okta.com (Okta 조직의 인가 서버. Admin Console의 URL에서 -admin을 뺀 것). 자체 도메인을 쓰는 회사는 그 URL.
- 클라이언트 ID·클라이언트 시크릿
- 1에서 적어 둔 값
- 허용할 메일 주소 도메인
- 회사 메일 도메인(한 줄에 하나)
발급자는 끝에 /oauth2/default가 붙은 커스텀 인가 서버여도 됩니다(API Access Management를 계약한 회사). 어느 쪽으로 할지는 브라우저에서 발급자 URL 뒤에 /.well-known/openid-configuration을 붙여 열고, issuer 값과 같은 것을 입력합니다.
Assignments 탭에서 시험할 사람을 할당하고, Aiyori 로그인 화면 → “회사 계정으로 로그인” → 조직 코드 → Okta 로그인 → Aiyori로 돌아오면 연결된 것입니다. 관리자는 “직접 로그인해 보기”의 “내 회사 계정으로 시험하기” 버튼으로도 시험할 수 있습니다.
3. SCIM(Provisioning)
- Aiyori의 “회사의 ID 관리 시스템과 연결” → “SCIM” 탭에서 “키 이름” 칸에 Okta를 입력하고 “키 만들기” 버튼 → 나온 키를 적어 둡니다(이 화면에서만 보입니다).
- Okta의 Aiyori 앱 → General 탭 → App Settings의 Edit → Provisioning에서 SCIM을 고르고 Save. 이 항목이 나오지 않으면 아래 4의, SCIM만 별도 앱으로 만드는 방법으로 연결합니다.
- Provisioning 탭 → Integration → Edit에서 아래 표의 값을 입력하고, Test Connector Configuration에서 Create Users·Update User Attributes·Push Groups에 표시가 붙으면 Save.
- Provisioning 탭 → To App → Edit → Create Users·Update User Attributes·Deactivate Users를 Enable로 하고 Save. Sync Password는 켜지 않습니다. 새 사용자를 만들 때 패스워드를 설정하는 항목은 끕니다(Aiyori는 패스워드를 갖지 않습니다).
- 속성 매핑(Aiyori User Profile Mappings)은 기본값 그대로 두어도 됩니다. userName이 회사 메일 주소인지 확인합니다(기본값은 Okta의 사용자 이름이며, 보통 메일 주소입니다).
- Assignments 탭에서 Aiyori에 넣을 그룹을 할당합니다. 할당한 사람이 Aiyori의 수강자가 됩니다.
- Push Groups 탭 → + Push Groups → 부서 등의 그룹을 골라 Save. Aiyori의 그룹이 됩니다.
- SCIM connector base URL
- https://app.aiyori.app/
api/ scim/ v2 - Unique identifier field for users
- userName
- Supported provisioning actions
- Push New Users·Push Profile Updates·Push Groups에 체크(Import New Users and Profile Updates는 필요 없습니다)
- Authentication Mode
- HTTP Header. Authorization(Bearer)에는 1단계에서 적어 둔 키를 넣습니다.
4. SCIM만 별도 앱으로 만들기(3의 항목이 나오지 않을 때)
OpenID Connect 앱의 General 탭에 Provisioning 항목이 나오지 않을 때가 있습니다. 그때는 SCIM만 Okta 카탈로그의 앱으로 연결합니다.
- Applications → Applications → Browse App Catalog → SCIM 2.0 Test App으로 검색 → SCIM 2.0 Test App (Header Auth) → Add Integration.
- General settings: Application label에 Aiyori SCIM을 입력합니다. Do not display application icon to users에 체크하고(수강자에게는 타일을 보여 주지 않습니다), Browser plugin auto-submit은 해제한 뒤 Next.
- Sign-on options는 기본값 그대로 두어도 됩니다(로그인은 1의 앱으로 하므로 쓰지 않습니다). Application username format을 Email로 하고 Done.
- Provisioning 탭 → Configure API Integration → Enable API integration에 체크 → Base URL에 https://app.aiyori.app/
api/ scim/ v2, API Token에 3의 1단계에서 적어 둔 키를 그대로 붙여 넣고 → Test API Credentials → Save. - 나머지는 3의 4~7단계와 같습니다(To App·속성 매핑·할당·Push Groups).
- SSO 앱(Aiyori)과 SCIM 앱(Aiyori SCIM)에는 같은 그룹을 할당합니다.
이 앱은 API Token 값을 앞에 Bearer를 붙이지 않고 그대로 보냅니다. Aiyori는 어느 형태든 받아들입니다.
5. 연결한 날 확인할 것
- 할당한 한 사람이 회사 계정으로 들어올 수 있습니다. 할당하지 않은 사람은 Okta 화면에서 막힙니다.
- 할당한 사람이 Aiyori의 수강자로 나오고, Push한 그룹에 들어 있습니다.
- 그 사람의 할당을 해제하면(또는 Okta에서 Deactivate하면) Aiyori에서 “회사 설정으로 정지 중” 상태가 되어 로그인할 수 없습니다. 되돌리면 들어올 수 있습니다.
Okta 연동의 규칙
- 사용하는 SCIM 작업은 사용자 생성·속성 갱신·비활성화(Deactivate)·그룹 Push입니다. 패스워드 동기화와 Aiyori에서 Okta로의 가져오기(Import)는 쓰지 않습니다.
- 할당을 해제하면 Okta는 active: false를 보냅니다(DELETE는 보내지 않습니다). Aiyori에서는 어느 쪽이든 정지이며, 수강 기록은 남습니다.
- SSO로 들어온 사람은 SCIM으로 만든 수강자와 회사 메일 주소로 연결됩니다.
- SCIM 키에는 기한이 없습니다. 바꿀 때는 Aiyori에서 새 키를 만들어 Okta의 Integration에 다시 입력한 뒤, 옛 키의 “비활성화” 버튼을 누릅니다.
