許可リクエストからjwtトークンの生の値を取得したいと思います。私はそれがすべての主張の根源だと知っていますが、元の生の価値を必要とするユースケースがあります。それを取得する方法はありますか?認証タイプに依存する場合は、OpenIdConnect(scheme = Oidc)を使用しています。asp.netコアのraw jwtトークン値を取得します。
答えて
生の意味は?トークン自体は生のものであり、トークン自体の基底64です。トークンをjwt.ioに置くと、いつでもデコードすることができます。秘密のものではありません。
生のトークンが必要なので、内部にある値が必要な場合は、これらの要素のコピーを追加のアイテムとして認証応答に追加することをお勧めします。
あなたはこれを試すことができます。
// add JWT authentication (change to OIDC if you prefer)
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
StoreToken = true
});
// then in your code...
var rawToken = await authenticationManager.GetTokenAsync("<name_of_signin_scheme>", "access_token");
欠点があればトークンは、認証Cookieで[プロパティに格納されるということです。
それ以外の場合は、生のトークンをReceivedTokenイベントで取得できます。
GetTokenAsync()メソッドは、Microsoft.AspNetCore.Authenticationの同じ名前空間にあります。
'authenticationManager'オブジェクトのタイプは何ですか?そして 'GetTokenAsync'は拡張メソッドですか?私は 'Microsoft.AspNetCore.Http.Authentication.AuthenticationManager'を見ていますが、私はそのメソッドを見ていません。 – gzak
これは実際には拡張メソッドです。単に 'Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions'でそれを見つけました。私はそれを試してみましょう、これが動作すれば私はあなたの答えを受け入れるでしょう。 – gzak
その拡張メソッドにアクセスするには、どのパッケージ/名前空間を追加する必要がありますか?私は 'Microsoft.AspNet.Security'を追加しようとしましたが、私はまだ' Microsoft.AspNetCore'名前空間を持っていません(そのサブ名前空間のどれも)。 – gzak
まさにこの問題についての短いブログの記事があります:http://www.jerriepelser.com/blog/aspnetcore-jwt-saving-bearer-token-as-claim/
あなたはAuthenticationProperties
にトークンを保存することができますいずれか(も@ycrumeyrolleの答えを参照)。トークンをOnTokenValidated
コールバックに要求として保存します。これはJwtBearerOptions
に設定されています。すべての詳細についてはリンク先の記事をご覧ください。
- 1. asp.netコアID - 2種類のjwtトークン
- 2. ASP.NETコアのJWTトークンにカスタム検証を追加しますか?
- 3. Asp.NETコアでJWTトークンを破棄できますか?
- 4. Asp.NetコアWeb APIでB2C JWTトークンを検証する
- 5. ASP.NETコアのページナビゲーションにJWTトークンを含める方法
- 6. Asp.netコア2.0 JWTはのAllowAnonymous
- 7. Angular2フレームワークがJWTトークンを取得する
- 8. DRF-jwtトークンを取得する
- 9. Asp.NetコアURLからRouteData値を取得
- 10. JWTとasp.net(コア)Webアプリケーション
- 11. Laravel Jwtトークンでユーザー情報を取得
- 12. Node.js JWT、トークンからuser_idを取得
- 13. JWTトークンを使用する場合のAsp.netコアのセッション変数とアプリケーション変数
- 14. NodeJs - JWTトークンからユーザー情報を取得しますか?
- 15. JWTトークンを解析して実際の値を取得する方法
- 16. Ionic 2アプリはストレージからJWTトークンを取得しません
- 17. Asp.netコアのSwaggerUIでのJWTサポート?
- 18. WebAPIコントローラから要求を取得する - JWTトークン
- 19. リリースモードでjwtトークン要求のための404を取得する
- 20. ASP.NETコアにAntiforgeryを使用してエラーを得た - antiforgeryトークンは、
- 21. 発行されたすべてのJWTトークンを取得します
- 22. ASP.NETコア1のキャッシュをすべて取得します
- 23. Azureグループの詳細をJWTトークンから取得する
- 24. Express.jsでJWTトークンの一意のユーザーIDを取得
- 25. Django Rest Framework JWTトークンからユーザー名を取得する方法
- 26. openAMからJWTトークンを取得する方法
- 27. JWTトークンからSpringブートリソースサーバのプリンシパルを取得
- 28. ADFSと.NetコアのOAuth2 JWTトークンの設定
- 29. ASP.NETでSystem.IdentityModel.Tokens.Jwtを使用してJWTトークンをエンコードする
- 30. JWTトークンを使用してasp.netコアWeb APIを確保するときにAzure ADからユーザーを取得する方法
実際には、ユーザーの着信要求からトークンを抽出し、それをサーバーからダウンストリームサービスへの送信要求で転送する必要があります。 – gzak