私は、ASP .NETコアWeb APIアプリケーションでJWT認証トークンを使用しています。トークンはAPI自体によって生成され、第三者によって生成されることはありません。 SignalRをスタックに正常に追加しましたが、サーバー(ハブ)メソッドを実行しようとしているユーザーを認証する必要があります。 誰かがJavaScriptの "qs"プロパティでトークンを渡すことを提案しました。これは私のために働いていません私たちのトークンは本当に大きいです(彼らは多くの主張を含んでいます)。 ペイロードからトークンを読み取り、ユーザーを自動認証するカスタムミドルウェアを作成しようとしました。問題は、WebSocketを使用する場合、ミドルウェアが実行されないことです。 アイデアが役立ちます。Query Stringでトークンを渡さずに、SignalR(.NET Core)でJWT認証を行います。
答えて
クエリ文字列Authenticate against a ASP.NET Core 1.0 (vNext) SignalR application using JWTを使用することを提案する記事をご覧ください。トークンが長すぎることはわかっていますが、作者はミドルウェアを使用してリクエストを認証する方法を説明しています。ここで
は記事からの要約です:
- SignalRは、それが標準のASP.NET認証を使用している、に建てられた特別な認証メカニズムを持っていません。
- JWTは、一般的に、要求のAuthorizationヘッダーに送られ
- リクエストのヘッダーを送信するための手段が含まれていませんSignalRのJavaScriptクライアントライブラリ、それはしかし、あなたは私たちが合格した場合
- クエリ文字列を渡すことができませんクエリ文字列内のトークンは、トークンをその値として持つ承認ヘッダーを追加するミドルウェアを書くことができます。 これは
- は、私はあなたのカスタムミドルウェアはJWTミドルウェア前に登録しなければならない重要な点を強調している「ベアラー」形式
の点に注意してパイプラインでJWTミドルウェアの前に行わなければなりません。
ミドルウェアはありますが、qsが長すぎます –
qsが長いことを理解しています。トークンをペイロードに埋め込み、ミドルウェアを使用してそれを以前に登録することはできますか? –
申し訳ありませんが、SignalRの前にミドルウェアのペイロードにアクセスできない可能性があります。その場合、ペイロードを読み取るときに、アプリケーションコードにトークン用のカスタムパーサを実装できます。 Authorize属性を使用することはできませんが、ユーザーのクレームとそのすべてをチェックすることができます。 –
- 1. 外部JWT認証マイクロサービスで.NET Core Authorize属性?
- 2. DjangoでJWTトークンで認証する
- 3. .NETでPHPで作成されたJWTトークンの検証/検証
- 4. JWTトークンとOwin認証
- 5. NGINX + Node.JSを実行しているサーバでFirebase JWTトークンを認証します
- 6. JWTトークンで承認
- 7. JWT認証
- 8. websocketリクエスト中にJWTを検証する方法。 .net core
- 9. クロスドメイン認証のためのJWTトークン
- 10. Laravel JWTの再認証時に古いトークンをブラックリスト
- 11. jwtサーバサイド認証
- 12. ユーザー資格情報を試さずにJWTでトークンを取得するLaravel?
- 13. 実装JWT認証
- 14. Vue.js 2認証JWT
- 15. SignalRのOAuth/AADトークンを検証する
- 16. Nodejsは、.NETからJWTトークンを検証し、私は(System.IdentityModel.Tokens.Jwt付き)このC#コードで、.NETからトークンを作成
- 17. Box API認証jwt
- 18. クエリ文字列PHP Slim APIでのJWT JSON Webトークン認証
- 19. ブラウザでの直接URLヒットのJwtトークン認証
- 20. jwtサーバーサイド認証JsonWebTokenError
- 21. go-restful + JWT認証
- 22. JAVAでのJWT認証。
- 23. JWT - JWTベースの認証では
- 24. .netバックエンドでネイティブiOS SDKを使用して作成されたFacebook jwtトークンを確認できますか?
- 25. adal4j:証明書ベースの認証エラー:無効なJWTトークン
- 26. WSO2 APIゲートウェイでのJWTトークンの検証
- 27. Auth0 JWT PHPでのトークン検証
- 28. 角2 - JWT認証
- 29. .Net Core Web APIのAuth0認証
- 30. GoとJWT - 簡易認証
[SignalRとOpenId Connect]の複製があります(http://stackoverflow.com/questions/40806171/signalr-and-openid-connect) –
ここではクエリ文字列を使用できないため、これは重複していませんすべて、私のトークンが長すぎて414エラーが発生します。私は、SignalRメッセージからトークンを抽出してユーザーをログオンするカスタムミドルウェアのようなものを構築したいと考えています。 –
残念ながら、トークンを渡す方法は2つしかありません---クエリ文字列またはパラメータのどちらかです。うまくいけば、これは次のバージョンのSignalRで対処されることを願っています。 – mikebridge