NODEJS에서 SAML 연동
안녕하세요.
저희가 지금 NODEJS EXPRESS 에서 NAVER WORKS를 IDP로 사용하기 위해 SAML 방식으로 연동을 하려고하는데요.
Document에 명시된 값이 명확하지 않아서 질문드립니다.
- 아래 DOCUMENT에 명시된 예시-
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:AuthnRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="{NAVER WORKS에 등록한 ACS URL}"
ID="{ID}"
IssueInstant="{SAML Request 생성 일시}"
ProtocolBinding="{Protocol Binding}"
ProviderName="{Service Provider Name}"
Version="2.0">
<saml2:Issuer
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">{NAVER WORKS에 등록한 SP Issuer}</saml2:Issuer>
<saml2p:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</saml2p:AuthnRequest>
- 아래 세팅 창
1. NAVER WORKS에 등록한 ACS URL이라는건 Service Provider 정보에 ACS URL을 말하는 것인가요?
- 그렇다면 만약 Localhost에서 테스트 해보고 싶을경우 http://localhost로 할 수 있는건가요?
2. SAML 명세에 나와있는 ID의 경우, 고객사에서 발행하는 ID라고 되어있는데 저희 측에서 임의 발행해서 사용가능한건가요?
3. Protocol binding의 경우 post로 받으려면 urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST 로 설정하고 그외에는 GET 방식이라고 되어있는데
그 외라는 건 항목을 아예 안 넣어도 그외로 작동하는건가요? 아니면 임의의 문자열이라도 넣어야 하는건가요?
4. Provider name은 고객사명이라고 적혀있는데 별도의 등록 없이 임의로 만들어서 사용가능한건가요?
5. 타사의 경우 IDP로 사용할수 있게끔 전용 passport 모듈(passport-kakao, passport-naver등)을 지원합니다. 네이버 웍스 역시 전용 모듈을 지원하는가요?
- 지원한다면 해당 링크를 주시면 감사하겠습니다.
댓글1
업데이트 된 답글입니다.
NAVER WORKS 공식계정
- 그렇다면 만약 Localhost에서 테스트 해보고 싶을경우 http://localhost로 할 수 있는건가요?
=> Service Provider 정보에 ACS URL 이 맞습니다. NAVER WORKS에서 localhost의 IP를 특정할수 없으므로 사용할 수 없습니다.
2. SAML 명세에 나와있는 ID의 경우, 고객사에서 발행하는 ID라고 되어있는데 저희 측에서 임의 발행해서 사용가능한건가요?
=> 그렇습니다
3. Protocol binding의 경우 post로 받으려면 urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST 로 설정하고 그외에는 GET 방식이라고 되어있는데
그 외라는 건 항목을 아예 안 넣어도 그외로 작동하는건가요? 아니면 임의의 문자열이라도 넣어야 하는건가요?
=> GET으로 받으려면 항목을 생략하면 됩니다.
4. Provider name은 고객사명이라고 적혀있는데 별도의 등록 없이 임의로 만들어서 사용가능한건가요?
=> 임의의 고객사명을 입력합니다(선택)
5. 타사의 경우 IDP로 사용할수 있게끔 전용 passport 모듈(passport-kakao, passport-naver등)을 지원합니다. 네이버 웍스 역시 전용 모듈을 지원하는가요?
- 지원한다면 해당 링크를 주시면 감사하겠습니다.
=>안타깝게도 nodejs용 passport 모듈은 제공하고 있지 않습니다
감사합니다.
2021.11.15
궁금한 점을 해결하지 못하셨나요?
지금 바로 NAVER WORKS 사용자들에게 물어보세요!