SSO 설정

Okta, Microsoft Entra ID 또는 Google Workspace를 연결하여 팀이 자체 ID 공급자를 통해 로그인하도록 하세요.

SSO 설정

이 가이드는 회사의 ID 공급자(IdP)를 InterMIND에 연결하는 IT 관리자를 위한 것입니다. 설정 후, 멤버는 일반 로그인 페이지에서 로그인합니다: Sign in with SSO → 업무 이메일 → 귀사의 IdP → InterMIND로 복귀.

사용 가능 플랜: Business 및 Enterprise 플랜 구성 담당자: 팀 소유자 또는 관리자 프로토콜: OpenID Connect (OIDC). SAML 2.0 로그인은 개발 중입니다 — SAML 구성은 저장되지만 아직 로그인에는 사용할 수 없습니다.

사전 요건

  1. 확인된 도메인 — 먼저 DNS TXT 레코드를 통해 이메일 도메인을 확인하세요(Domain Management 참조). SSO 로그인은 팀이 확인한 이메일 도메인의 계정만 허용하며, 이것이 테넌트 경계입니다.
  2. OIDC with discovery를 지원하는 IdP — Issuer URL 아래에 /.well-known/openid-configuration을 제공해야 합니다. Okta, Microsoft Entra ID, Google 모두 지원합니다.

IdP에 등록할 항목

IdP에서 OIDC Web Application을 다음과 같이 생성하세요:

설정
Redirect URI (콜백)https://intermind.com/api/auth/sso/callback — OIDC를 선택한 후 SSO 카드에도 표시됩니다
Grant typeAuthorization Code (PKCE S256이 자동으로 사용됨)
Scopesopenid email profile

IdP가 발급하는 ID 토큰에는 사용자의 email이 포함되어야 하며, 이메일 도메인은 확인된 도메인 중 하나여야 합니다. 그렇지 않으면 로그인이 거부됩니다.

그런 다음 Integrations 페이지의 SSO 카드를 채우세요:

필드붙여넣을 내용
Display Name멤버들이 알아볼 수 있는 레이블
Issuer URLIdP의 issuer — /.well-known/openid-configuration을 제공하는 URL
Authorization URL해당 discovery 문서의 authorization_endpoint
Client ID / Client Secret등록한 앱에서 가져온 값

클라이언트 시크릿은 저장 시 암호화되며 저장 후에는 브라우저로 반환되지 않습니다.

Okta

  1. 관리자 콘솔 → Applications → Create App Integration → 로그인 방식 OIDC, 애플리케이션 유형 Web Application
  2. Sign-in redirect URI: https://intermind.com/api/auth/sso/callback
  3. 액세스 권한을 가질 사용자 또는 그룹을 할당하세요
  4. Client IDClient Secret을 복사하세요
  5. InterMIND에서: Issuer URL = Okta 조직 URL(예: https://acme.okta.com, 또는 인증 서버를 사용하는 경우 https://acme.okta.com/oauth2/default와 같은 issuer); Authorization URL = <issuer>/.well-known/openid-configurationauthorization_endpoint

Microsoft Entra ID (Azure AD)

  1. Entra 관리 센터 → App registrations → New registration
  2. 플랫폼 Web, redirect URI https://intermind.com/api/auth/sso/callback
  3. Certificates & secrets → New client secret — 시크릿 Value를 즉시 복사하세요
  4. Client ID = Overview 페이지의 Application (client) ID
  5. ID 토큰에 사용자 이메일이 포함되도록 하세요: Token configuration → Add optional claim → ID → email
  6. InterMIND에서: Issuer URL = https://login.microsoftonline.com/<tenant-id>/v2.0; Authorization URL = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize

Google Workspace

앱 등록이 필요하지 않습니다. SSO 카드에서 Google Workspace 공급자 유형을 선택하고 저장하면 — 확인된 도메인의 멤버가 Google 계정으로 로그인하고 팀에 자동으로 참여합니다. (명시적인 클라이언트 자격 증명을 선호하는 경우 issuer https://accounts.google.com로 Google을 일반 OIDC 공급자로 연결할 수도 있습니다.)

연결 테스트

  1. 비공개/시크릿 창에서 로그인 페이지를 여세요
  2. Sign in with SSO를 클릭하고 확인된 도메인의 업무 이메일을 입력하세요
  3. IdP로 리디렉션되며, 인증 후 InterMIND에 로그인된 상태로 돌아옵니다
  4. 해당 로그인은 팀 감사 로그(Users 페이지에서 내보내기 가능)에 메서드 sso와 함께 auth.login으로 기록됩니다

문제 해결

증상원인
이메일 입력 후 "SSO is not configured"해당 이메일 도메인과 일치하는 활성화된 SSO 구성이 없음 — 도메인이 확인되고 SSO 카드가 저장되었는지 확인하세요
SSO login is not available: plan팀의 플랜에 더 이상 SSO가 포함되지 않습니다
SSO login is not available: domain-not-verified도메인이 아직 DNS 확인 대기 중입니다
SSO login is not available: config-incompleteClient ID 또는 Client Secret 누락 — SSO 카드를 다시 저장하세요
SSO login is not available: type-unsupported저장된 구성이 SAML입니다 — SAML 로그인은 아직 사용할 수 없습니다
SSO IdP discovery failedIssuer URL이 잘못되었거나 /.well-known/openid-configuration을 제공하지 않습니다
"login session expired, start again"로그인 시작과 IdP 콜백 사이에 5분 이상이 경과했습니다
IdP가 리디렉션한 후 로그인 거부됨IdP가 확인된 도메인 외부의 이메일을 반환했거나, email 클레임이 전혀 없습니다 (Entra: 선택적 email 클레임을 추가하세요)

보안 속성

보안 설문지용: SSO 흐름은 PKCE (S256), state, nonce를 사용하는 Authorization Code 방식입니다; ID 토큰의 서명은 IdP의 JWKS에 대해 검증되며, issuer와 audience도 함께 검증됩니다; IdP는 DNS로 확인된 도메인에 한해서만 권한을 가집니다 — 다른 이메일에 대한 어설션은 결코 세션을 생성하지 않습니다; OIDC 클라이언트 시크릿은 저장 시 암호화됩니다; 모든 SSO 로그인은 팀 감사 로그에 기록됩니다. 플랜, 도메인, 구성 게이트는 로그인 시작 및 콜백 양쪽에서 서버 측으로 적용됩니다.