1. ホーム
  2. security

[解決済み] Node.jsアプリケーションのための認証アプローチとデザインパターン【終了しました

2023-05-27 05:15:39

質問

私は、内部エンタープライズソフトウェアプラットフォームのための複数ページの管理インターフェイスを構築しています。さまざまな API、データベース クエリ、およびシェル スクリプトを結びつける多くの接着剤ロジックを考えています。

私たちはnode.js、expressフレームワーク(jadeテンプレートを含む)、および認証のためのLDAPを使用する予定です。

nodeアプリケーションにおける認証のためのデザインパターンとベストプラクティスに関する情報を見つけるのに苦労しています。できれば、ユーザーがそのアプローチとそのケアとフィーディングに慣れているので、ロールベースモデルを使用したいと思います。

私はnode.jsに新しいので、私がすでにモジュールや人気のあるブログ記事を見たことがあると仮定しないでください。それは、豊富な情報がある可能性があり、私は単にどこを見ればよいのかわかりません。

あなたが提供できるどんな情報でも、前もってありがとうございます!

どのように解決するのですか?

あなたの最初の質問のように、あなたはNodeJsでいくつかの承認処理の実装をしたい。私はNodeJsの多くのAPIを調査し、使用しました。私はエンタープライズアプリケーションのために以下のAPIを好むでしょう。

  • 認証用。 パスポート または 衛星 のように、AngularJSでSPA(フロントエンド)を開発する場合。

  • 認証のために ACL . メソッドとREST APIのロールベースのセキュリティ。私が言及したいのは カスバン を使用する場合は、RABC、ABACも使用します。

第二に、NodeJsで何らかの実装や開発アプローチをしたい場合です。

  • 簡単で私のお気に入りのデザインパターンとNodeJsのためのフレームワークです。MVCフレームワーク , SailsJs . すぐに始められ、モジュール式のアーキテクチャであるため。長期的なコード管理が容易(エンタープライズアプリケーションで最も実用的な要件)。メンテナンスが容易です。SailsJsはまた、事前に設定された Socket.io を使って、プロジェクト内でリアルタイムモジュール、ウィジェット、チャットウィジェットを作成することができます。

  • エクスプレス Expressを使用し、独自のカスタムMVCプロジェクト構造を設計することができます。これも人気があり、堅牢です。同じような人気のあるシードプロジェクトは Yeoman

  • Redis キャッシュまたはセッション層として。クラウド上でアプリケーションを何台目かにスケールするのを妨げないため、キャッシュやセッションレイヤーは常に別個に使用するのがよいでしょう。

  • あなたは Redis Socket.io のようなリアルタイム機能を作成するために ジオロケーション ユーザープレゼンス(オンライン/オフライン)、チャット、プッシュ通知など、さまざまなリアルタイム機能を作成できます。

  • ORMです。 水線 . 簡単なクエリーアプローチのため。また、SailsJsの内蔵およびデフォルトのORMでもあります。また Sequelizejs を利用することもできます。DBプロバイダが提供するネイティブコネクタを使用することをお勧めします。

  • データベースです。お客様のご要望に合わせます。Waterline ORMは、PostgreSQL、MySQL、MongoDBなどをサポートしています。

  • 私のお気に入りのビューエンジンです。 EJS . プレゼンテーション層を開発するために新しいことを学ぶ必要はありません。また、SailsJsの内蔵およびデフォルトのビューエンジンでもあります。

NodeJsでエンタープライズアプリケーションを作成するための重要な情報をすべて網羅したと思います。上記のパッケージがベストだとは言いませんが、コラボレーションすることで、どんなエンタープライズシナリオにもベストフィットすることができます。他にも既知のパッケージがありますので、ご自身の必要性に応じてお使いください。