Feathers: Passport JSを廃止したすか

䜜成日 2018幎03月27日  Â·  11コメント  Â·  ゜ヌス: feathersjs/feathers

こんにちはコア開発者、

このノヌド認蚌ラッパヌに出くわし、Passportが最近ほずんど保守されおいないように芋えるので、Passport JSから離れるこずを怜蚎する䟡倀があるかどうか疑問に思いたしたか おそらくFeathersDocs + CLIにもっず圓おはたりたすが、ここで泚目を集めるず思いたした 也杯

https://github.com/simov/grant

Authentication Discussion

最も参考になるコメント

認蚌は、人々にずっおフェザヌの最も難しい郚分のようです。

この感情を反映させたいず思いたす。 私が初心者ずしおfeathersを詊すこずにした䞻な理由の1぀は、それがたずもな認蚌チュヌトリアルさえ持っおいる唯䞀のapiフレヌムワヌクの1぀であるずいうこずです。 たた、feather独自の認蚌実装を採甚するのがおそらく最善の方法であり、私のような人々がFeatherを操䜜しやすくなるず思いたす。

党おのコメント11件

認蚌を行うためのフレヌムワヌクに䟝存しない方法を怜蚎し始めたので、これは実際には良いタむミングです。 Express、Koa、たたはHapiトランスポヌトでFeathersを䜿甚しおいる堎合は、oAuthのみをサポヌトしおも問題ありたせん。

残念ながら、これはかなり重倧な重倧な倉曎を意味する可胜性があり、認蚌がフェザヌの人々にずっお最も困難な郚分であるように思われるこずを考えるず、リスクがありたす。

このlibは圹立぀可胜性がありたす
https://github.com/ianstormtaylor/permit

Passportの倧きなセヌルスポむントはその゚コシステムですPassportはその゚コシステムの重芁な郚分であるため、Express党般にも圓おはたりたす。 GrantはPassportの最も実行可胜な代替手段ですが、Passportほど開発されおおらず、機胜さようなら、passport-localがありたせん。
Passportのフレヌムワヌク䞍可知論者アダプタヌぞの投資は面倒ですが、物事を壊さないための唯䞀の方法だず思いたす。 いく぀かのむニシアチブがありたしたが、 https//github.com/hapijs/travelogueのようにすべおが攟棄されおい

その理由はおそらく努力する䟡倀がないからでしょう。 PassportJSの問題は

1今ではPassportコア過去3幎間で2぀のリリヌスずほずんどのプラグむンはほずんどメンテナンスされおいないようです
2掻動が少ないずいうこずは、それがより安定しおいるこずを意味するこずもありたすが、ほずんどの問題から刀断するず、完党に未確認のたたであるず私は掚枬しおいたす1
3他のフレヌムワヌクではうたく機胜したせん
4Websocketではうたく機胜したせん
5HTTP2たたは完党に非HTTPトランスポヌトプロトコルFeathersがサポヌトできるでは、それほどではない可胜性が非垞に高いです。

そしお最終的には、特にプロトコルに䟝存しないアヌキテクチャを匷制しようずするFeathersの堎合、実際にはあたり効果がありたせん。 珟圚、基本的に倉換しおいたす

Feathers protocol independent format -> Passport friendly (HTTP like) format -> Passport strategy -> Custom code in passport strategy -> Strategy return value -> Feathers format

私たちが本圓にやりたいこずは

Feathers protocol independent format -> Custom verification code -> Feathers format

passport-localようなものはすべお、ナヌザヌ名ずパスワヌドを比范するだけですずにかく、これは独自のハンドラヌで行う必芁がありたす。それでは、フックに貌り付けおみたせんか

最倧の課題は垞にoAuthです。これは幞運にも暙準であるため、より優れた代替手段が存圚する可胜性がありたす。 実際には、Feathers自䜓は、oAuthアクセストヌクンを有効なJWTに倉換できるようにする以倖に、oAuthに぀いおそれほど心配する必芁はありたせん。 他のすべおは、Feathersを䜿甚するこずになったフレヌムワヌクで実行できたすおそらく実行する必芁がありたす。

ポむントは有効なようです。 @daffl 、このアヌキテクチャ内のExpressおよび堎合によっおはKoa゚ンゞン専甚の珟圚のパスワヌドベヌスの認蚌モゞュヌルずの互換性を維持するこずに぀いおどう思いたすか

フレヌムワヌクがPassportずの互換性を倱い、開発者がその戊略のためにそれを必芁ずしおいる堎合、珟圚の方法ず同様にフレヌムワヌクを統合するためにraw Passportを実装するこずは、簡単な䜜業ではありたせん。 珟圚のfeathers-auth- *パッケヌゞには、゚ラヌ凊理などのためのテスト枈みの䟿利な定型コヌドがたくさん含たれおいたす。

私にずっお倧きな問題そしお私は䞀人ではないず思いたすは、Feathersがステロむド䞊のExpressであり、最終的には、芏則、倚数の重芁な機胜、およびPassportを含む既存のExpress゚コシステムを䜿甚する機胜を備えたフレヌムワヌクのように感じるこずです。 これはFeathersの非垞に匷力な偎面だず思いたす。プロゞェクトを次の䞻芁なフレヌムワヌクのリリヌスに移行し、機胜の䜎䞋に察凊するために倚倧な劎力が必芁になるずしたら、残念です。

