OAuth 2.0 Coupa APIのはじめ方

Revised: 18 August 2022

はじめに

この開始手順の例では、CoupaとPostmanを使用して、RESTコマンドのインターフェイスのロックを解除するための適切なキー値とスコープを設定する方法を示します。

この例ではPostmanを使用していますが、ほとんどのRESTクライアントツールを使用して、OAuth 2.0を使用してCoupa APIへのアクセスのロックを解除するアクセストークンを取得および更新できます

ワクチンの仕組み

インテグレーションとしてCoupaにログインすると、管理者は助成金タイプのクライアント資格情報を使用してOAuth 2/OIDCクライアントを作成できます。設定が完了すると、クライアントIDとクライアントシークレットの値がCoupa APIへのアクセスを取得するために使用されます。

  1. 新しい接続でCoupaテストインスタンスを設定するには、[設定] > [Oauth 2/OpenID接続クライアント]に移動します。検索ボックスに「oauth」と入力すると、すばやく検索できます。

  2. [作成]をクリックします。タイプを付与するには、次を選択します。クライアント証明書。クライアント、ログイン、連絡先情報、および連絡先メールアドレスの名前を指定します。

  3. このAPI設定に含めるスコープを選択します。スコープは、APIキーに設定されたアクセス許可のセットのようなものです。OIDCでAPIアクセス許可を実装するために、APIの特定の機能へのアクセスを提供するいくつかの新しいスコープを作成しました。Coupaスコープは、service.object.rightの形をとります。例: core.accounting.readまたはcore.accounting.write。スコープとその基礎となるCoupaのアクセス許可のリストは、/oauth 2/scopesのスコープ管理ページで確認できます。スコープにドリルダウンすると、そのスコープに関連付けられている特定のAPIアクセス許可が表示されます。
    スコープはhttps ://{ your_instance_address }/ oauth 2/scopesで確認できます。一度

    に利用可能なすべてのスコープを選択するには、このドキュメントで手順を説明します。

  4. [保存]をクリックします。クライアントを保存すると、定義したAPIスコープへのアクセスを取得するために必要なクライアント識別子とシークレットの値が得られます。[表示/非表示 
    ]をクリックし
    て、シークレットを表示およびコピーします

    メモ

    Coupaインスタンスアドレスは、https ://{ organization_name }.coupahost.com (カスタマーインスタンスの場合)またはhttps ://{ organization_name }.coupacloud.com (パートナーおよびデモインスタンスの場合)の形式で表示されます。

    OIDConnectクライアントCoupa context.png

APIにアクセスするにはアクセストークンが必要で、24時間しか持続しないため、Coupaの推奨は20時間ごとにトークンを更新することです(更新トークンなど)。既存のトークンの有効期限が切れた場合は、新しいトークン呼び出しを行う必要があります。インテグレーションでは、20時間ごとに実行するスクリプトの一部としてPOSTコールを実行できるため、このプロセスを手作業で行う必要はありません。

OAuth 2/OIDCクライアント接続を構成してCoupa APIを使用するには、Postmanまたは別のRESTクライアントを使用します。

  1. 投稿を選択します。
  2. URIを、上記でクライアントを定義したインスタンス名に設定します。例: https ://{ your_instance_address }/ oauth 2/token
  3. Content - Type = application/x - www - form - urlencodedのヘッダーキー値を設定します 

    Postmanを使用して、Content - Typeというヘッダーキーを: application/x - www - form - urlencodedに設定します
  4. 投稿本文では、次の値を設定します。

    1. クライアントID = <Your client Identifier value from step 4 above>

    2. grant_type = client_credentials

    3. 範囲 = <Copy/paste all the scopes that you selected in client credentials setup without the comma.>

    4. client_secret = <Copy/paste the Coupa Client Secret value created in Step 4 above>

      Postmanを使用して、この例のような値を持つ投稿本文を作成します。

  5. [送信]をクリックすると、POST応答に、定義されたスコープ内のAPI呼び出しを次の24時間( expires_in 86399秒)で認証するために生成されたaccess_tokenが表示されます。 

    投稿への応答には、APIのさらなる使用に必要な応答トークンが含まれています。

  6.  応答本文からaccess_token値をコピーし、このクライアント接続に定義したスコープ内でCoupa API呼び出しの承認ヘッダーのトークン値として使用します。 

  7. 新しいタブを作成して、GET、POST、またはPUTなどのAPI呼び出しを行い、リクエストビルダーのAuthorization部分 で‘TYPE‘ = OAuth 2.0を定義します

  8. [トークン]フィールド値としてaccess_tokenを貼り付けます。   

    認証ヘッダートークンを使用して、新しいAPI呼び出しでトークンを使用します。

  9. ヘッダーに移動し、Acceptキーに値を入力します: application/xmlまたはapplication/json。呼び出しと
    使用しようとしているインターフェイスに応じて、他の要求パラメータを設定および定義する必要があります。図の例では、請求書APIへのGET API呼び出しを見ることができます。

    次のようなAccept値を入力します。application/xmlまたはapplication/json

  10. [送信]をクリックします。リクエストが正しく行われている場合は、以下のような返答が表示されます。

    請求書を持つPostmanがXML応答として返されました。

Authorizationヘッダーでそのaccess_tokenを設定すると、その接続に対して定義したクライアントスコープへのGET、PUT、またはPOST呼び出しを行うことができます。

追加のリソース

その他の関連トピックは次のとおりです。

このページに表示されている一部、または全ての内容は、機械翻訳によるものです。ご了承ください。