Google Cloud 프로젝트에 OAuth 클라이언트를 만들어, 회사의 Google Workspace 계정으로 Aiyori에 로그인할 수 있게 합니다(OpenID Connect를 쓰는 SSO).
공통 값과 잘 안 될 때 확인할 곳은 회사의 ID 관리 시스템과 연결 페이지에 있습니다. 화면 이름은 2026년 10월 기준 Google 콘솔의 것입니다.
할 수 있는 것·할 수 없는 것
- SSO(OpenID Connect)
- 할 수 있습니다. 회사 Google 계정으로 로그인합니다.
- SCIM
- 할 수 없습니다. Google Workspace가 SCIM으로 사람을 보내는 것은 Google 카탈로그에 있는 앱뿐입니다.
SCIM 대신 할 것
- Aiyori의 “아직 등록되지 않은 사람이 로그인하면 수강자로 등록하기” 항목을 켭니다. 회사 도메인의 사람이 처음 로그인할 때 수강자가 됩니다.
- 부서 등의 그룹 나누기와 사전 등록은, Google Admin console에서 내보낸 명단을 Aiyori의 “한꺼번에 등록” 기능(CSV)으로 넣습니다(아래 4).
- 퇴사한 사람은 Google 계정을 정지하면 로그인할 수 없게 됩니다. Aiyori의 수강자는 남으므로, 매달 명단을 가져올 때 등에 강사가 수강자 페이지에서 정지 또는 이용 종료 처리합니다.
- 꼭 자동으로 하고 싶은 회사는 Okta나 Microsoft Entra ID를 Google 앞에 두면 SCIM을 쓸 수 있습니다.
필요한 것
- Google Cloud console(https://console.cloud.google.com)에서 회사 조직 안에 프로젝트를 만들 수 있는 사람.
- Google Workspace Admin console의 최고 관리자는 필요 없습니다(Aiyori가 요청하는 것은 openid email profile뿐이며, 민감한 범위를 쓰지 않습니다).
- 비용은 들지 않습니다(OAuth 클라이언트는 무료입니다).
1. 프로젝트와 동의 화면
- Google Cloud console → 위쪽의 프로젝트 선택 → New Project → 이름은 aiyori-sso, Organization에 회사 조직을 고르고 Create.
- Google Auth Platform(메뉴의 APIs & Services → OAuth consent screen에서 들어갑니다) → Get started. App name에 Aiyori, User support email과 연락처 정보에 IT 담당자의 주소를 입력하고, Audience는 Internal로 한 뒤 동의하고 Create.
- Data Access에는 아무것도 추가하지 않습니다(openid·email·profile은 처음부터 쓸 수 있습니다).
Audience를 Internal로 하면 회사 Google Workspace의 사람만 로그인할 수 있습니다. 회사 밖의 Google 계정은 Google 화면에서 막힙니다.
2. OAuth 클라이언트
- Google Auth Platform → Clients → + Create client.
- Application type은 Web application, 이름은 Aiyori.
- Authorized redirect URIs → + Add URI → https://app.aiyori.app/
api/ web/ sso/ callback. Authorized JavaScript origins는 비워 두어도 됩니다. - Create → Client ID와 Client secret을 적어 둡니다. 시크릿은 나중에 볼 수 없을 수도 있습니다. 적어 두지 못했다면 클라이언트 페이지에서 새 시크릿을 추가해 바꿔 넣습니다.
3. Aiyori에 입력하기
Aiyori의 강사 화면 → “설정” → “회사의 ID 관리 시스템과 연결” → “SSO” 탭에 입력하고 “저장” 버튼을 누릅니다.
- 발급자 URL(Issuer)
- https://accounts.google.com
- 클라이언트 ID
- 2에서 적어 둔 값(….apps.googleusercontent.com)
- 클라이언트 시크릿
- 2에서 적어 둔 값
- 허용할 메일 주소 도메인
- 반드시 입력합니다(비어 있으면 저장할 수 없습니다). 회사 Google Workspace의 기본 도메인(예: example.com)과, 직원 메일 주소에 쓰는 다른 도메인(보조 도메인)이 있으면 그것도 한 줄에 하나씩 입력합니다.
- 자동 등록
- “아직 등록되지 않은 사람이 로그인하면 수강자로 등록하기” 항목을 켭니다(SCIM이 없기 때문입니다).
저장한 뒤 회사 계정으로 한 사람이 로그인해 확인합니다(로그인 화면 → “회사 계정으로 로그인” → 조직 코드 → Google 계정 선택 → Aiyori로 돌아옴). 관리자는 “직접 로그인해 보기”의 “내 회사 계정으로 시험하기” 버튼으로도 시험할 수 있습니다.
발급자(https://accounts.google.com)는 어느 Google 계정이든 같습니다. 누가 들어올 수 있는지는 동의 화면의 Internal과 Aiyori의 허용할 도메인, 두 곳에서 좁힙니다. 둘 다 반드시 설정해 주세요.
4. 명단과 그룹
- Google Admin console → Directory → Users → Download users(CSV).
- 스프레드시트에서 열고 이름(성과 이름을 한 열로 합침)·메일 주소·부서(Org Unit Path 등을 알기 쉬운 이름으로 바꿈)의 3열로 만든 뒤, 열 제목을 이 이름으로 바꿉니다. Google의 열 제목(Email Address [Required] 등) 그대로는 읽을 수 없습니다.
- Aiyori의 수강자 페이지 → “한꺼번에 등록”에 붙여 넣거나 CSV를 고름 → “확인하기” 버튼 → 등록. 부서 열이 그룹이 됩니다(한 번에 1,000명까지).
- 입사·이동이 있을 때마다(또는 매달) 같은 작업을 합니다. 같은 사람은 갱신될 뿐 중복되지 않습니다(사번 → 메일 주소 순으로 구별합니다).
5. 연결한 날 확인할 것
- 회사 계정으로 들어올 수 있습니다. 처음 온 사람은 수강자로 등록됩니다.
- 회사 밖의 Google 계정(개인 gmail.com)은 Google 화면에서 막힙니다(동의 화면이 Internal이기 때문입니다). 막히지 않더라도 Aiyori에는 들어올 수 없습니다(hd가 없기 때문입니다).
- Google 계정을 정지한 사람은 회사 계정으로 들어올 수 없습니다.
Google Workspace 연동의 규칙
Aiyori는 Google 로그인 뒤에 다음을 확인합니다.
- ID 토큰의 발급자(iss)가 https://accounts.google.com 또는 accounts.google.com일 것(Google은 둘 다 씁니다).
- hd(그 사람의 Google Workspace 기본 도메인)가 허용할 도메인 중 하나일 것. 개인 Google 계정(gmail.com 등. hd가 없습니다)과 다른 회사 Workspace의 사람은 들어올 수 없습니다(동의 화면을 실수로 External로 해 두어도 여기서 막힙니다).
- 메일 주소(email)의 도메인도 허용할 도메인 중 하나일 것. email_verified가 false인 사람은 들어올 수 없습니다.
- 처음 온 사람은 자동 등록을 켜 두었다면 수강자로 등록됩니다(ID는 메일 주소의 @ 앞부분, 이름은 Google의 표시 이름). 두 번째부터는 Google의 sub로 같은 사람임을 알아봅니다.
