2.1.2 ユーザー・レベル・トークンを生成するOAuth2.0フロー
ユーザー・レベルのアクセス・トークンおよびリフレッシュ・トークンを生成するには、2つのステップを手動で完了する必要があります。これらの値は、認証のためのOracle NetSuiteコネクタ基本構成のauthTokenに指定する必要があります。
次のステップは、認可コード付与をオプトインするユーザーが実行する必要があります:
インターネット・ブラウザで認可コード付与URLを渡すか、Postmanを使用してトークンを生成する必要があります。
- 認可コードのリクエスト
ノート:
開発者環境のトークンURIは次のとおりです:https://<host name>/services/rest/auth/oauth2/v1/token.
- 例に示すように、ブラウザで次の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認証画面が開きます。
- 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
- 例に示すように、ブラウザで次のURLを入力します:
- ステップ1で生成されたコードを使用したリフレッシュ・トークンの生成
- リフレッシュ・トークンをリクエストするには、認可コードを含むPOSTリクエストをNetSuite認証サービスに送信します。
- コンシューマ・キーとコンシューマ秘密キーの値を、それぞれユーザー名とパスワードとして、「認可」でPostmanのBasic認証としてのタイプを持つリフレッシュ・トークン・リクエストに貼り付けます。
- また、リフレッシュ・トークン・リクエストには、本文パラメータのセット(grant_typeおよびcode)も含まれます。
- キーを、値が<code>のコードとして更新します。
ノート:
<code>は、ステップ1のコールバックから受け取った認可コードです。たとえば、code=096835b6aced..........457b00e3cです。
- 同様に、1つ以上の本文パラメータを
grant_type
のキーとauthorization_code
の値で更新し、もう1つの本文パラメータをredirect_uri
のキーとステップ1で指定したものと同じ値で更新します。
- キーを、値が<code>のコードとして更新します。
- 「コード付与リフレッシュ・トークンの認可」リクエストを実行して、アクセス・トークンおよびリフレッシュ・トークンを生成します。
- レスポンスで、access_token、token_type、refresh_tokenおよびexpires_inという要素が返されます。
- 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の値 認証から受信される完全なリフレッシュ・トークンの値。