Skip to content

Learning: Model OAuth 2.0 delegated authorization #2

Description

@code811

Learning: Model OAuth 2.0 delegated authorization

Purpose

Develop the OAuth 2.0 mental model required before connecting the outreach reporting system to Gmail.

Learning Goals

  • Distinguish authentication from authorization.
  • Explain delegated authorization.
  • Identify the OAuth actors in this project.
  • Explain the authorization-code flow.
  • Distinguish authorization codes, access tokens, and refresh tokens.
  • Explain OAuth scopes and least privilege.
  • Understand why tokens must be treated as sensitive credentials.
  • Identify how authorization requirements can affect system architecture.

Tasks

  • Create learning/notes/oauth-2.md.
  • Explain authentication vs authorization in my own words.
  • Identify the resource owner, client, authorization server, and resource server for this project.
  • Draw the project's OAuth authorization-code flow.
  • Explain the purpose of an authorization code.
  • Explain the purpose of an access token.
  • Explain the purpose of a refresh token.
  • Explain what an OAuth scope restricts.
  • Explain the principle of least privilege.
  • Explain why scheduled reports could require a different authorization architecture than manually generated reports.
  • Complete the retrieval exercises from Lesson 2.

Constraints

  • Do not connect a real Gmail account yet.
  • Do not create production OAuth credentials yet.
  • Do not store or commit any tokens or secrets.
  • Focus on the mental model rather than Google-specific implementation syntax.

Completion Criteria

I can reconstruct the OAuth authorization flow without notes and correctly explain:

Resource Owner → Client → Authorization Server → Authorization Code → Tokens → Resource Server

I can also distinguish authentication from authorization and explain why the application should request only the minimum Gmail permissions necessary.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions