OAuth2を使用して承認するWebサービスを作成しています。私はC#とWCFを使用していますが、これは本当に私の質問には関係ありません。前にOAuthを使ったことはありませんでしたが、私は研究を続けてきました。私は "彼らは実際にこのサービスを使用する権限を持っていることを確認する"上に物事の終わりです。私はOAuth2が今どのように機能しているかについてかなり良い考えがあると思いますが、その1つの側面はまだ私を混乱させます。OAuthの秘密についてはどういう秘密がありますか?
OAuth2はトークンベースです。トークンは単なるテキストであり、アプリケーション(私の場合はWebサービス)と認可サーバーが知っている "秘密"を含むいくつかの情報が含まれています。秘密は単なるテキストフレーズでも、セミランダムな文字列(GUIDのようなもの)でもかまいません。これは、ユーザーが認可サーバーに連絡し、その秘密を入手したことを「証明」します。私が混乱しているのは、ユーザーが過去に承認サーバーに連絡したことが証明されたように見えるだけです。実際、それはそれを証明するものでもありません。ユーザーが秘密を知っていることを証明するだけです。残りのトークン(役割、期間、その他のものなど)はすべて偽造することができます。ユーザーがアクセスしたいサービスに対して1つのトークンを取得すると、好きなだけ情報を改ざんした新しいトークンを作成することができます。実際に、悪意のある個人が自由に使用できるように、何千もの「秘密」が設定された多数のサーバーが存在する可能性があります。もちろん、これは頻繁に起こることはありませんが、非常に可能です。
私は正しいですか、または何かが欠落していますか?これはOAuth2の弱点ですか?
ありがとうございました!私が読んだリソースの中には、秘密鍵で作成された署名や、検証のためにASに連絡することについて話したものはありません。私が見た限り、トークンには秘密情報やその他の情報が含まれていました。 AS自体に連絡するか署名を確認することはトンを意味し、私はそれを前に見つけていないのが不思議です。私はより良い情報源を見つけなければならないと思う。再度、感謝します! – Frecklefoot