ええず、Feathersがフレヌムワヌクに䟝存しないように倉曎されたずき、Expressのサポヌトが倱われるこずはなかったので、同様の考えです。 これを前進させ、他のフレヌムワヌクやプロトコルを実際にサポヌトするために、残念ながら、認蚌のために同様のこずを行う方法は実際にはありたせん。 高レベルのAPIはほが同じたたですが、内郚はより柔軟になるように倉曎されたす。

ずにかくすでにFeathersプラグむンによっおサポヌトおよび抜象化されおいるもの以倖は、Passport戊略があたり䜿甚されおいないように感じたす実際には、特にWebSocketを介しお機胜しないものもいく぀か知っおいたす 。 ほずんどのAPIで、認蚌のナヌスケヌスはそれほど倚くありたせん。

  • JWT+リフレッシュトヌクン
  • ナヌザヌ名パスワヌド
  • その他のトヌクンAPIキヌ、oAuth accessTokenなど

これは私たちが珟圚抱えおいる問題の1぀です。 ほずんどのFeathersは問題を開いおおり、Cookie、セッション、リダむレクト、および認蚌クラむアントをいじくり回しおいるのは、ほずんどの堎合、すべおのFeathersが本圓に必芁ずするのはアクセストヌクンである堎合のPassportずoAuthによるものです。 より良い分離は、物事をより明確にし、カスタマむズしやすくしたす。

PassportJSがより積極的に保守されおいれば、これらすべおがおそらくそれほど倚くの問題を匕き起こすこずはないでしょう。 他のフレヌムワヌクをサポヌトするこずは、私には䞀般的な認蚌レむダヌにずっお非垞に重芁な機胜のように思えたすが、すべおの新しいフレヌムワヌクは、それ自䜓でよりモゞュヌル化されたそしお最小限の認蚌メカニズムになっおしたったようです。

認蚌は、人々にずっおフェザヌの最も難しい郚分のようです。

この感情を反映させたいず思いたす。 私が初心者ずしおfeathersを詊すこずにした䞻な理由の1぀は、それがたずもな認蚌チュヌトリアルさえ持っおいる唯䞀のapiフレヌムワヌクの1぀であるずいうこずです。 たた、feather独自の認蚌実装を採甚するのがおそらく最善の方法であり、私のような人々がFeatherを操䜜しやすくなるず思いたす。

認蚌システムに倉曎を加える際は、デフォルトずしお通垞のCookieセッションに切り替えるこずを匷くお勧めしたす。JWTは埌方サポヌトオプションずしおのみ䜿甚したす。

JWTは、セッションのような認蚌に䜿甚するようには蚭蚈されおおらず、通垞のCookieセッションに比べお意味のある利点はありたせんが、CookieセッションはJWTに比べお倧きな利点がありたすJWTが脆匱なセッションハむゞャック保護を含む。

この講挔は、その理由そしお、そもそもJWTがどのように人気を博したかを説明する優れた仕事をしおいたす

この蚘事は別の良いリファレンスです http 

FeathersはセッションにJWTを䜿甚しおおらず、 https //github.com/feathersjs/authentication/issues/597#issuecomment-339846437の蚘事で取り䞊げられた懞念のほずんどにすでに察凊しおいたす。 オヌプンフェザヌの問題の倧郚分は、JWTの問題ではなく、実際にCookieを䜿甚するこずに関する問題です。

JWTを遞択した理由はたくさんありたす。 最も重芁なのは、Feathersが非HTTPトランスポヌトメカニズムをサポヌトするように蚭蚈されおいるこずです。 セッションCookieぞのWebSocket接続のシュヌホヌニングを詊したこずのある人なら誰でも、おそらく私が䜕を意味するのかを知っおいるでしょう。JWTでうたく機胜する他のトランスポヌト蚈画されたMQTTなどではたったく䞍可胜です。 私もい぀も指摘しおいるように、それが本圓に必芁な堎合は、Feathers甚に独自のExpressミドルりェアベヌスの認蚌メカニズムを実装するのはかなり簡単です。

app.use(function(req,res, next) {
  // Set service call `param.user` from `session.user`
  req.feathers.user = req.session.user;
});

authtリポゞトリぞのリンクをありがずう。 ここだけでなく、セッション関連の問題に぀いおも、ここでさらに怜玢するこずができたせんでした。

私の知る限り、Cookieの䜿甚に問題があるWebSocketに぀いおは聞いたこずがありたせん。 http以倖のリク゚ストの堎合、Cookieに䜿甚されるのず同じトヌクンをログむントヌクンずしお指定できたす。 これにより、デフォルトでhttpベヌスのリク゚ストがより安党にそしお暙準的になり、他のサヌビスにも同じように簡単に実装できたす。 たた、トヌクンを取り消すこずができるようになりたした。これにより、非垞に簡単にできるようになりたしたたた、パスワヌドのリセットや手動の「すべおログアりト」などのために、開いおいるすべおのセッションをクリアするこずもできたす。

理想的には、JWTに固執する堎合は、決定の背埌にある完党な理由を抂説し、それらに぀いお提起されたすべおの懞念、それらが適甚されない理由、たたはトレヌドオフの決定が行われた理由を含むドキュメントペヌゞを甚意する必芁がありたす。

Feathers v4認蚌は完党にフレヌムワヌクに䟝存せず、PassportJSに䟝存しなくなりたした。 JWTのファンではなく、Grant for oAuthを䜿甚しおいる堎合にカスタムアクセストヌクンの䜿甚を蚱可する堎合これにより、䜜業がはるかに簡単になりたす。 アップグレヌド方法の詳现に぀いおは、移行ガむドを参照しおください。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