SSO 연동
    • PDF

    SSO 연동

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    SSO(Single Sign On) 연동이란 WORKBOX와 고객사 간 하나의 아이디로 접근할 수 있는 통합 로그인 연동을 의미합니다. WORKBOX는 기본적으로 SP(Service Provider) 방식의 SSO를 지원합니다. Developers의 SSO는 OAuth 2.0과 SAML(Security Assertion Markup Language) 2.0 두 가지 방식을 모두 지원합니다. 사용자가 어떤 방식으로 연동을 설정하냐에 따라 설정 방법에 조금씩 차이가 있습니다.

    SSO 연동 공통 순서

    두 가지 방식 중 어느 방식을 선택하든 연동 설정을 위해 공통으로 진행해야 하는 순서가 있습니다. 공통 순서에 대한 설명은 다음과 같습니다.

    1. Services > Business Applications > WORKBOXDevelopers에서 SSO 설정을 선택해 주십시오.
    2. 설정 선택을 클릭하여 ON으로 변경해 주십시오.
    3. OAuth 2.0과 SAML 2.0 가운데 원하는 연동 항목을 선택한 다음 설정해 주십시오.
    1. [적용] 버튼을 클릭해 주십시오.

    workbox-6-1-1_ko(1).png

    OAuth2.0 기반 SSO

    OAuth 2.0 기반의 SSO 동작 방식과 구현 방법은 다음과 같습니다.

    workbox-6-1-2_ko(1).png

    1. WORKBOX 서비스 사용

    사용자는 WORKBOX서비스를 사용하기 위해 웹 브라우저에서 URL로 접근하거나, WORKBOX앱을 실행합니다.

    1. Authorization Code 발급 요청

    WORKBOX에 로그인되어 있지 않은 경우, 고객사의 인증 시스템으로 Authorization Code 발급을 요청합니다.

    1. (고객사에 로그인되어 있지 않으면) 로그인 페이지 실행

    고객사 시스템에 로그인되어 있지 않으면, 사용자에게 자체 제작한 로그인 페이지를 제공합니다.

    1. 아이디/비밀번호 입력

    사용자는 고객사 로그인 정책에 따라 아이디/비밀번호를 입력합니다.

    1. 고객사 인증 처리 후, Authorization Code 발급

    아이디/비밀번호로 고객사 시스템에 인증 처리를 하고, Authorization Code를 발급합니다. 만약, 고객사 시스템에 이미 로그인되어 있다면, 3~4번 단계를 생략하고, 바로 Authorization Code를 발급합니다.
    Authorization Code는 Access Token을 반환하는 데 사용하고 소멸되는 일회성 코드여야 합니다.

    1. Authorization Code 반환 (Redirect)

    최초 Authorization Code 발급 요청 시 받은 Request 중 WORKBOX인증 시스템의 redirect_uri로 Authorization Code를 redirect합니다.

    1. Authorization Code로 Access Token 요청

    Authorization Code를 파라미터로 고객사 인증 시스템에 Access Token을 요청합니다.

    1. Access Token 반환

    고객사 인증 시스템은 Authorization Code를 검증한 후, Access Token을 발급하여 반환합니다.

    1. Access Token으로 사용자 정보 요청

    Access Token을 파라미터로 고객사 인증 시스템에 사용자 정보를 요청합니다.

    1. 사용자 정보 반환

    고객사 인증 시스템은 Access Token을 검증한 후, 사용자의 로그인 email정보를 반환합니다.

    1. WORKBOX 인증 토큰 발급

    WORKBOX 인증 시스템은 사용자 정보를 기반으로 WORKBOX용 인증 토큰을 발급합니다.

    Step 1: Web Login URL

    사용자가 WORKBOX웹 서비스에 로그인하기 위하여 아이디/비밀번호를 입력하는 페이지입니다. 로그인 페이지는 고객사의 요구에 맞게 직접 제작하면 됩니다.

    고객사의 로그인을 처리한 후, Authorization Code를 발급하여 redirect_uri로 반환합니다.

    Request URL

    https://고객사도메인/고객사로그인페이지
    

    WORKBOX의 인프라 보안 정책에 따라 443 포트만 사용할 수 있습니다.

    제작한 Request URL은 네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 Web Login URL에 등록합니다.

    workbox-6-2-1_ko(1).png

    HTTP Method

    GET

    Request

    파라미터타입필수 여부설명
    response_typeStringY인증 과정에 대한 구분값으로 어떠한 형태의 결과값을 받을지 명시 항상 "code"라는 고정된 문자열 사용
    client_idStringY네이버 클라우드 플랫폼 콘솔 Developers에서 등록한 client id값
    redirect_uriStringY인증을 처리한 후 Authorization Code를 반환할 URL이고, URL인코딩되어 있음
    stateStringYCSRF(Cross-stie request forgery) 방지를 위해 임의로 생성된 고유 값 (authorization code 반환 시 url에 포함해 파라미터로 state 값을 넘긴다.)
    loginIdStringN사용자가 입력했던 Login 계정

    Step 2: Authorization Code 발급

    고객사 SSO 시스템에서 고객사 인증 및 SSO에 필요한 처리를 한 후, Authorization Code를 발급해서 WORKBOX 인증 시스템으로 redirect합니다.

    Request URL

    URL은 WORKBOX 인증 시스템에서 로그인 페이지 요청 시 전달한 redirect_uri 파라미터값입니다.

    예: https://WORKBOX인증시스템URL/authorizationURL
    

    URL은 사용자 환경 및 WORKBOX 정책에 따라 언제든지 바뀔 수 있는 값이므로, 반드시 redirect_uri로 전달받은 URL을 사용해야 합니다.

    HTTP Method

    GET/POST

    Request

    파라미터타입필수 여부설명
    codeStringY(성공)Authorization Code Access Token을 발급하는 데 사용되는 일회성 코드
    stateStringY(성공)CSRF를 방지하기 위해 사용하는 client side의 인증값이고, URL 인코딩되어 있음(redirect_uri 파라미터로 넘긴 state값)
    errorStringY(실패)실패 시 반환하는 오류 코드
    error_descriptionStringY(실패)실패 시 반환하는 오류 설명

    Step 3: Access Token 발급 API

    고객사 SSO 시스템에서 Authorization Code를 검증한 후 Access Token을 발급하여 반환합니다.

    Request URL

    https://고객사도메인/accessToken
    

    WORKBOX의 인프라 보안 정책에 따라 443 포트만 사용할 수 있습니다. 제작한 Request URL은 네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 Access Token Return API에 등록합니다.

    workbox-6-2-2_ko(1).png

    HTTP Method

    POST

    Request

    파라미터타입필수 여부설명
    grant_typeStringY인증 과정에 대한 구분값으로 어떠한 형태의 결과값을 받을지 명시. 항상 "authorization_code"라는 고정된 문자열 사용
    client_idStringY네이버 클라우드 플랫폼 콘솔 Developers에서 등록한 client id값
    client_secretStringY네이버 클라우드 플랫폼 콘솔 Developers에서 등록한 client secret값
    codeStringYAuthorization Code
    stateStringNCSRF를 방지하기 위해 사용하는 client side의 인증값이고, URL 인코딩되어 있음

    Response

    속성타입필수 여부설명
    access_tokenStringY(성공 시)Access Token
    token_typeStringY(성공 시)Access Token의 type. "Bearer" 고정
    expires_inStringY(성공 시)Access Token의 유효 기간(초). 실제 애플리케이션의 로그인 유지 시간
    errorStringY(실패 시)실패 시 반환하는 오류 코드
    error_descriptionStringY(실패 시)실패 시 반환하는 오류 설명

    Step 4: 사용자 정보 반환 API

    고객사 SSO 시스템에서 Access Token을 검증한 후 사용자 정보를 반환합니다.

    Request URL

    https://고객사도메인/사용자정보
    

    WORKBOX의 인프라 보안 정책에 따라 443 포트만 사용할 수 있습니다.
    제작한 Request URL은 네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 User info return API에 등록합니다.

    workbox-6-2-3_ko.png

    HTTP Method

    POST

    Request

    파라미터타입필수 여부설명
    client_idStringY네이버 클라우드 플랫폼 콘솔 Developers에서 등록한 client id값
    client_secretStringY네이버 클라우드 플랫폼 콘솔 Developers에서 등록한 client secret값client_secret
    access_tokenStringYAccess Token

    Response

    속성타입필수 여부설명
    email_idStringY(성공 시)구성원의 로그인 ID(업무메일)
    errorStringY(실패 시)실패 시 반환하는 오류 코드
    error_descriptionStringY(실패 시)실패 시 반환하는 오류 설명

    SAML 기반 SSO

    SAML(Security Assertion Markup Language) 2.0 기반의 SSO 동작 방식과 구현 방법은 다음과 같습니다.

    workbox-6-3-1_ko.png

    1. WORKBOX 서비스 사용

    사용자는 WORKBOX 서비스를 사용하기 위해 웹 브라우저에서 URL로 접근하거나, WORKBOX 앱을 실행합니다.

    1. SAML Request 생성 후 전달 (Redirect)

    WORKBOX에 로그인되어 있지 않은 경우 고객사의 인증 시스템으로 SAML Request를 생성하여 전달합니다.

    1. SAML Request 검증 후(고객사에 로그인되어 있지 않으면) 로그인 페이지 실행

    고객사 인증 시스템에서는 SAML Request가 올바른 요청인지 확인하고, 고객사 시스템에 로그인되어 있지 않으면 사용자에게 자체 제작한 로그인 페이지를 제공합니다

    1. 아이디/비밀번호 입력

    사용자는 고객사 로그인 정책에 따라 아이디/비밀번호를 입력합니다.

    1. 고객사 인증 처리 후 SAML Response 생성

    아이디/비밀번호로 고객사 시스템에 인증 처리를 하고, SAML Response를 생성합니다.

    만약, 고객사 시스템에 이미 로그인되어 있다면, 로그인 페이지 실행은 생략하고, 바로 SAML Response를 생성합니다.

    SAML Response는 WORKBOX에 미리 등록한 인증서로 전자서명을 해야 합니다.

    1. SAML Response 전달 (Redirect)

    SAML Response를 WORKBOX에서 전달한 SAML Request의 ACS URL로 전달합니다.

    1. SAML Response 확인 후 WORKBOX인증 토큰 발급

    고객사가 미리 등록한 인증서로 SAML Response를 검증하여 인증 및 사용자 정보를 확인하고, WORKBOX 용 인증 토큰을 발급합니다.

    Step 1: SAML웹 로그인 페이지

    사용자가 WORKBOX 웹 서비스에 로그인하기 위하여 아이디/비밀번호를 입력하는 페이지입니다. 로그인 페이지는 고객사의 요구에 맞게 직접 제작하면 됩니다.

    SAML Request를 검증하고, 고객사의 로그인을 처리한 후, SAML Response를 생성하여 ACS URL로 반환합니다.

    Request URL

    https://고객사도메인/고객사로그인페이지
    

    WORKBOX의 인프라 보안 정책에 따라 80 혹은 443 포트만 사용할 수 있습니다.
    제작한 Request URL은 네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 Web Login URL에 등록합니다.

    workbox-6-3-2_ko.png

    HTTP Method

    GET

    Request

    파라미터타입필수 여부설명
    SAMLRequestStringYSAML 2.0 Request 명세에 따른 문자열(Deflate + Base64로 인코딩한 값)
    RelayStateStringY인증 실패 시 재시도하는 URL

    Step 2: SAML Request 검증

    SAML Request는 Deflate + Base64로 인코딩되어 있습니다.

    SAML Request 명세

    <?xml version="1.0" encoding="UTF-8"?>
    <saml2p:AuthnRequest
      xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
      AssertionConsumerServiceURL="{ACS URL}"
      ID="{WORKBOX인증 시스템에서 발행하는 ID}"
      IssueInstant="{Request 생성 일시}"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      ProviderName="ncloudworkbox.com"
      Version="2.0">
      <saml2:Issuer
          xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">ncloudworkbox.com</saml2:Issuer>
      <saml2p:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
    </saml2p:AuthnRequest>
    

    SAML Request의 각 항목은 다음과 같습니다.

    항목설명
    AuthnRequest AssertionConsumerServiceURL줄여서 ACS URL이라 하며, SAML Response를 전달하는 URL
    AuthnRequest IDWORKBOX 인증 시스템에서 발행하는 ID로 SAML Response 생성 시 사용
    AuthnRequest IssueInstantSAML Request 생성 일시
    AuthnRequest ProtocolBinding'HTTP-POST'로 보내므로 SAML Response는 반드시 POST 방식으로 전송
    AuthnRequest ProviderName서비스 제공자 이름으로 'ncloudworkbox.com'으로 보내고 있음
    Issuer서비스 제공자 생성자 이름템에서 발행하는 ID로 SAML Response 생성 시 사용

    SAML Request Example

    <?xml version="1.0" encoding="UTF-8"?>
    <saml2p:AuthnRequest
      xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
      AssertionConsumerServiceURL="https://회사ID.ncloudworkbox.com/...."
      ID="bemkplgpdoemkhjmncgmbcdibglpngclfombpmed"
      IssueInstant="2018-02-14T03:33:49.999Z"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      ProviderName="ncloudworkbox.com"
      Version="2.0">
      <saml2:Issuer
          xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">ncloudworkbox.com</saml2:Issuer>
      <saml2p:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
    </saml2p:AuthnRequest>
    
    

    Step 3: SAML Response 전자 서명을 위한 인증서 등록

    SAML Response 전자 서명 시 사용하는 인증서를 등록합니다. WORKBOX는 ACS URL로 SAML Response를 받으면 이 인증서를 이용하여 유효성을 검증합니다.

    네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 Certificate File에 인증서를 등록합니다.

    SAML 2.0 기반 전자 서명용 인증서 등록

    workbox-6-3-3_ko.png

    로그아웃

    로그아웃은 WORKBOX 로그아웃과 고객사 로그아웃으로 나누어 설명합니다.

    WORKBOX 로그아웃

    고객사 시스템에서 로그아웃 후 WORKBOX에서 로그아웃 시 사용합니다.

    로그아웃 요청을 받으면 WORKBOX에서는 로그인되어 있는 WORKBOX의 계정을 로그아웃하고 전달 받은 redirect_uri로 redirect합니다.

    redirect_uri는 white_url로 관리되므로 네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 Logout Redirection Domain에 등록해야 합니다.

    Request URL

    https://회사ID.ncloudworkbox.com/authn/logoutProcess
    

    HTTP Method

    GET/POST

    Request

    파라미터타입필수 여부설명
    redirect_uriStringYWORKBOX에서 로그아웃한 후 redirect할 URL로 URL 인코딩되어 있음

    Response

    redirect_uri로 redirect합니다.

    고객사 로그아웃

    WORKBOX에서 로그아웃 후, 고객사 시스템에서도 로그아웃 처리를 할 때 사용합니다.

    Request URL

    https://고객사도메인/로그아웃
    

    WORKBOX의 인프라 보안 정책에 따라 443 포트만 사용할 수 있습니다.
    제작한 Request URL은 네이버 클라우드 플랫폼 콘솔 Developers의 SSO 설정에서 Logout URL에 등록합니다.

    HTTP Method

    GET

    Request

    파라미터타입필수 여부설명
    redirect_uriStringN고객사 시스템에서 로그아웃 처리 후 redirect할 redirect_uri. URL 인코딩되어 있음

    SSO 연동 완료 후

    SSO 연동이 완료되면 기존에 사용하던 기업정보시스템의 로그인 정보로 WORKBOX 로그인이 가능하여 로그인 정보 관리에 편리해집니다.


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.