web-dev-qa-db-ja.com

パスポートとoauthの違いは何ですか?

Express.jsで認証サービスを構築しようとしていますが、認証モジュールのアイデアをまだ理解していません。

パスポートとoauthミドルウェアの違いは何ですか?それらは相互に依存していますか?oauthサーバーなしでBearerStrategyを検証するためのトークンを生成することは無意味です) ?私は正しい方向に進んでいますか?

OAuth2とその認証フローについて読みましたが、この結合されていないコードではまだ迷っています。

バックエンドAPIと通信するAngularJSフロントエンドの更新トークンを使用してResourseOwner Password認証を構築しようとしていますが、password.js戦略(Basic、Bearer、ClientPassword)と反対側のoauth2orizeの多くの組み合わせに直面しています。 。

そこで、NodeJSで認証がどのように機能するかについての非常に簡単な説明を知りたいと思います。 Expressが認証の新しい方法を発明していないことは本当に知っていますが、モジュールはあまり目立たないので、一緒に機能させるためにExpressがどのように機能するかの基本を理解する必要があります。

18
João Pedro

パスポートは認証ミドルウェアです。 OAuthは認証ミドルウェアです。

違いを理解するには:

認証とは、誰かが本当に本人であるかどうかを確認するプロセスです。

承認とは、誰が何をすることができるかを決定するルールを指します。例えば。 Bobはデータベースの作成と削除を許可されている可能性がありますが、Bobbetteは読み取りのみを許可されています。

言い換えると。認証はユーザー名+パスワードです。承認はあなたに許可されていることです。

Passportを使用すると、APIへのアクセスを許可する前にユーザーを認証できます。認証後にユーザーがアクションを実行できるかどうかを(直接、可能ですが)チェックすることはできません。

認証と承認の詳細については、これを確認してください Wikipedia

OAuth Passportが行わないことは、ユーザーがサービスに個人情報へのアクセスを許可できることです。また、ユーザーが特定の特権を許可または禁止できることもできます(OAuthのスコープ)。

OAuthフレーバーがたくさんあることに注意してください。最も一般的なのは、FacebookまたはGoogleで認証するときに表示される認証付与タイプのバージョンです。ただし、リソース所有者パスワード戦略を含む他の多くのフレーバーがあります。言及されました。

45
Lars de Bruijn