AEM as a Cloud Service に対するトークンベースの認証
AEM は、GraphQL、AEM コンテンツサービスから Assets HTTP API まで、ヘッドレスな方法で操作できる様々な HTTP エンドポイントを公開します。多くの場合、これらのヘッドレスを使用するお客様は、保護されたコンテンツやアクションにアクセスするために、AEM に対する認証を行う必要があります。これを容易にするために、AEM は、外部のアプリケーション、サービス、システムからの HTTP リクエストのトークンベースの認証をサポートしています。
このチュートリアルでは、外部アプリケーションがアクセストークンを使用して、HTTP 経由で AEM as a Cloud Service に対してプログラムで認証とやり取りを行う方法について詳しく説明します。
前提条件
このチュートリアルを開始する前に、次の情報と環境が整っていることを確認します。
外部アプリケーションの概要
このチュートリアルでは、コマンドラインから実行される単純な Node.js アプリケーションを使用して、Assets HTTP API で AEM as a Cloud Service のアセットメタデータを更新します。
Node.js アプリケーションの実行フローは次のとおりです。
-
Node.js アプリケーションは、コマンドラインから呼び出されます
-
コマンドラインパラメーターの定義:
- 接続先の AEM as a Cloud Service オーサーサービスホスト(
aem
) - アセットが更新される AEM アセットフォルダー(
folder
) - 更新するメタデータのプロパティと値(
propertyName
とpropertyValue
) - AEM as a Cloud Service へのアクセスに必要な資格情報を提供するファイルへのローカルパス(
file
)
- 接続先の AEM as a Cloud Service オーサーサービスホスト(
-
AEM への認証に使用されるアクセストークンは、コマンドラインパラメーター
file
で指定された JSON ファイルから取得しますa. 非ローカル開発用のサービス資格情報が JSON ファイル(
file
)で提供されている場合、アクセストークンは Adobe IMS API から取得します -
アプリケーションはアクセストークンを使用して AEM にアクセスし、コマンドラインパラメーター
folder
で指定されたフォルダー内のすべてのアセットをリスト表示します -
フォルダー内の各アセットのメタデータは、コマンドラインパラメーター
propertyName
とpropertyValue
で指定されたプロパティ名と値に基づいてアプリケーションで更新されます
このサンプルアプリケーションは Node.js ですが、これらのやり取りは様々なプログラミング言語で開発し、その他の外部システムから実行できます。
ローカル開発アクセストークン
ローカル開発アクセストークンは、特定の AEM as a Cloud Service 環境のために生成され、オーサーサービスとパブリッシュサービスへのアクセスを提供します。これらのアクセストークンは一時的で、HTTP 経由で AEM とやり取りする外部アプリケーションやシステムを開発するときにのみ使用されます。開発者が正規のサービス資格情報を取得して管理する代わりに、一時的なアクセストークンを迅速かつ簡単に自動生成し、統合を開発できます。
サービス資格情報
サービス資格情報は、非開発シナリオ(ほとんどの場合は実稼動環境)で使用される正式な資格情報で、HTTP 経由で AEM を認証し、操作する外部アプリケーションまたはシステムの機能を促進します。サービス資格情報自体は認証時に AEM に送信されず、外部アプリケーションがこれらの情報を使用して JWT を生成します。これは、Adobe IMS の API __ で、AEM as a Cloud Service への HTTP リクエストの認証に使用できるアクセストークンと交換されます。
その他のリソース
-
JWT の作成と交換に関するその他のコードサンプル