OIDC 기반 SSO

OpenID Connect(이하 OIDC) 기반의 SSO 동작 방식과 설정 방법을 설명한다.

NAVER WORKS는 SP(Service Provider), OIDC 규격상으로는 **RP(Relying Party)**로 동작하며, 고객사의 **IdP(Identity Provider)**에 로그인 및 인증을 위임한다.

참고

  • OIDC 기반 SSO에서는 NAVER WORKS가 OIDC 표준 규격의 RP로 동작하므로, 고객사는 별도의 API를 제작할 필요가 없다. 고객사가 사용 중인 IdP(Okta, Microsoft Entra ID, NCP SSO 등)에 애플리케이션을 등록하고, 발급받은 정보를 Developer Console에 입력하는 것으로 연동이 완료된다.

OIDC 기반 SSO 동작 흐름 {#oidc-sso-flow}

그림 1 NAVER WORKS와 고객사 간 OAuth 2.0 기반 SSO 그림 1 NAVER WORKS와 고객사 간 OIDC 기반 SSO

  1. NAVER WORKS 서비스 사용
    사용자는 NAVER WORKS 서비스를 사용하기 위해 웹 브라우저에서 URL로 접근하거나, NAVER WORKS 앱 또는 NAVER WORKS Drive를 실행한다.

  2. Authentication Request (redirect)
    NAVER WORKS에 로그인되어 있지 않은 경우, NAVER WORKS 인증 시스템은 사용자를 고객사 IdP의 Authorization Endpoint로 redirect한다. 이때 scope에 openid를 포함하고, state를 함께 전달한다.

  3. (IdP에 로그인되어 있지 않으면) 로그인 페이지 실행
    IdP에 로그인되어 있지 않으면, IdP가 자체 로그인 페이지를 사용자에게 제공한다.

  4. 아이디/비밀번호 입력
    사용자는 고객사 로그인 정책에 따라 아이디/비밀번호(또는 MFA 등)를 입력한다.

  5. IdP 인증 처리 후 Authorization Code 발급
    IdP는 사용자 인증을 처리하고 Authorization Code를 발급한다.
    IdP에 이미 로그인되어 있다면 3~4번 단계를 생략하고 바로 Authorization Code를 발급한다.
    Authorization Code는 Token을 발급받는 데 한 번만 사용되고 소멸되는 일회성 코드여야 한다.

  6. Authorization Code 반환 (redirect)
    IdP는 Authentication Request에서 전달받은 redirect_uri(NAVER WORKS의 고정 콜백 주소)로 Authorization Code와 state를 redirect한다.

  7. Token Request
    NAVER WORKS 인증 시스템은 Authorization Code를 IdP의 Token Endpoint로 전달하여 토큰 발급을 요청한다. 이 통신은 백채널(서버 간 직접 통신)로 수행된다.

  8. ID Token / Access Token 반환
    IdP는 Authorization Code를 검증한 후 ID Token과 Access Token을 발급하여 반환한다.

  9. ID Token 검증
    NAVER WORKS 인증 시스템은 IdP의 JWKS URI에서 공개키를 조회하여 ID Token의 서명과 iss·aud·exp 등의 클레임을 검증한다.

  10. 사용자 식별
    검증된 ID Token의 클레임에서 User Key(NAVER WORKS Account 또는 External Key)를 추출하여 NAVER WORKS 구성원과 매핑한다.

  11. NAVER WORKS 인증 토큰 발급
    NAVER WORKS 인증 시스템은 매핑된 사용자 정보를 기반으로 NAVER WORKS용 인증 토큰을 발급한다.

참고

  • NAVER WORKS는 사용자 식별에 UserInfo Endpoint 대신 ID Token의 클레임을 사용한다.
  • 9~10번 단계는 NAVER WORKS 인증 시스템 내부 처리이므로 고객사에서 구현할 사항이 없다.
  • ID Token의 유효시간은 30분이다(iat기준).

연동 절차 요약 {#setup-summary}

  1. 고객사 IdP에 NAVER WORKS용 애플리케이션을 등록하고, Redirect URI 2개를 등록한다.
  2. IdP에서 Client ID와 Client Secret을 발급받는다.
  3. Developer Console의 SSO > WORKS as SP에서 SSO Type을 OIDC로 선택한다.
  4. OIDC Configuration URL을 입력하고 "확인"을 눌러 엔드포인트를 자동 검출한다.
  5. User Key를 선택하고 Client ID / Client Secret을 입력한다.
  6. "적용"을 클릭하여 설정을 저장한다.

주의

  • SSO 설정은 해당 도메인(또는 그룹명)을 사용하는 계열사 전체에 공통으로 적용된다.
  • 설정을 Off에서 다른 값으로 적용하면 '승인대기' 중인 구성원은 모두 삭제되고, Admin > 구성원 초대 기능도 [사용 안 함]으로 자동 설정된다.
  • OIDC 적용 시 POP/IMAP/SMTP/CalDAV에 사용되는 외부 앱 비밀번호가 자동으로 활성화된다.
  • IdP에 등록하는 애플리케이션은 반드시 Confidential 타입으로 지정해야 한다.
  • IdP에서 nonce·pkce를 필수로 요구하지 않도록 설정해야 한다.