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

그림 3 NAVER WORKS와 고객사 간 SAML 2.0 기반 SSO
NAVER WORKS 서비스 사용
사용자는 NAVER WORKS 서비스를 사용하기 위해 웹 브라우저에서 URL로 접근하거나, NAVER WORKS 앱 또는 드라이브 탐색기를 실행한다.
SAML Request 생성 후 전달(redirect)
NAVER WORKS에 로그인되어 있지 않은 경우, 고객사의 인증 시스템으로 SAML Request를 생성하여 전달한다.
SAML Request 검증 후 (고객사에 로그인되어 있지 않으면) 로그인 페이지 실행
고객사 인증 시스템에서는 SAML Request가 올바른 요청인지 확인하고, 고객사 시스템에 로그인되어 있지 않으면 사용자에게 자체 제작한 로그인 페이지를 제공한다.
아이디/비밀번호 입력
사용자는 고객사 로그인 정책에 따라 아이디/비밀번호를 입력한다.
고객사 인증 처리 후 SAML Response 생성
아이디/비밀번호로 고객사 시스템에 인증 처리를 하고, SAML Response를 생성한다.
만약, 고객사 시스템에 이미 로그인되어 있다면, 로그인 페이지 실행은 생략하고, 바로 SAML Response를 생성한다.
SAML Response는 NAVER WORKS에 미리 등록한 인증서로 전자서명을 해야 한다.
SAML Response 전달(redirect)
SAML Response를 NAVER WORKS에서 전달한 SAML Request의 ACS URL로 전달한다.
SAML Response 확인 후 NAVER WORKS 인증 토큰 발급
고객사가 미리 등록한 인증서로 SAML Response를 검증하여 인증 및 사용자 정보를 확인하고, NAVER WORKS용 인증 토큰을 발급한다.
NAVER WORKS의 IMAP/CalDAV 인증 방법은 부분적인 SAML 2.0 기반으로 동작한다.
그림 4 SAML 2.0 기반 API 인증
IMAP에서 아이디/비밀번호 설정 후 실행
사용자는 Outlook, 네이티브 앱 등에서 NAVER WORKS 사용을 위한 아이디/비밀번호를 설정한 후 실행한다.
SAML Request 생성 후 전달(API)
NAVER WORKS에서는 사용자가 설정한 아이디/비밀번호를 SAML Request와 함께 고객사 인증 시스템으로 전달한다. 네트워크 구간은 반드시 SSL이 적용되어 있어야 한다.
SAML Request 검증 및 아이디/비밀번호 인증 처리 후 SAML Response 생성
고객사 인증 시스템에서는 SAML Request가 올바른 요청인지 확인하고, 전달받은 아이디/비밀번호로 고객사 인증을 처리한다. 인증에 성공하면 SAML Response를 생성하고, 실패하면 오류 코드를 반환한다. 이때 SAML Response는 NAVER WORKS에 미리 등록한 인증서로 전자서명을 해야 한다.
SAML Response 반환(API)
ACS URL이 아닌 2번 API 요청에 대한 응답으로 SAML Response를 반환한다. 인증 실패 시엔 오류 코드를 반환한다.
SAML Response 확인 후 NAVER WORKS 인증 토큰 발급
고객사가 미리 등록한 인증서로 SAML Response를 검증하여 인증 및 사용자 정보를 확인하고, NAVER WORKS용 인증 토큰을 발급한다.