💪OAuth 2.0 認可コードフロー+PKCE をシーケンス図で理解する2020/12/28に公開2024/11/182件OAuth 2PKCEtechDiscussionritou2020/12/28に更新 また、リソースオーナーの識別子については RFC 6749 に記載があるわけではありませんが、「管理画面などから自分が許可した OAuth クライアントの一覧を表示し、必要であれば手動で revoke する」ことができるようにしてあるのが一般的ですので、「誰が発行したアクセストークンか」という情報もひもづけて保存すると考えます。 Revokeもそうですが、まずはリソースサーバーがリクエストを受けて "誰のリソースに対するリクエストか" を知る必要があるので、リソースオーナーの情報を含むのが一般的です。 一連の流れを理解してさらに理解を深めたいのであれば、 リソースサーバーへのアクセスに必要な情報 : アクセストークンの要件 アクセストークンに必要な情報 : 認可コード、リフレッシュトークンの要件 リフレッシュトークンに必要な情報 : 認可コードの要件 認可コードに必要な情報 : 認可エンドポイントの要件 と言うように、リソースサーバーへのリクエストの部分から必要な情報を逆算して整理してみても良いかもしれません。 あと、クライアント側でセッションに紐付けて保持しておく値を図にしておくとstate, PKCEの説明がわかりやすくなりそうですね。 Shingo Yamazaki2020/12/29コメントありがとうございます。 内容を拝見し、私の理解がアクセストークンを取得するところまでに終始しており、 その後リソースサーバーでアクセストークンがどう扱われるかについてまだ理解が不十分だと感じました。 アドバイスいただいたように、リソースサーバーへのアクセスに必要な情報は?というところを引き続き調べてみて、そこからまた記載した内容を見直してみようと思います。 ありがとうございます。 返信を追加
ritou2020/12/28に更新 また、リソースオーナーの識別子については RFC 6749 に記載があるわけではありませんが、「管理画面などから自分が許可した OAuth クライアントの一覧を表示し、必要であれば手動で revoke する」ことができるようにしてあるのが一般的ですので、「誰が発行したアクセストークンか」という情報もひもづけて保存すると考えます。 Revokeもそうですが、まずはリソースサーバーがリクエストを受けて "誰のリソースに対するリクエストか" を知る必要があるので、リソースオーナーの情報を含むのが一般的です。 一連の流れを理解してさらに理解を深めたいのであれば、 リソースサーバーへのアクセスに必要な情報 : アクセストークンの要件 アクセストークンに必要な情報 : 認可コード、リフレッシュトークンの要件 リフレッシュトークンに必要な情報 : 認可コードの要件 認可コードに必要な情報 : 認可エンドポイントの要件 と言うように、リソースサーバーへのリクエストの部分から必要な情報を逆算して整理してみても良いかもしれません。 あと、クライアント側でセッションに紐付けて保持しておく値を図にしておくとstate, PKCEの説明がわかりやすくなりそうですね。 Shingo Yamazaki2020/12/29コメントありがとうございます。 内容を拝見し、私の理解がアクセストークンを取得するところまでに終始しており、 その後リソースサーバーでアクセストークンがどう扱われるかについてまだ理解が不十分だと感じました。 アドバイスいただいたように、リソースサーバーへのアクセスに必要な情報は?というところを引き続き調べてみて、そこからまた記載した内容を見直してみようと思います。 ありがとうございます。 返信を追加
Shingo Yamazaki2020/12/29コメントありがとうございます。 内容を拝見し、私の理解がアクセストークンを取得するところまでに終始しており、 その後リソースサーバーでアクセストークンがどう扱われるかについてまだ理解が不十分だと感じました。 アドバイスいただいたように、リソースサーバーへのアクセスに必要な情報は?というところを引き続き調べてみて、そこからまた記載した内容を見直してみようと思います。 ありがとうございます。
Discussion
Revokeもそうですが、まずはリソースサーバーがリクエストを受けて "誰のリソースに対するリクエストか" を知る必要があるので、リソースオーナーの情報を含むのが一般的です。
一連の流れを理解してさらに理解を深めたいのであれば、
と言うように、リソースサーバーへのリクエストの部分から必要な情報を逆算して整理してみても良いかもしれません。
あと、クライアント側でセッションに紐付けて保持しておく値を図にしておくとstate, PKCEの説明がわかりやすくなりそうですね。
コメントありがとうございます。
内容を拝見し、私の理解がアクセストークンを取得するところまでに終始しており、
その後リソースサーバーでアクセストークンがどう扱われるかについてまだ理解が不十分だと感じました。
アドバイスいただいたように、リソースサーバーへのアクセスに必要な情報は?というところを引き続き調べてみて、そこからまた記載した内容を見直してみようと思います。
ありがとうございます。