到着予定時刻 2:
私は、公開されているドキュメントと私の SO の暗号化に関する広範な知識と、OAuth2 実装の最も重要な部分を処理する MSDN の便利なコード例 (署名付き JWT の整合性の検証) を使用して、これらすべてを理解することができました。
重要なコンポーネントは、OAuth2 プロバイダーからの JWT 応答の整合性を検証することです。多くの開発者は、暗号化機能の理解が不十分なため、これを適切に実装できません。そのため、さまざまなプロバイダー (Google を含む) の公開ドキュメントでは、既存の認証を処理するライブラリ。
問題は、DotNetOpenAuth が何年も更新されていないことです。認証に古いライブラリを使用することはお勧めしません。どのセキュリティ ホールにパッチが適用されていないか分からないからです。
C# の検証コンポーネントは RSAPKCS1SignatureDeformatter.VerifySignature を利用します。この方法に関する MSDN の記事のサンプル コードは、署名付き JWT が有効であり、悪意のある第三者によって傍受されていないことを確認するために使用する必要があるものとほぼ同じです。パーティ。
到着予定時刻:
これを Stack Overflow に投稿しているのは、Google が Google の OAuth2 API に関する質問、ヘルプ、サポートのために google-oauth2 タグを使用して、具体的にユーザーを Stack Overflow に誘導しているためです。この発表に見られるように、すべての Google OAuth2 サポートの Stack Overflow への移行は 2013 年 3 月に実装されました。
https://groups.google.com/forum/#!forum/oauth2-dev
シナリオ:
サードパーティのユーザー サインオンを使用する新しい ASP.NET C# アプリケーション。最初に Google OAuth2 を実装し、次に他のサービス (Facebook、一般的な OpenID など) に移行します。C# 用の既存のライブラリがあることは知っていますが、サードパーティ製のライブラリはできれば使用したくありません。
長い間 Google の OAuth2 ドキュメントを読み、JWT 仕様を理解した後、私はかなりのことを理解しました。ただし、ユーザーがアプリケーションでアカウントの使用を許可すると、Google から返される Base64 でエンコードされた JWT の 3 番目のセグメントを理解していることを確認しようとしています。
最初の 2 つのセグメントは、Base64 でエンコードされた平文です。それだけです。これは、JavaScriptSerializer で簡単にデコードおよび解析できました。私が行き詰まっているのは 3 番目のセグメントです。これは、Google JWT が有効であり、悪意のあるコードに触れていないことを確認するために使用する必要があることを理解しています。
C# でアプリケーションのコードを記述する前に、OpenSSL を使用して Base64 でデコードされたバイナリ セグメントをデコードしようとしましたが、Google の公開証明書でコンテンツをデコードまたは検証できません。
C# と Google 認証に関する適切なドキュメントはありますか? 私が見つけることができるのは、DotNetOpenAuth または他のライブラリを使用した例だけです。