はじめに
FedEx APIは、OAuth 2.0(ベアラートークン)認証方法を基に、お客様のアプリを承認し、お客様のAPIリクエストを認証します。このOAuthアクセストークンは、フェデックスのリソースへのアクセスを認証および承認するために、60分ごとに再生成し、各APIトランザクションで提供されなければなりません。
認証APIの詳細
フェデックスのリソースを認証する際に必須なこの API は、お客様に API リクエスト承認機能を提供します。次のセクションでは、API の前提条件について説明します。
FedEx Developer Portalへの登録時に、フェデックスはクライアント ID(API キー)とクライアントシークレット(シークレット・キー)の組み合わせを提供して、お客様のプロジェクトの API リクエストを認証します。お客様の組織の各プロジェクトは、API 認証情報と呼ばれるクライアント ID とクライアントシークレットの組み合わせに関連付けられています。
注意:顧客(Internal、CompatibleまたはProprietary Parent Child)は、フェデックスの担当者に連絡して、APIとシークレットキーを取得できます。
セキュリティをさらに強化するために、FedEx®の顧客(Internal、CompatibleまたはProprietary Parent Child)は、OAuthトークンを作成するためのAPIキーとシークレットキーに加えて、子キー(カスタマーシークレット)と子シークレット(カスタマーパスワード)を送信することができます。このトークンは、認証のためのすべての API リクエストで使用されます。
シークレット・キーを忘れた場合は、FedEx Developer Portalの「プロジェクト」ページから再作成できます。
注意:新しいキーを作成されますと、お客様のアプリケーションのコードが変更されます。
この文書の重要な情報:
- API キーとしてのクライアントキー
- シークレット・キーとしてのクライアントシークレット
- カスタマーキーとしての子キー
- カスタマーパスワードとしての子シークレット
API 認証情報は次をします。
- これらは、APIを呼び出すプロジェクトを識別します。
- これらは、お客様のプロジェクトで有効になっている API へのアクセスを許可します。
API認証情報を取得する方法
認証情報は、FedEx Developer Portalでの入力に基づいて作成されます。
- クライアントID – FedEx Developer Portalでプロジェクトが作成されると、APIキー(クライアントID)が作成されます。「プロジェクトの概要」ページで、プロジェクトに関連付けられているAPIキーを表示することもできます。
- クライアントシークレット – FedEx Developer Portalでプロジェクトが作成されると、「確認」ページにシークレットキー(クライアントシークレット)が表示されます。必要に応じて、「プロジェクトの概要」ページでシークレットキーを再生成することもできます。
注意:FedEx®の顧客(Internal、CompatibleまたはProprietary Parent Child)は、OAuthトークンを作成するためのAPIキーとシークレットキーに加えて、子キー(カスタマーシークレット)と子の秘密(カスタマーパスワード)を送信する必要があります。子キーと子シークレットを取得する方法については、認証情報登録APIを参照してください。
認証APIの仕組み
API認証
FedEx DeveloperポータルでAPI 認証情報を保護すると、OAuthエンドポイントを使用してアクセストークンを取得します。アクセストークンは、各APIトランザクションで認証情報として使用されます。
これらは、OAuthリクエストに関連する必要な入力情報は次のとおりです。
- grant_type – 顧客の種類。(有効な値:client_credentials、csp_credentials、client_pc_credentials)
- client_id – プロジェクト API キーを参照します。
- client_secret – プロジェクト API シークレット・キーを参照します。
FedEx® Internal、Compatible、またはProprietary Parent Childの顧客は、以下の追加入力を送信してください。
- child_id – 認証情報登録 API リクエストを通じて返されたカスタマーキー。
- child_secret – 認証情報登録 API リクエストを通じて返されたカスタマーパスワード
このリクエストの結果は以下のようになります。
- access_token – APIトランザクションで使用しなければならない暗号化された OAuthトークン。
- token_type – トークンの種類。この場合、ベアラ認証です。
- expires_in – トークンの有効期限(ミリ秒単位)。トークンの標準有効期限は 1 時間です。
- 範囲 – 消費者に提供される承認範囲。
例
リクエスト:
POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=your client ID&client_secret=Your secret
応答:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
FedEx® Internal または Compatible の顧客へのリクエスト:
POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
応答:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
FedEx® Proprietary Parent Childの顧客へのリクエスト:
POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
応答:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
注意:アクセストークンは1時間で期限切れになりますが、oauth/トークンエンドポイントへの POST リクエストを使用して再生成できます。
Response