APIへの認証済みリクエストの準備
サービスアカウントの作成と設定が完了したら、お客様のアプリケーションは次の手順を完了する必要があります。
- ヘッダー、ペイロード、署名を含むJSON Web Token(JWT)を作成する。
- OAuth2認証プラットフォームからアクセストークン(
AccessToken)をリクエストする。 - 認証プラットフォームが返すJSONレスポンスを処理する。
レスポンスにアクセストークンが含まれている場合、それを使用してサービスアカウントがアクセス権限を持つUnicoの製品APIにリクエストを送信できます。(レスポンスにアクセストークンが含まれていない場合、JWTおよびトークンリクエストが誤っているか、サービスアカウントがリクエストされたリソースへのアクセスに必要な権限を持っていない可能性があります。)
上記のリクエストで生成されるアクセストークンの有効期間は、デフォルトで3600秒ですが、貴社に設定されたセキュリティ設定によって異なる場合があります。アクセストークンが期限切れになった場合、お客様のアプリケーションは新しいJWTを生成し、署名を行い、認証プラットフォームに新しいアクセストークンをリクエストする必要があります。
1 — JWTの作成
JWTはヘッダー、ペイロード、署名の3つの部分で構成されます。ヘッダーとペイロードはJSONオブジェクトです。これらのJSONオブジェクトはUTF-8でシリアライズされた後、Base64urlエンコーディング¹を用いてエンコードされます。このエンコーディングは、エンコード処理が繰り返された場合のエンコーディング変更に対する耐性を提供します。ヘッダー、ペイロード、署名はピリオド(.)文字で連結されます。
JWTは次のように構成されます。
{Header in Base64url}.{Payload in Base64url}.{Signature in Base64url}
署名の基となるテキストは次のように構成されます。
{Header in Base64url}.{Payload in Base64url}
1.1 — JWTヘッダーの形成
ヘッダーは、署名アルゴリズムとトークン形式を指定する2つのフィールドで構成されます。両方のフィールドは必須であり、それぞれ1つの値のみを持ちます。サ ービスアカウントはRSA SHA-256アルゴリズムとJWTトークン形式に依存しています。そのため、ヘッダーのJSON表現は次のとおりです。
{"alg":"RS256","typ":"JWT"}
Base64url表現は次のとおりです。
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9