본문으로 건너뛰기

Okta

Okta와 연결(SSO·SCIM)

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)

  1. Admin Console → Applications → Applications → Create App Integration.
  2. Sign-in method는 OIDC - OpenID Connect, Application type은 Web Application → Next.
  3. 아래 표의 값을 입력 → Save.
  4. General 탭에서 Client ID와 Client secret을 적어 둡니다. 시크릿은 그 줄의 눈 아이콘으로 표시해 복사합니다.
  5. Client Credentials의 Edit → Require PKCE as additional verification에 체크 → Save. Client authentication은 Client secret(기본값) 그대로 둡니다(Aiyori는 PKCE를 보냅니다).
  6. 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)

  1. Aiyori의 “회사의 ID 관리 시스템과 연결” → “SCIM” 탭에서 “키 이름” 칸에 Okta를 입력하고 “키 만들기” 버튼 → 나온 키를 적어 둡니다(이 화면에서만 보입니다).
  2. Okta의 Aiyori 앱 → General 탭 → App Settings의 Edit → Provisioning에서 SCIM을 고르고 Save. 이 항목이 나오지 않으면 아래 4의, SCIM만 별도 앱으로 만드는 방법으로 연결합니다.
  3. Provisioning 탭 → Integration → Edit에서 아래 표의 값을 입력하고, Test Connector Configuration에서 Create Users·Update User Attributes·Push Groups에 표시가 붙으면 Save.
  4. Provisioning 탭 → To App → Edit → Create Users·Update User Attributes·Deactivate Users를 Enable로 하고 Save. Sync Password는 켜지 않습니다. 새 사용자를 만들 때 패스워드를 설정하는 항목은 끕니다(Aiyori는 패스워드를 갖지 않습니다).
  5. 속성 매핑(Aiyori User Profile Mappings)은 기본값 그대로 두어도 됩니다. userName이 회사 메일 주소인지 확인합니다(기본값은 Okta의 사용자 이름이며, 보통 메일 주소입니다).
  6. Assignments 탭에서 Aiyori에 넣을 그룹을 할당합니다. 할당한 사람이 Aiyori의 수강자가 됩니다.
  7. 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 카탈로그의 앱으로 연결합니다.

  1. Applications → Applications → Browse App Catalog → SCIM 2.0 Test App으로 검색 → SCIM 2.0 Test App (Header Auth) → Add Integration.
  2. General settings: Application label에 Aiyori SCIM을 입력합니다. Do not display application icon to users에 체크하고(수강자에게는 타일을 보여 주지 않습니다), Browser plugin auto-submit은 해제한 뒤 Next.
  3. Sign-on options는 기본값 그대로 두어도 됩니다(로그인은 1의 앱으로 하므로 쓰지 않습니다). Application username format을 Email로 하고 Done.
  4. Provisioning 탭 → Configure API Integration → Enable API integration에 체크 → Base URL에 https://app.aiyori.app/api/scim/v2, API Token에 3의 1단계에서 적어 둔 키를 그대로 붙여 넣고 → Test API Credentials → Save.
  5. 나머지는 3의 4~7단계와 같습니다(To App·속성 매핑·할당·Push Groups).
  6. 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에 다시 입력한 뒤, 옛 키의 “비활성화” 버튼을 누릅니다.