OAuthとOpenIDConnectとaspnetコアミドルウェアで迷子になりました。これについての助けに感謝します。Google OAuthを使用してaspnetコアのWebサービスを保護する
同じWebサービスセットを使用する複数のUI(Web、ネイティブアプリ)があります。認証されたユーザーだけがWebサービスにアクセスできるようにしたいと考えています。私の組織ではGoogleアカウントを使用しているため、組織のドメインに限定したGoogle認証を使用したいと考えています。
this sampleのWebサイトでは、認証が適切に要求されています。私が今必要とするのは、Webサイト(AngularJS 4)にバックエンドのWebサービスを、Googleと確認できる認証トークンで呼び出させることです。
バックエンドサービスはaspnetコアで書かれています。私はこれらのアプローチを使用して試しました:Google middlewareとGoogle OpenIDConnectしかし、これらはまだ1)認証されていないユーザーにログインを促すUIがあり、2)Cookieベースであると思われ、 Webサービス呼び出し。
この場合の「ユーザー」はソフトウェアクライアントであるため、ユーザーにログインを促す必要はありません。どちらかが認証されているか、まだ認証されていません。私はちょうど認証トークンを取得し、それを検証し、実行する必要があります。
This appears to be the same questionまだ回答がありません。
ご迷惑をおかけして申し訳ございません。また、ネイティブアプリを持つことに関する提案やヒントも同じです!
ありがとう、私は概念と流れ(私は考える)を理解しています。私が抱えている問題は、これまでに見つけたすべてのミドルウェアが、ログイン用のUIを使用することを前提としているということです。すでに*ログイン済みのクライアントを持つ方法の例やドキュメントが見つかりませんでした。 Webサービスコールを使用してサーバ側で正しいトークン*を検証する*。コントローラーで[Authorize]属性を使用し、正しいミドルウェアでGoogleに適切なトークンを検証させたいと思います。それを行うために私自身のミドルウェアを書かなければならないのですか、それともすでに存在していますか? – Celeste
私は理解していないと思います。 OAuthとOIDCには4人のプレーヤーがいます。リソースオーナー(ユーザ)とOAuthクライアント(アプリケーション)、OIDCプロバイダ(あなたの例ではGoogle)、リソースサーバ(保護されたリソースを保持している)あなたは、あなたが言っている「すでにログインしているクライアント」と言っていますか?一般に、OAuthクライアントは、返されたトークンの検証を実行して、改ざんされておらず、真のOIDCプロバイダから返されたものであることを保証することが期待されます。これには多くのライブラリが使用されています(SHOULD)。 – jwilleke
私に辛抱強く感謝しています。 OAuthクライアントは2つあります:Web UIとWebサービスです。これらは同じプロセスの一部として実行されていません。彼らは別のサーバーで実行されています。ウェブUIは、Googleのjavascriptライブラリを使用してOAuthプロセス全体を処理できます。それが完了すると、ユーザーはWeb UIを使用できるようになり、さまざまなWebサービスが呼び出されます。したがって、UIは、Webサービス呼び出しに含める必要のある種類のトークンを取得しており、Webサービスはそのトークンを検証する必要があります。 – Celeste