2016-09-27 11 views
0

私はOAuth 2.0とOpenID Connectの両方を理解しようとしています。私は重要な質問をしています:OpenID Connectエンドポイントはどうやって通信していますか?Openid接続エンドポイント間の通信

例:認証コードフローの場合、Authorization EndPointがクライアントにaccess_tokenを与えた場合、このトークンはUserInfo Endpointに送信され、ユーザー情報が取得されます。 ここで問題になるのは、UserInfo Endpointがaccess_tokenがClientを発行したことを確認する方法です。それらの2つのエンドポイントの間に交絡がありますか?

ありがとうございます。

答えて

1

UserInfo Endpointは、Authorization EndpointまたはToken Endpointから発行されたアクセストークンを解釈できる必要があります。

単純な実装では、すべてのエンドポイントが1つのサーバーに実装されています。この場合、UserInfo Endpointは、Authorization EndpointまたはToken Endpointによって発行されたアクセストークンを格納するのと同じデータベーステーブルを参照することによってのみ、アクセストークンに関する情報を簡単に取得できます。

一方、認可エンドポイントとトークンエンドポイントが認可サーバーに実装されていて、UserInfoエンドポイントがリソースサーバーに実装されている場合、リソースサーバーはアクセストークンに関する情報を取得するために認可サーバーに問い合わせる必要があります。 RFC 7662(OAuth 2.0トークンイントロスペクション)は、認証サーバーからのアクセストークンに関する情報を取得する方法を定義する標準です。

RFC 7662はトークンのイントロスペクションの標準ですが、認可/リソースサーバーの実装者は必ずしも仕様をサポートする強い動機を持っているとは限りません。理由について興味がある場合は、「4. Introspect Access Token」を参照してください。

ところで、認可コードフローでは、認可エンドポイントからではなくトークンエンドポイントからアクセストークンが発行されます。フローのAuthorization Endpointから発行されるものは、認証コード(アクセストークンではありません)です。

+0

この説明に感謝します。 – isedrof