0

認証サーバーを使用せずに、アクティブディレクトリにMicrosoftまたはGoogleのOAuthトークンを認証する方法はありますか?ここでOAuth 2.0トークンとAzure Active Directory(認証サーバーなし)を使用するWeb API認証

はシナリオです:

  • クライアントアプリは、いくつかの外部サービスからマイクロソフトのaccess_tokenはを取得します。

  • クライアントアプリは、クライアントから渡されたaccess_tokenはその後、APIはクライアントへの応答を提供します有効な場合は、リクエストヘッダ

  • と一緒にaccess_tokenは、いくつかのセキュリティで保護されたWeb APIとパスへの呼び出しを行います。

API側でそのaccess_tokenを検証する方法はありますか?

は、クライアントとAPIの両方が下図のように話すことになるに認証サーバが存在する必要があるのOAuth 2.0についての私の通常の理解がされています

enter image description here

しかし、トークンが提供されている場合いくつかの外部サービスによって、Web APIを検証するためにそれを使用できますか?そのような認証を実装する方法はありますか?あなたはAADがキーに署名し、このページを使用してキーロールオーバーの取り扱いについての詳細を学ぶことができ

+0

表示されているダイアグラムでは、外部認証サーバーはMicrosoftが所有し、実行しています。あなたはそれを絵の中から切り離したいのですか?認証サーバーを所有して実行する必要があると思われる場所が混乱していますか? –

+0

こんにちは@ShawnTabrizi、私の要件は、上記の画像が示しているものではありません。 Web APIを呼び出す要求でMicrosoft OAuth 2.0トークンを渡した場合、図に示すように認証サービスを使用せずにそのトークンの作成元に関係なくそのトークンを検証する方法はありますか? – Diwas

+2

トークンを検証するときは、トークンがMicrosoftによって署名されているか、MSが公開する公開鍵を調べてトークンの署名と比較するだけで済みます。あなたが署名鍵を照会することができれば、どこでもトークンを認証できるはずです...多分私は誤解しているかもしれません。 –

答えて

1

:トークンのSigning key rollover in Azure Active Directory

検証あなたが署名鍵を持っていたら、OWINのような既存のライブラリを使用して行うことができます。また、次のような手順で試してみることもできます(ドキュメントはまだ100%完成していないようですが)。Manually validating a JWT access token in a web API This libraryも利用できますが、OWINは一般的にそれを置き換えると思われます。

また、this blog postをチェックしてください。これは、トークンの検証にかなり深く関わっています。

関連する問題