2016-09-14 1 views
1

私はOAuth 2を理解しようとしています2:OAuth 2では、 "access_token"と "authentication code"のより良い名前を使用できませんでしたか?

「access_token」と「認証コード」は、エンドユーザーの意思を表す点ではかなり似ています。唯一の違いは、access_tokenは単独で使用でき、「認証コード」はapp_secret(rfc6749のclient_secret)とともに使用する必要があるということです。

彼らはのような類似した名前を、持っていたのであれば、私の心の中には、多くのことを明確にします:それは単独で使用することができるよう、「access_tokenは」の

  • 「full_token」、「strong_token」または「super_tokenを」。それは本当に強力です。安全ではない回線で転送する必要はありません。 (ただし、ブラウザから直接リクエストするために使用することができます)
  • 「認証コード」の「half_token」、「weak_token」、「normal_token」は、app_secretと組み合わせる必要があるためです。これは非セキュアな行で転送することができますが、app_secretは決してブラウザに送られないので、そこから決して使用することはできません。

、結果として、対応する許可タイプ名が呼び出されます:「暗黙の許可タイプ」

  • ため

    • 「full_token許可タイプ」という用語はfull_tokenが直接生成されることを意味し(ブラウザがリダイレクト要求を行ったときには含まれていないリダイレクトuriの部分(uriの#部分)に返されるため(リクエストがあっても公開されません)非セキュアURIへの)))。 (アプリがTLSを使用する場合)
    • 「認可コードグラントタイプ」の「half_tokenグラントタイプ」
    • をブラウザは、データを抽出するためにそれを使用することができ、またはそれは、アプリケーションサーバに転送することができますtermは、half_tokenが生成されたことを意味します。アプリはアプリケーションサーバーに確実に接続します( はセキュリティで保護されていません。が必要です)。アプリケーションサーバーでは、認証サーバーからデータを抽出するためにapp_secretとともに送信されます。 (rfc6749は、それが最初full_tokenに置き換える必要がありますことを示唆しているが、これは私の心には必要ありません。)

それとも私が見逃している他の違いがあるのですか?

答えて

2

承認コードは、要約よりもアクセストークンに似ていません。特に、これは正確ではありません。「唯一の違いは、access_tokenは単独で使用でき、「認証コード」はapp_secretで使用する必要があるということです。 OAuth 2.0の

認証を使用して認可およびを得るには、それらに利用可能な異なる種類の情報と異なる俳優を含む、非常に異なっています。許可コードは、許可サーバーを使用して、保護されたリソースへのアクセス権を取得するハンドシェイクプロセスの一部です。結果として得られたアクセストークンは、ユーザーに代わってリソースにアクセスするためにリソースサーバー(クライアント秘密またはその他の資格情報を知る必要はありません)に送信されます。

したがって、実際にはかなり異なっています。あなたはAccess_tokenAuthorization_code誤解ので

+0

ああを参照して、その認証サーバーとリソースサーバーが同じだった場合、私がやったとして、それを見るために右のかもしれません! –

0

super_token

full_token、half_token、strong_tokenのあなたの理論は、存在しています。

Authorization_codeは、交換された短い存続トークンで、Access_tokenとなります。許可サーバーはAuthorization_codeを生成し、クライアントに送り返してリソース所有者の信任状を秘密に保ちます。クライアントは後でこのアクセストークンのAuthorization_codeを交換します。 access_tokenを取得すると、認証コードが失効し、同じAuthorization_codeに対して別のaccess_tokenを発行することはできません。

APIにアクセスするには、リクエストごとにヘッダーにaccess_tokenを渡します。 Authorization_codeでAPIにアクセスすることはできません。そのため、Authorization_codeはhalf_tokenではありません。

同様にfull_token, strong_token, super_tokenは、1つのaccess_tokenしか持たないため意味がありません。

Life cycle of Authorization code

関連する問題