Authentication support

The OpenAPI-based AEM APIs supports OAuth 2.0 authentication, including the following grant types:

  • OAuth Server-to-Server credential: Ideal for backend services needing API access without user interaction. It uses the client_credentials grant type, enabling secure access management at the server level. For more information, see OAuth Server-to-Server credential.

  • OAuth Web App credential: Suitable for web applications with frontend and backend components accessing AEM APIs on behalf of users. It uses the authorization_code grant type, where the backend server securely manages secrets and tokens. For more information, see OAuth Web App credential.

  • OAuth Single Page App credential: Designed for SPAs running in the browser, which needs to access APIs on behalf of a user without a backend server. It uses the authorization_code grant type and relies on client-side security mechanisms using PKCE (Proof Key for Code Exchange) to secure the authorization code flow. For more information, see OAuth Single Page App credential.

Difference between OAuth Server-to-Server and OAuth Web App/Single Page App credentials

OAuth server-to-serverOAuth user authentication (web-app)
Authentication PurposeDesigned for machine-to-machine interactions.Designed for user-driven interactions.
Token BehaviorIssues access tokens that represent the client application itself.Issues access tokens on behalf of an authenticated user.
Use CasesBackend services needing API access without user interaction.Web applications with frontend and backend components accessing APIs on behalf of users.
Security ConsiderationsSecurely store sensitive credentials (client_id, client_secret) in backend systems.User’s authenticate and are granted their own temporary access token. Securely store sensitive credentials (client_id, client_secret) in backend systems.
Grant Typeclient_credentialsauthorization_code

Before accessing Adobe APIs, it’s essential to understand these key constructs:

  • Adobe Developer Console: The developer hub for accessing Adobe APIs, SDKs, real-time events, serverless functions, and more. Note that it is different from the AEM Developer Console, which is used for debugging AEM applications.

  • Adobe Developer Console Project: Central place for managing API integrations, events, and runtime functions. Here, you configure APIs, set authentication, and generate required credentials.

  • Product Profiles: Product Profiles provide a permission preset that allows you to control user or application access to Adobe products such as AEM, Adobe Target, Adobe Analytics, and others. Every Adobe product has predefined product profiles associated with it.

  • Services: Services define the actual permissions and are associated with the Product Profile. To reduce or increase the permissions preset, you can deselect or select the services associated with the Product Profile. Thus, allowing you to control the level of access to the product and its APIs. In AEM as a Cloud Service, services represent user groups with predefined Access Control Lists (ACLs) for repository nodes, allowing granular permission management.