Node.js 애플리케이션에 대한 권한 부여 방식 및 디자인 패턴 [닫힌]


80

내부 엔터프라이즈 소프트웨어 플랫폼을위한 다중 페이지 관리 인터페이스를 구축하고 있습니다. 다양한 API, db 쿼리 및 셸 스크립트를 함께 묶는 많은 글루 로직을 생각해보십시오.

인증을 위해 node.js, 익스프레스 프레임 워크 (jade 템플릿 포함) 및 LDAP를 사용할 것입니다.

노드 응용 프로그램에서 인증을위한 디자인 패턴 및 모범 사례에 대한 정보를 찾기 위해 고군분투하고 있습니다. 가급적이면 사용자가 해당 접근 방식과 관리 및 공급에 익숙하기 때문에 역할 기반 모델을 사용하고 싶습니다.

저는 node.js를 처음 사용하므로 이미 모듈이나 인기있는 블로그 게시물을 본 적이 있다고 가정하지 마십시오. 풍부한 정보가있을 가능성이 높고 어디를보아야할지 모르겠습니다.

제공 할 수있는 정보에 미리 감사드립니다!

답변:


63

첫 번째 질문에 따라 NodeJ에서 일부 권한 부여 프로세스 구현을 원합니다. NodeJ의 API 수를 탐색하고 사용했습니다. 엔터프라이즈 애플리케이션을 위해 다음 API를 선호합니다.

  • 인증 : AngularJS에서 SPA (프론트 엔드)를 개발하는 경우 Passport 또는 Satellizer .

  • 권한 부여 : ACL . 메소드 및 REST API에 대한 역할 기반 보안. 내가 언급하고 싶은 casbin을 당신이 RABC,뿐만 아니라 ABAC을 사용합니다.

둘째, NodeJ에서 구현 및 개발 접근 방식을 원합니다.

  • 쉽고 내가 가장 좋아하는 디자인 패턴과 NodeJ를위한 프레임 워크 : MVC 프레임 워크, SailsJs . 바로 시작할 수있는 모듈 식 아키텍처입니다. 코드 관리는 장기적으로 쉽습니다 (엔터프라이즈 애플리케이션에 가장 실용적인 요구 사항). 간편한 유지 보수. SailsJs는 또한 Socket.io로 미리 구성되어 있어 프로젝트에서 실시간 모듈, 위젯, 채팅 위젯을 만들 수 있습니다.

  • Express Express 를 사용하여 사용자 지정 MVC 프로젝트 구조를 디자인 할 수 있습니다. 이것은 또한 인기 있고 강력합니다. Yeoman 에서 같은 인기 종자 프로젝트를 찾을 수 있습니다.

  • Redis 캐싱 또는 세션 계층으로. 클라우드에서 애플리케이션을 n 번째 인스턴스로 확장하는 것을 차단하지 않기 때문에 항상 별도의 캐싱 또는 세션 레이어를 사용하는 것이 좋습니다.

  • RedisSocket.io 를 사용하여 지리적 위치 , 사용자 존재 (온라인 / 오프라인), 채팅, 푸시 알림 등과 같은 실시간 기능을 만들 수 있습니다 .

  • ORM : 워터 라인 . 쉬운 쿼리 접근 방식. 또한 SailsJs의 내장 및 기본 ORM입니다. SailsJs 를 사용 하지 않는 경우 Sequelizejs 를 사용할 수도 있습니다 . DB 공급자가 제공하는 기본 커넥터를 사용하는 것이 좋습니다.

  • 데이터베이스 : 귀하의 요구 사항에 따라. Waterline ORM은 PostgreSQL, MySQL, MongoDB 등을 지원합니다.

  • 내가 좋아하는 뷰 엔진 : EJS . 프레젠테이션 레이어를 개발하기 위해 새로운 것을 배울 필요가 없습니다. 또한 SailsJs의 내장 및 기본 뷰 엔진이기도하므로 제가 SailsJs의 팬입니다.

NodeJ에서 엔터프라이즈 애플리케이션을 만드는 데 필요한 모든 중요한 정보를 다루었다고 생각합니다. 위의 패키지가 최고라고 말하지는 않지만 협력 적으로 모든 엔터프라이즈 시나리오에 가장 잘 맞을 수 있습니다. 자신의 요구 사항에 따라 사용할 수있는 다른 알려진 패키지가 있습니다.


2
waterline 및 sails.js +1
Travis Webb

@kosnkov 대부분은 괜찮습니다. 확인 HapiJS을 Express 및에 더 강력한 대안을 Sequelize 워터 라인을 대체합니다. 제 생각에는 SailsJS가 과잉이라고 생각합니다. RAILS 또는 Django 배경에서왔다면 Express / Hapi 및 Waterline / Sequelize만으로도 괜찮을만큼 충분한 개념을 이해해야합니다. Sails에 비해 훨씬 가벼운 무게입니다. 나는 Hapi / Sequelize를 선택합니다.
damusix

좋은 목록입니다. 무차별 대입 보호에 대한 작은 메모를 추가하는 것도 좋습니다. rate-limiter-flexible 과 같은 패키지 는 잘 맞아야합니다.
Animir

15

시작하기위한 몇 가지 정보는 다음과 같습니다.

더 쉽게 시작할 수 있기를 바랍니다.


감사합니다! 그 링크를 확인하겠습니다. 급행 노선 미들웨어 예는 매우 가까이 내가 가진 유스 케이스에 보인다
데이브 Snigier

53
답변에 Authorization이라는 단어가 포함되어 있지 않다는 사실이 이상합니다. :)
redben

1
완벽한 대답, 많은 도움이되었습니다. 심지어 :) 단어 허가없이
씨 Baudin




0

Node-Authorization 도 좋은 후보 라고 말해야 합니다. 이 아이디어는 SAP (ERP provider)에서 빌려온 것으로 객체 지향 인증입니다. 또한 Passport 및 Express와 같은 다른 프레임 워크와 함께 사용할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.