TECH LAB

Adobe REST APIの使い方


実現したい内容

本記事ではAdobe APIを用いてAdobeグループのユーザー情報を確認する方法を紹介いたします。
Adobe APIは個人プランでは使用できず、グループ版、エンタープライズ版といった法人プランのみ使用可能です。法人プランではユーザーそれぞれに個別のライセンスを割り当てることが可能となります。

https://adobe--apiplatform-github-io.translate.goog/umapi-documentation/en/getstarted.html?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=ajax,se,elem,sc

結論

  • プロジェクトの作成
  • サービスアカウントの作成
  • アクセストークンの取得
  • APIを叩く

1.プロジェクトの作成

Adobe Developer Consoleにアクセスします。アクセス後、Create new projectをクリックします。

2.サービスアカウントの作成

プロジェクト画面で+Add to Projectをクリックし、APIを選択します。

利用したいAPIを選択します。今回はユーザーAPIを利用しますので、User Management APIを選択します。

Option 1を選択すると、右下のボタンがGenerate keypairという青いボタンに変わりますので、そちらをクリックします。

クリックするとconfig.zipというzipファイルがダウンロードされます。こちらに公開鍵/秘密鍵が入っています。

右下のSave configured APIをクリックします。

3.アクセストークンの取得

アクセストークンの取得には、Adobeの公式gitにて公開されているライブラリを使用します。

dotnet、Java、node、php、pythonのサンプルコードが存在します。

今回はphpのサンプルコードを用いて進めます。

https://github.com/AdobeDocs/adobeio-auth/tree/stage/JWT/samples/adobe-jwt-php

下記内容のパラメータを、それぞれのサービスアカウントの情報に合わせます。

AccessTokenProvider.php -i <client-id> -s <client-secret> -k <key-file> -u <issuer> -b <subject> -c <metascopes, comma separated> -e <exp time, default 1 Day>

<key-file>はダウンロードしたconfig.zipを解凍した中にあるprivate.keyのパスを記載してください。

<metascopes, comma separated>はAPIの権限スコープです。今回はユーザー管理APIを使用しますので、ent_user_sdkを指定します。

その他スコープは下記をご覧下さい。

https://github.com/AdobeDocs/adobeio-auth/blob/stage/JWT/Scopes.md

<exp time, default 1 Day>はトークンの有効期限となります。ここでは1 dayを指定します。

筆者の環境でそれぞれ置き換えたところ、下記のような形となりました。client-id等は隠してあります。

AccessTokenProvider.php -i"5d38...cbc" -s"p8e-J....k1X42MkdwvOFCKQ" -k"../../../../config/private.key" -u"085....01@AdobeOrg" -b"B46712506....C@techacct.adobe.com" -c"ent_user_sdk" -e"1 day"

上記phpをcliにて実行することにより、access_tokenを取得することができます。

4.APIを叩く

下記ページにユーザー管理APIのエンドポイントが記載されております。

https://adobe-apiplatform.github.io/umapi-documentation/en/api/getUser.html

今回はユーザー情報の取得のため、

GET /v2/usermanagement/organizations/{orgId}/users/{userString}

を使用します。

{orgId}は組織IDに置き換えてください。{userString}は取得したいユーザーのメールアドレスとなります。

headerとしてアクセストークンとclient-idを指定します。

3.アクセストークンの取得にて取得したトークンを

'Authorization: Bearer {token}'

の形で指定してください。

client-idに関しては、サービスアカウントのクライアントIDとなります。アクセストークンの取得の際に指定したclient-idと同様のものです。

client-idは

'X-Api-Key: {client-id}'

の形で指定してください。

筆者の環境で置き換えたコードが下記となります。トークン等は隠しております。

curl -X GET https://usermanagement.adobe.io/v2/usermanagement/organizations/xxxxxx@AdobeOrg/users/xxxxxx@xxxxxx.co.jp \
> --header 'Authorization: Bearer eyxxxxxxxxmFqZJWufSg1Xw' \
> --header 'X-Api-Key: 5d385fexxxxxxx62'

上記コードにて下記形式のjsonデータが取得できます。

{
"result":"success",
"user":{
"id":"xxxxxxxx",
"email":"xxxxxxxx.jp",
"status":"active",
"username":"xxxxxxxx.jp",
"adminRoles":["org"],
"domain":"xxxxxxxx.jp",
"firstname":"xxxxxxxxxx",
"lastname":"xxxxxxxx",
"country":"JP",
"type":"federatedID"
}
}

 

まとめ

今回はadobe rest apiにて、ユーザー情報を取得する方法を紹介いたしました。

その他、ユーザーにアプリのライセンスを付与するAPIや、ライセンスの付与状況を確認するAPI等が用意されておりますので、一度ご覧になってみてはいかがでしょうか。