私はWebAPI用のJWTを作成して使用するためにASP.Net OpenID Connect Serverプロジェクト(ASOS)を使用しています。JWT Algの確認と変更方法
これで、トークンに対してさまざまな検証を実行しようとしています。
"alg"タイプを確認する方法を知りたいと思います。 "none"を渡すことができる問題を認識しています。つまり、誰かがトークンを偽造することができます(問題がある特定のライブラリであるかどうかわかりません。しかし、私がそのチェックを行っていれば、私はもっと安全だと思います)。
また、JWTの整合性を確認するにはどうすればよいですか?
現在のところ、私のトークン発行者とWebAPIは同じプロジェクトにありますので、自動的に私にチェックされていると思いますか?それとも全くチェックされていないのですか?
私が理解していることは、何も指定しなければ、ディスク上に何らかの署名証明書が追加されていることです。
署名証明書を提供すると自動的に「alg」プロパティが更新されますか?
トークン発行者が1台のサーバーにあり、WebAPIが完全に異なる場合はどうなりますか?トークンが私のトークン発行者から来たものであり、干渉されていないことを検証するにはどうすればよいでしょうか。
おそらく私は手動で証明書を追加してから、何とか公開鍵を共有する必要がありますか? その場合、誰かがJWTの整合性をチェックする公開鍵を追加すべき場所を指摘できますか? おそらくこの部分はOpenIDConnect Server(ASOS)よりもasp.net Coreについてですか?
ありがとうございました。
ありがとうございます。 次の点を明確にしてください: - "alg"タイプをチェックしたいと言ったとき、私はプログラム的に意味しました、どうすればいいですか? - あなたが言及したよく知られたエンドポイントを試したところ、あなたのスクリーンショットに似たコンテンツが表示されます。 - jwtBearerミドルウェアはどのように見えるかを知っていますか? WebAPIが別のWebサーバー上にある場合、どのように適切な場所にポイントするのですか? – Steviebob
最後のセクションで述べたように、 'alg'値は登録する' SigningCredentials'に直接依存します。そこの値を制御することができます。 JWTベアラミドルウェアは、JWTオプションに 'Authority'を割り当てるときに発行者アドレスを設定するので、承認サーバに連絡する方法を知っています。 – Pinpoint
申し訳ありませんが、 "alg"に関して私は十分に具体的ではないと思います。 私が言っていることは、「alg」には、(私が持っているこの特定の質問のために)作成時点でそれを設定する方法ではなく、入ってくるトークンを調べたいということです。 JWTベアラミドルウェア機関を明確にしていただき、ありがとうございます。 – Steviebob