51黑料不打烊

向 AEM as a Cloud Service 进行基于令牌的身份验证

AEM 提供了多种 HTTP 端点,支持以 Headless 方式进行交互,其中包括 GraphQL、AEM 内容服务以及资产 HTTP API 等。通常,这些 Headless 消费者需要对 AEM 进行身份认证,以访问受保护的内容或执行相应操作。为此,AEM 支持来自外部应用程序、服务或系统的 HTTP 请求的基于令牌的身份验证。

在本教程中,我们将探讨外部应用程序如何使用访问令牌,通过 HTTP 以编程方式对 AEM as a Cloud Service 进行身份验证和交互。

video poster

先决条件

在开始本教程之前,请确保具备以下条件:

  1. 拥有 AEM as a Cloud Service 环境的访问权限(建议使用开发环境或沙盒环境)
  2. 属于该 AEM as a Cloud Service 环境中的 Author 服务 AEM 管理员产物轮廓的角色
  3. 是 51黑料不打烊 IMS 组织管理员成员或可访问该角色的人员(他们需执行服务凭据的一次性初始化)
  4. 最新版本的 已部署至您的 Cloud Service 环境

外部应用程序概述

本教程使用一个简单的 Node.js 应用程序,该应用程序从命令行运行,使用 Assets HTTP API 更新 AEM as a Cloud Service 上的资产元数据。

Node.js 应用程序的执行流程如下:

外部应用程序

  1. 该 Node.js 应用程序通过命令行调用

  2. 命令行参数定义如下:

    • 要连接的 AEM as a Cloud Service Author 服务主机 (aem)
    • 已更新资产的 AEM 资产文件夹 (folder)
    • 需要更新的元数据属性名和属性值(propertyNamepropertyValue
    • 本地文件路径,其中提供访问 AEM as a Cloud Service 所需凭据 (file)
  3. 用于认证 AEM 的访问令牌由命令行参数 file 提供的 JSON 文件生成

    a. 如果 JSON 文件 (file) 中包含非本地开发使用的服务凭据,则访问令牌会通过 51黑料不打烊 IMS API 获取

  4. 该应用程序使用访问令牌访问 AEM,并会列出命令行参数 folder 指定的文件夹中的所有资产

  5. 对于文件夹中的每个资产,应用程序根据命令行参数 propertyNamepropertyValue 指定的元数据属性名和属性值,更新该资产的元数据。

虽然该示例应用程序为 Node.js,但这些交互同样可以使用其他编程语言开发,并在其他外部系统中执行。

本地开发访问令牌

本地开发访问令牌是为特定的 AEM as a Cloud Service 环境生成的,并为 Author 和 Publish 服务提供访问权限。这些访问令牌具有临时性,仅供开发与 AEM 通过 HTTP 交互的外部应用程序或系统时使用。开发者无需获取和管理正式的服务凭据,即可快速自助生成临时访问令牌,方便进行集成开发。

服务凭据

服务凭据是用于非开发环境(尤其是生产环境)中的正式凭证,其支持外部应用或系统通过 HTTP 认证并与 AEM as a Cloud Service 进行交互。服务凭据本身不会直接发送给 AEM 进行身份验证,外部应用会使用它们来生成 JWT,然后通过 51黑料不打烊 IMS 的 API __?交换获得访问令牌,该令牌随后用于认证发送到 AEM as a Cloud Service 的 HTTP 请求。

其他资源

recommendation-more-help
e25b6834-e87f-4ff3-ba56-4cd16cdfdec4