Authenticating...
Skip to main content

0012: Targeted API Authentication and Authorization

STATUS

Accepted

CONTEXT

AdAction wants to enable publishers to have secure access to the Targeted API.

Considered Options

  • Amazon Cognito and Laravel Sanctum - DECISION
  • Single Internal Admin Key and Laravel Sanctum

Option 1: Amazon Cognito and Laravel Sanctum

Description

Integrating Amazon Cognito involves installing and implementing an SDK in the Publisher Dashboard, Targeted API service, and Offer API service. It also requires setting up Laravel Sanctum in the Targeted API service.

Data Flow

Because this option will be iteratively implemented, the data flow will be broken down into phases.

PHASE 1

The first phase will assume Laravel Sanctum only, mimicking the current Offer API authentication integration.

Registering a Targeted API Property
Requesting Targeted Offers
PHASE 2

Because this phase involves refactoring the current flow for registering and authenticating a publisher, sequence diagrams for these data flows is included below. And, because the Offer API is a dependency of the Targeted API, Amazon Cognito can be integrated into the authorization flow for creating and recreating Offer API tokens before integrating Cognito into the Targeted API authorization flow (this will also be part of the process for moving the Offer API out of beta). Diagrams for this refactored sequence are also included.

Registering a Publisher
Authenticating a Publisher
Registering an Offer API Property
Regenerating a Token for an Offer API Property
PHASE 3

Now that the Offer API has integrated Amazon Cognito, the Targeted API can follow suit. Sequence diagrams for these refactored data flows are included below.

Registering a Targeted API Property
Regenerating a Token for a Targeted API Property
Requesting Targeted Offers

Pros

  • Sets up a more streamlined authentication and authorization processes for AdGem services.
  • Adopts OAuth standards.
  • Makes managing user identity and access easier.

Cons

  • The scope of implementation would include the publisher dashboard.

Option 2: Single Internal Admin Key and Laravel Sanctum

Description

Integrating this option in the Targeted API involves duplicating the same authentication logic implemented in the Offer API. It also requires setting up Laravel Sanctum in the Targeted API service.

Pros

  • Faster implementation because the scope does not include the publisher dashboard.

Cons

  • AdGem services remain segregated in their authentication/authorization processes.
  • Does not adopt OAuth standards.

DECISION

Choosing option 1 (Amazon Cognito and Laravel Sanctum) would result in more secure authentication/authorization practices for the Targeted API, as well as the publisher dashboard and Offer API (and beyond to other AdGem services in the future).

It also makes access management easier.

CONSEQUENCES

To execute option 1, the publisher dashboard authentication will need to be refactored.

Risks

The pub dashboard will need to be updated to use Amazon Cognito for its authentication, as well as updated to communicate with the Targeted and Offer APIs to retrieve security tokens.

NOTES

References

Original Author

Micah Wierenga

Approval date

Approved by

Appendix