2.1.2 ユーザー・レベル・トークンを生成するOAuth2.0フロー

ユーザー・レベルのアクセス・トークンおよびリフレッシュ・トークンを生成するには、2つのステップを手動で完了する必要があります。これらの値は、認証のためのOracle NetSuiteコネクタ基本構成のauthTokenに指定する必要があります。

次のステップは、認可コード付与をオプトインするユーザーが実行する必要があります:

インターネット・ブラウザで認可コード付与URLを渡すか、Postmanを使用してトークンを生成する必要があります。

  1. 認可コードのリクエスト

    ノート:

    開発者環境のトークンURIは次のとおりです:

    https://<host name>/services/rest/auth/oauth2/v1/token.

    1. 例に示すように、ブラウザで次のURLを入力します:

      例:

      https://<host name> /app/login/oauth2/authorize.nl?redirect_uri={callback}&response_type=code&scope=restlets+rest_webservices&state=ykv2XLx1BpT5Q0F3MRPHb94j&client_id={ConsumerKey}.

      {ConsumerKey}をコンシューマ・キー/クライアントIDに、{callback}をリダイレクトURIに置き換えます。前述のURLには、eSignature REST APIに必要な署名スコープが含まれています。

      このURLにより、Oracle NetSuite認証画面が開きます。

    2. Oracle NetSuiteアカウントの電子メール・アドレスとパスワードを入力し、リクエストされたスコープに同意します。その後、ログイン・ブラウザにリダイレクトされたら、ログインおよび認証用のユーザー資格証明を入力し、「続行」をクリックして、Oracle NetSuiteがコードを提供するための情報にアクセスできるようにします。ブラウザは、URLに埋め込まれたコード・パラメータに対して返された長い文字列を含むリダイレクトURIにリダイレクトされます。

      リクエスト:

      https://<host name>/app/login/oauth2/authorize.nl?redirect_uri=http://example.com&response_type=code&scope=restlets+rest_webservices&state=ykv2XLx1BpT5Q0F3MRPHb94j&client_id=7e1c238e-xxxx-xxxx-xxxx-abcea08a3171

      レスポンス: https://example.com/?state=ykv2XLx1BpT5Q0F3MRPHb94j&role=3&entity=4622&company=TSTDRVXXXXXX&code=096835b6aced….......457b00e3c

  2. ステップ1で生成されたコードを使用したリフレッシュ・トークンの生成
    1. リフレッシュ・トークンをリクエストするには、認可コードを含むPOSTリクエストをNetSuite認証サービスに送信します。
    2. コンシューマ・キーとコンシューマ秘密キーの値を、それぞれユーザー名とパスワードとして、「認可」でPostmanのBasic認証としてのタイプを持つリフレッシュ・トークン・リクエストに貼り付けます。
    3. また、リフレッシュ・トークン・リクエストには、本文パラメータのセット(grant_typeおよびcode)も含まれます。
      1. キーを、値が<code>のコードとして更新します。

        ノート:

        <code>は、ステップ1のコールバックから受け取った認可コードです。

        たとえば、code=096835b6aced..........457b00e3cです。

      2. 同様に、1つ以上の本文パラメータをgrant_typeのキーとauthorization_codeの値で更新し、もう1つの本文パラメータをredirect_uriのキーとステップ1で指定したものと同じ値で更新します。
    4. 「コード付与リフレッシュ・トークンの認可」リクエストを実行して、アクセス・トークンおよびリフレッシュ・トークンを生成します。
      1. レスポンスで、access_token、token_type、refresh_tokenおよびexpires_inという要素が返されます。
      2. refresh_tokenの値をコピーまたは保存します。

      認可コード付与でリフレッシュ・トークンを取得する方法の詳細は、NetSuite Applications Suiteを参照してください。

      例:

      リクエスト:

      curl --location --request POST " https://<host name>/services/rest/auth/oauth2/v1/token"--header "Authorization: Basic N2UxYzIzOGU1Zj........GI3Njg3MzMzMTZm" --header "Content-Type: application/x-www-form-urlencoded" --data-urlencode "code=34e8dec4289........a52fe26" --data-urlencode "redirect_uri=https://example.com" --data-urlencode "grant_type=authorization_code"

      レスポンス:

      { "access_token":"eyJ0eXAi......mX9f7k1g", "token_type":"Bearer", "refresh_token":"eyJ0eXAi......mruC5c3A", "expires_in":3600 }

      表2-1 OAuth2.0認証に必要な要素

      要素 説明
      refresh_token

      ユーザーの同意を必要とせずに新しいアクセス・トークンを取得するために使用されるトークン。このトークンは、すべてのNetSuite APIコールの認可ヘッダーで使用します。

      NetSuiteコネクタ基本構成の値の指定。

      refresh_tokenの値を取得したら、これらの値をNetSuiteコネクタ基本構成のauthTokenに指定する必要があります。構成の詳細は、「NetSuiteコネクタの構成」を参照してください。たとえば、eyJ0eXAi......mX9f7k1gです

      refresh_tokenの値 認証から受信される完全なリフレッシュ・トークンの値。