SSO 설정

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

SSO 설정

본 가이드는 회사의 자격 증명 공급자(IdP)를 InterMIND에 연결하는 IT 관리자를 위한 것입니다. 설정 완료 후, 구성원은 일반 로그인 페이지에서 다음과 같이 로그인합니다: SSO로 로그인 → 업무 이메일 → IdP → InterMIND로 다시 돌아옴. 비기술적 개요는 Single Sign-On 기능 페이지를 참조하십시오.

제공 플랜: Business 및 Enterprise 플랜 구성 권한: 팀 소유자 또는 관리자 프로토콜: OpenID Connect (OIDC) 전용. SAML 2.0은 제공되지 않습니다 — Okta, Microsoft Entra ID 및 Google Workspace는 모두 OIDC를 지원합니다.

Integrations 페이지의 SSO 카드

사전 요구 사항

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

IdP에 등록할 항목

IdP에서 다음 설정으로 OIDC Web Application을 생성하십시오:

설정값
Redirect URI (callback)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등록한 앱에서 가져온 값

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 ID 및 Client Secret을 복사합니다.
  5. InterMIND에서: Issuer URL = Okta 조직 URL (예: https://acme.okta.com, 또는 사용 중인 경우 https://acme.okta.com/oauth2/default와 같은 인증 서버의 issuer); Authorization URL = <issuer>/.well-known/openid-configuration의 authorization_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 — secret Value를 즉시 복사합니다.
  4. Client ID = 개요 페이지의 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 계정으로 로그인하여 자동으로 팀에 참여합니다. (명시적인 클라이언트 자격 증명을 선호하는 경우 발급자 https://accounts.google.com을 사용하는 일반 OIDC 제공자로 Google을 연결할 수도 있습니다.)

연결 테스트

  1. 비공개/시크릿 창에서 로그인 페이지를 엽니다.
  2. SSO로 로그인을 클릭하고 확인된 도메인의 업무 이메일을 입력합니다.
  3. IdP로 리디렉션됩니다; 인증 후 InterMIND로 다시 돌아와 로그인됩니다.
  4. 로그인은 sso 방식과 함께 auth.login으로 팀 감사 로그(Users 페이지에서 내보낼 수 있음)에 기록됩니다.

문제 해결

증상원인
이메일 입력 후 "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저장된 제공자 유형이 로그인 흐름에서 구현한 유형이 아님 — SSO 구성을 삭제하고 OIDC 또는 Google Workspace로 다시 생성
SSO IdP discovery failedIssuer URL이 잘못되었거나 /.well-known/openid-configuration을 제공하지 않음
"login session expired, start again"로그인 시작과 IdP 콜백 사이에 5분 이상 경과함
IdP 리디렉션 후 로그인 거부됨IdP가 확인된 도메인 외부의 이메일을 반환했거나, email 클레임이 전혀 없음 (Entra: 선택적 이메일 클레임 추가)

보안 속성

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