OpenAPI ベースの AEM API の設定
AEM as a Cloud Service 環境を設定して、OpenAPI ベースの AEM API へのアクセスを有効にする方法を学びます。
この例では、サーバー間認証方式を使用する AEM Assets API を使用して、OpenAPI ベースのAEM APIのセットアップ プロセスを示します。 同様の手順に従って、その他のOpenAPI ベースのAEM APIを設定できます。
高度な設定プロセスには、次の手順が含まれます。
- AEM as a Cloud Service 環境の最新化。
- AEM API アクセスの有効化。
- Adobe Developer Console(ADC)プロジェクトの作成。
- ADC プロジェクトの設定。
- ADC プロジェクト通信を有効にする AEM インスタンスの設定。
前提条件
- Cloud ManagerおよびAEM as a Cloud Serviceへのアクセス
- Adobe Developer Console(ADC)へのアクセス。
- AEM プロジェクトを使用して、
api.yamlファイルのAPI設定を追加または更新します。
AEM as a Cloud Service 環境の最新化。 modernization-of-aem-as-a-cloud-service-environment
AEM as a Cloud Service環境の最新化は、次の手順を含む 1回限りの環境アクティビティ です。 AEM as a Cloud Service環境を既に最新化している場合は、この手順をスキップできます。
- AEM リリース(2024.10.18459.20241031T210302Z)以降に更新します。
- リリース(2024.10.18459.20241031T210302Z)より前に環境が作成された場合は、新しい製品プロファイルを追加します。
AEM インスタンスの更新 update-aem-instance
- AEM インスタンスを更新するには、Adobe Cloud Managerにログインした後、Environments セクションに移動し、環境名の横にある省略記号 アイコンを選択して、更新 オプションを選択します。
- 次に、「送信」ボタンをクリックし、推奨フルスタックパイプラインを実行します。
この場合、フルスタックパイプラインの名前は Dev :: Fullstack-Deploy で、AEM 環境の名前は wknd-program-dev です。名前が異なる場合があります。
新しい製品プロファイルの追加 add-new-product-profiles
- AEM インスタンスに新しい製品プロファイルを追加するには、「Adobe Cloud Manager」の「環境」セクションで、環境名の横にある 省略記号 アイコンを選択し、「製品プロファイルの追加」オプションを選択します。
-
環境名の横にある省略記号 アイコンをクリックし、アクセスの管理 > 作成者プロファイルを選択して、新しく追加された製品プロファイルを確認します。
-
Admin Console ウィンドウに、新しく追加された製品プロファイルが表示されます。 AEM Assets、AEM Sites、AEM FormsなどのAEMの使用権限に応じて、異なる商品プロファイルが表示される場合があります。 例えば、私の場合、AEM AssetsとSitesの使用権限があるので、次の製品プロファイルが表示されます。
- 上記の手順で、AEM as a Cloud Service 環境の最新化が完了します。
AEM API アクセスの有効化 enable-aem-apis-access
新製品プロファイルが存在すると、Adobe Developer Console (ADC) でOpenAPI ベースのAEM API アクセスが有効になります。 これらの製品プロファイルがなければ、Adobe Developer Console(ADC)でOpenAPI ベースのAEM APIを設定することはできません。
新しく追加された製品プロファイルは、サービスに関連付けられています。これは、事前定義されたアクセス制御リスト(ACL)を持つ AEM ユーザーグループを表します。サービスは、AEM APIへのアクセスのレベルを制御するために使用されます。 また、製品プロファイルに関連付けられた サービス を選択または選択解除して、アクセスレベルを増減することもできます。
製品プロファイル名の横にある「詳細を表示」アイコンをクリックして、関連付けを確認します。 次のスクリーンショットでは、AEM Sites Content Manager - author - Program XXX - Environment XXX製品プロファイルとAEM Sites Content Manager サービスの関連付けを確認できます。 その他の製品プロファイルとサービスとの関連付けを確認します。
AEM API アクセスを有効にする enable-aem-assets-apis-access
この例では、AEM Assets APIを使用して、OpenAPI ベースのAEM APIのセットアップ プロセスを示しています。 ただし、デフォルトでは、AEM Assets API Users サービスは製品プロファイルに関連付けられていません。 必要な製品プロファイルに関連付ける必要があります。
新しく追加された AEM Assets 共同作業者ユーザー - オーサー - プログラム XXX - 環境 XXX 製品プロファイルまたはAEM Assets API アクセスに使用するその他の製品プロファイルに関連付けましょう。
サーバー間認証を有効にする
目的のOpenAPI ベースのAEM APIに対してサーバー間認証を有効にするには、サービスが関連付けられている 製品プロファイル に、Adobe Developer Console(ADC)を使用して統合を設定しているユーザーを開発者として追加する必要があります。
例えば、AEM Assets APIのサーバー間認証を有効にするには、AEM Assets Collaborator Users - author - Program XXX - Environment XXX Product ProfileにDeveloperとして追加する必要があります。
この関連付けの後、ADC プロジェクトの Asset Author API で目的のサーバー間認証を設定し、ADC プロジェクトの認証アカウント(次の手順で作成)を製品プロファイルに関連付けることができます。
上記のすべての手順を実行することで、OpenAPI ベースのAEM API アクセスを有効にするためのAEM as a Cloud Service環境を準備しました。 次に、Adobe Developer Console(ADC)プロジェクトを作成して、OpenAPI ベースのAEM APIを設定する必要があります。
Adobe Developer Console(ADC)プロジェクトの作成。 adc-project
Adobe Developer Console(ADC)プロジェクトは、OpenAPI ベースのAEM APIを設定するために使用されます。 Adobe Developer Console(ADC)は、Adobe API、SDK、リアルタイムイベント、サーバーレス関数などにアクセスするための開発者ハブです。
ADC プロジェクトを使用して、目的の API を追加し、その認証を設定して、認証アカウントを製品プロファイルに関連付けます。
ADC プロジェクトを作成するには、次の手順に従います。
-
Adobe ID を使用して Adobe Developer Console にログインします。
-
「クイックスタート」セクションで、「新規プロジェクトの作成」ボタンをクリックします。
-
これにより、デフォルトの名前で新しいプロジェクトが作成されます。
-
右上隅の「プロジェクトを編集」ボタンをクリックして、プロジェクト名を編集します。わかりやすい名前を指定し、「保存」をクリックします。
ADC プロジェクトの設定 configure-adc-project
ADC プロジェクトを作成したら、目的の AEM API を追加し、その認証を設定して、認証アカウントを製品プロファイルに関連付ける必要があります。
この場合、AEM Assets APIを使用して、OpenAPI ベースのAEM APIのセットアップ プロセスを示します。 ただし、同様の手順に従って、AEM Sites API、AEM Forms APIなど、他のOpenAPI ベースのAEM APIを追加できます。 AEMの使用権限により、Adobe Developer Console(ADC)で使用可能なAPIが決まります。
-
AEM API を追加するには、「API を追加」ボタンをクリックします。
-
API を追加ダイアログで、Experience Cloud でフィルタリングし、目的の AEM API を選択します。例えば、この場合、「Asset Author API」が選択されます。
note tip TIP 必要な AEM API カードが無効になっている場合と、無効になっている理由情報に「ライセンスが必要です」というメッセージが表示される場合、理由の 1 つは、AEM as a Cloud Service環境を最新化していないことが考えられます。詳しくは、AEM as a Cloud Service 環境の最新化を参照してください。 -
次に、API を設定ダイアログで、目的の認証オプションを選択します。例えば、この場合、「サーバー間」認証オプションが選択されます。
サーバー間認証は、ユーザーインタラクションなしで API アクセスが必要なバックエンドサービスに最適です。Web アプリと単一ページアプリの認証オプションは、ユーザーの代わりに API アクセスを必要とするアプリケーションに適しています。詳しくは、OAuth サーバー間資格情報と、web アプリ間資格情報と単一ページアプリ資格情報の違いを参照してください。
note tip TIP サーバー間認証オプションが表示されない場合は、統合を設定するユーザーが、サービスが関連付けられている製品プロファイルに開発者として追加されていないということを意味します。詳しくは、サーバー間認証を有効にするを参照してください。 -
必要に応じて、識別しやすくするために API の名前を変更できます。デモ用には、デフォルト名が使用されます。
-
この場合、認証方法は OAuth サーバー間なので、認証アカウントを製品プロファイルに関連付ける必要があります。AEM Assets 共同作業者ユーザー - オーサー - プログラム XXX - 環境 XXX 製品プロファイルを選択し、「保存」をクリックします。
-
AEM API と認証設定を確認します。
OAuth Web アプリまたは OAuth 単一ページアプリの認証方法を選択した場合、製品プロファイルの関連付けは表示されませんが、アプリケーションリダイレクト URI が必要です。アプリケーションリダイレクト URI は、認証コードによる認証後にユーザーをアプリケーションにリダイレクトするために使用されます。関連するユースケースのチュートリアルでは、このような認証固有の設定について概説しています。
ADC プロジェクト通信を有効にする AEM インスタンスの設定 configure-aem-instance
次に、上記のADC プロジェクト通信を有効にするには、AEM インスタンスを設定する必要があります。
この設定がないと、ADC プロジェクトのClientIDはAEM インスタンスと通信できず、403 Forbidden エラーが発生します。 この設定は、許可されたClientIDのみがAEM インスタンスと通信できるようにするためのファイアウォールルールと考えてください。
上記のADC プロジェクト通信を有効にするには、AEM インスタンスを設定する手順に従います。
-
ローカルマシンで、AEM プロジェクトに移動し(まだクローンを作成していない場合は複製します)、
configフォルダーを探します。 -
AEM プロジェクトで、
api.yamlフォルダーからconfigファイルを見つけるか、作成します。 私の場合、AEM WKND Sites プロジェクト を使用して、OpenAPI ベースのAEM APIのセットアッププロセスを示します。
-
次の設定を
api.yamlファイルに追加して、ADC プロジェクトのClientIDがAEM インスタンスと通信できるようにします。code language-yaml kind: "API" version: "1.0" metadata: envTypes: ["dev", "stage", "prod"] data: allowedClientIDs: author: - "<ADC Project's Credentials ClientID>"<ADC Project's Credentials ClientID>を ADC プロジェクトの資格情報値の実際のクライアント ID に置き換えます。このチュートリアルで使用する API エンドポイントはオーサー層でのみ使用できますが、その他の API の場合、yaml 設定に publish または preview ノードを含めることもできます。note caution CAUTION デモ目的では、すべての環境で同じクライアント ID が使用されます。セキュリティと制御の強化に、環境(開発、ステージ、実稼動)ごとに個別のクライアント ID を使用することをお勧めします。 -
設定変更をコミットし、Cloud Manager パイプラインが接続されているリモート Git リポジトリに変更をプッシュします。
-
Cloud ManagerのConfig Pipelineを使用して、上記の変更をデプロイします。
api.yaml ファイルは、RDE、 コマンドラインツール を使用してRDEにインストールすることもできます。 これは、設定の変更を実稼動環境にデプロイする前にテストする場合に便利です。
api.yaml) ファイルは、ADC プロジェクトとの通信を有効にするようにAEM インスタンスを設定する唯一の方法です。 環境変数の使用など、その他のメソッドは、この設定ではサポートされていません。次の手順
AEM インスタンスを設定して ADC プロジェクト通信を有効にすると、OpenAPI ベースの AEM API の使用を開始できます。様々な OAuth 認証方法を使用して、OpenAPI ベースの AEM API を使用する方法を学びます。
OAuth サーバー間認証を使用して、カスタム NodeJS アプリケーションから OpenAPI ベースの AEM API を呼び出す方法を説明します。
OAuth web アプリ認証を使用して、カスタム web アプリケーションから OpenAPI ベースの AEM API を呼び出す方法を説明します。
OAuth 2.0 PKCE フローを使用して、カスタム単一ページアプリ(SPA)から OpenAPI ベースの AEM API を呼び出す方法を説明します。