SSO 연동

SSO(Single Sign On) 연동이란 WORKPLACE와 고객사 간 하나의 아이디로 접근할 수 있는 통합 로그인 연동을 의미합니다. WORKPLACE는 SP(Service Provider) 방식의 SSO를 지원합니다.

Developers의 SSO는 OAuth 2.0과 SAML(Security Assertion Markup Language) 2.0 두 가지 방식이 지원됩니다.

'WORKPLACE [g] > Developers > SSO 연동'을선택합니다.

② 설정선택의 디폴트 값은 OFF이며 클릭하여 ON으로 설정합니다.

③ OAuth 2.0과 SAML 2.0 중 한가지를 선택하고 해당 항목을 입력하고 적용 버튼을 누릅니다.

OAuth2.0 기반 SSO

WORKPLACES 서비스 사용

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

Authorization Code 발급 요청

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

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

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

아이디/비밀번호 입력

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

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

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

Authorization Code 반환 (redirect)

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

Authorization Code로 Access Token 요청

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

Access Token 반환

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

Access Token으로 사용자 정보 요청

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

사용자 정보 반환

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

WORKPLACE 인증 토큰 발급

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

1. Web Login URL

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

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

Request URL

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

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

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

HTTP Method

GET

Request

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

2. Authorization Code 발급

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

Request URL

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

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

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

HTTP Method

GET/POST

Request

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

3. Access Token 발급 API

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

Request URL

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

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

HTTP Method

POST

Request

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

Response

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

4.사용자 정보 반환 API

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

Request URL

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

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

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

HTTP Method

POST

Request

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

Response

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

SAML 기반 SSO

SAML(Security Assertion Markup Language) 2.0 기반의 SSO 동작 방식과 구현 방법을 설명합니다.

WORKPLACE 서비스 사용

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

SAML Request 생성 후 전달(redirect)

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

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

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

아이디/비밀번호 입력

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

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

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

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

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

SAML Response 전달(redirect)

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

SAML Response 확인 후 WORKPLACE 인증 토큰 발급

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

1. SAML웹 로그인 페이지

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

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

Request URL

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

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

HTTP Method

GET

Request

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

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="{WORKPLACE 인증 시스템에서 발행하는 ID}"
    IssueInstant="{Request 생성 일시}"
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
    ProviderName="ncpworkplace.com"
    Version="2.0">
    <saml2:Issuer
        xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">ncpworkplace.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 ID WORKPLACE 인증 시스템에서 발행하는 ID로, SAML Response 생성 시 사용합니다.
AuthnRequest IssueInstant SAML Request 생성 일시
AuthnRequest ProtocolBinding 'HTTP-POST'로 보내므로 SAML Response는 반드시 POST 방식으로 전송해야 합니다.
AuthnRequest ProviderName 서비스 제공자 이름으로, 'ncpworkplace.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.ncpworkplace.com/...."
    ID="bemkplgpdoemkhjmncgmbcdibglpngclfombpmed"
    IssueInstant="2018-02-14T03:33:49.999Z"
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
    ProviderName="ncpworkplace.com"
    Version="2.0">
    <saml2:Issuer
        xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">ncpworkplace.com</saml2:Issuer>
    <saml2p:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</saml2p:AuthnRequest>

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

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

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

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

로그아웃

WORKPLACE 로그아웃

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

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

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

Request URL

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

HTTP Method

GET/POST

Request

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

Response

redirect_uri로 redirect합니다.

고객사 로그아웃

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

Request URL

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

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

HTTP Method

GET

Request

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

SSO 연동 완료 후

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

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...