질문이 있으십니까?

기본 컨텐츠 및 사용자가 직접 참여하여 만들어진 다양한 내용을 검색합니다.

Node.JS 프레임워크에 대한 기술적 설명

Node.JS와 NPM

Node.js는 JavaScript 백엔드 프레임워크입니다. Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. Node.js는 이벤트 기반, Non 블로킹 I/O 모델을 사용해 가볍고 효율적입니다. Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 라이브러리 생태계입니다. Node.js는 JavaScript 기반으로 구성된 서버 사이트 서비스를 JavaScript로 구현할 수 있게 만든 런타임이고, npm은 node.js 기반의 모듈을 모아둔 집합 저장소입니다. npm은 Node Package Manager 또는 Node Pakage Modules이라고 합니다
당사는 용도가 여러개인 Node.JS 서버들이 운용되고 있는데, 그중에 Auth관련 Node.JS중에 "Azure Login Auth"라는 Node.JS 서버가 구동되고 있습니다.
아래는, Node.JS에서 사용하는 모듈(Module)들에 대한 목록입니다.
  1. fs 모듈
  2. http, https 모듈
  3. express 모듈
  4. cookie-parser 모듈
  5. express-session 모듈
  6. body-parser 모듈
  7. method-override 모듈
  8. passport 모듈
  9. util 모듈
  10. bunyan 모듈
  11. ./config 모듈
  12. connect-mongo 모듈
  13. mongoose 모듈
  14. passport-azure-ad 모듈

passport-azure-ad 모듈

NPM(Node Package Modules)에서 제공하는 모듈중에 마이크로소프트 애저(Azure) Active Directory 로그인에 관한 것입니다. 당사는 이 모듈을 통해 SSO(Single Sign On)을 구현하고 있습니다.
자세한 기술적 문서는 https://www.npmjs.com/package/passport-azure-ad 입니다. 이 페이지 보시면 자세하게 설명되어져 있습니다. 참고하시기 바랍니다.

Azure Active Directory를 사용하여 Web API 보안 유지

당사의 그룹웨어는 passport-azure-ad Node.js 모듈을 사용하여 Azure AD(Azure Acitive Directory)와의 통신을 처리함으로써 Passport로 Restify API 엔드포인트의 보안(Web API의 보안)을 유지하고 있습니다.
보안을 유지하는 절차는 아래와 같습니다.
  1. Azure Cloud Shell 열기
  2. 서버구현 1. 종속성 가져오기
  3. 서버구현 2. 인증 전략 인스턴스화
  4. 서버구현 3. 서버구성
  5. 서버구현 4. 경로정의

PM2로 모니터링

당사는 Node 프로세스 관리를 PM2를 이용해서 관리하고 있습니다.
  1. 앱에서 충돌이 발생할 경우 앱을 자동으로 다시 시작
  2. 런타임 성능 및 자원 소비에 대한 통찰력을 획득
  3. 성능 향상을 위해 설정을 동적으로 수정
  4. 클러스터링을 제어
  1. 결론적으로, Node.js서버에 npm모듈중에 passport-azure-ad 모듈을 사용하여 Azure AD와 Web API 보안이 유지되도록 그룹웨어가 SSO 운용되어지고 있습니다.^^

댓글을 작성하세요

문서 이력