providers/netsuite
NetSuiteProfile
プロパティ
連絡先?
optional contact: number;
部署?
optional department: number;
メールアドレス
email: string;
ID
id: number;
所在地
location: number;
名前
name: string;
ロール
role: number;
ロールセンター?
optional roleCenter: string;
ロールID?
optional roleId: string;
子会社?
optional subsidiary: number;
OAuthNetSuiteOptions
プロパティ
アカウントID
accountID: string;
例:TSTDRV1234567 または本番環境の場合は 81555
プロンプト
prompt: string;
プロンプトオプション - 以下にも表示されています。
リンク
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_160855585734.html
authorization.params.prompt
オプションのプロンプトパラメーターを使用すると、ログイン/同意画面が表示されるタイミングをさらに制御できます。プロンプトパラメーターで使用できる値を以下に示します。「none」 - 同意画面は表示されません。アクティブなセッションがない場合、アプリケーションはエラーを返します。「login」 - アクティブなセッションがあっても、ユーザーは認証する必要があります。このオプションは、アプリケーションがアカウント固有のドメインにリクエストを送信する場合にのみ機能します。「consent」 - 同意画面は毎回表示されます。アクティブなセッションがない場合は、ユーザーは認証する必要があります。login consent または consent login - 同意画面は毎回表示され、アクティブなセッションがあってもユーザーは認証する必要があり、NetSuiteへの接続を許可します。GitHub、Google、Facebookのデータ同意画面に似ています。
スコープ
scope: string;
restlets rest_webservices または restlets または rest_webservices suiteanalytics_connect restlets
ユーザー情報
userinfo: string;
ランタイム情報またはレコード情報を返すRESTletまたはSuitelet - RESTletを推奨
デフォルト()
default<P>(config): OAuthConfig<P>
Netsuiteログインをページに追加し、以下のリクエストを行います。
設定
免責事項
このプロバイダーを使用することにより、お客様はNetSuiteとデータの共有に同意するものとします。このプロバイダーを使用することにより、お客様はNetSuiteのサービス利用規約およびプライバシーポリシーを遵守することに同意するものとします。このプロバイダーの作者はNetSuiteと提携していません。このプロバイダーを使用するには、NetSuiteのお客様であり、NetSuiteアカウント(フルアクセスユーザー)を持っている必要があります。 **NetSuiteアカウントでOAuth 2.0機能が有効になっており、現在のロール/ユーザーに適切な権限が設定されていることを確認してください。**
プロバイダーを設定する前に、以下の手順が必要です。
- 統合レコードの作成
- TBA認証フローのチェックを外します。
- OAuth 2.0認証フローをチェックします。
- 下記の
Callback URL
をRedirect URI
フィールドにコピーアンドペーストします。 - 次に、使用するスコープを選択します。
- **REST Webサービス** (
rest_webservices
) - REST Webサービスへのアクセス。 - **RESTLets**(
restlets
) - RESTLetsへのアクセス。 - **SuiteAnalytics Connect** (
suiteanalytics_connect
) - SuiteAnalytics Connectへのアクセス。
- **REST Webサービス** (
- 使用するポリシーを追加します。
- アプリケーションロゴ(オプション)(ユーザーがアプリケーションへのアクセスを許可するように求められたときにユーザーに表示されます)。- 同意画面
- アプリケーション利用規約(オプション)- アプリケーションの利用規約を含むPDFファイル。- 同意画面
- アプリケーションプライバシーポリシー(オプション)- アプリケーションのプライバシーポリシーを含むPDFファイル。- 同意画面
- OAuth 2.0同意ポリシー設定 - この設定は、ユーザーがサインインするたびに、または初めてサインインする場合にのみ、または決してアプリケーションへのアクセスを許可するように求められるかどうかを決定します。
- 統合レコードを**保存**します。
- 統合レコードを使用して、プロバイダーの
clientId
とclientSecret
を生成します。 **生成された値は後で保存してください。**
コールバックURL
統合レコードでリダイレクトURIを設定する際、https
プロトコルを使用する必要があります。それ以外のプロトコルを使用すると、サインイン時にエラー(INVALID_LOGIN_ATTEMPT)が発生します。ローカルでテストする場合は、ngrokなどのサービスを使用して、localhostへの安全なトンネルを作成できます。
https://example.com/api/auth/callback/netsuite
当社のuserinfo
は、ユーザーに関する情報を提供するスイートレットまたはRESTletのURLで構成されている必要があります。ハンドシェイクプロファイルの収集実行に時間がかからないように、非常に高速である必要があります。まず基本情報を取得するには、N/runtime
モジュールを使用するのが最善です。以下にRESTletの例を示します。「すべてのロール」へのアクセスをデプロイして有効にすることを確認してください。
RESTletコールバックハンドラの例
URIを使用する場合は必ず、外部RESTlet URLをデプロイして使用してください。
* /**
* @NApiVersion 2.1
* @NScriptType Restlet
*/
define(["N/runtime"], /**
@param{runtime} runtimee
/ (runtime) => {
/**
* Defines the function that is executed when a GET request is sent to a RESTlet.
* @param {Object} requestParams - Parameters from HTTP request URL; parameters passed as an Object (for all supported
* content types)
* @returns {string | Object} HTTP response body; returns a string when request Content-Type is 'text/plain'; returns an
* Object when request Content-Type is 'application/json' or 'application/xml'
* @since 2015.2
*/
const get = (requestParams) => {
let userObject = runtime.getCurrentUser();
try {
log.debug({ title: "Payload received:", details: requestParams });
const { id, name, role, location, email, contact } = userObject;
log.audit({ title: "Current User Ran", details: name });
let user = {
id,
name,
role,
location,
email,
contact,
};
log.debug({ title: "Returning user", details: user });
return JSON.stringify(user);
} catch (e) {
log.error({ title: "Error grabbing current user:", details: e });
}
};
return {
get,
};
);
注記:上記は、基本的なランタイム情報を返す例です。新しいスクリプトレコードとデプロイメントレコードを作成してください。デプロイメントレコードを保存すると、RESTletのURLを取得できます。
設定
import { Auth } from "@auth/core"
import Netsuite from "@auth/core/providers/netsuite"
const request = new Request(origin)
const response = await Auth(request, {
providers: [
NetSuite({
accountID: NETSUITE_ACCOUNT_ID, // EX: TSTDRV1234567 or 81555 for prod, and 1234567-SB1 for Sandbox accounts not "_" use "-".
// Returns the current user using the N/runtime module. This url can be a suitelet or RESTlet (Recommended)
// Using getCurrentUser(); So we match this schema returned from this RESTlet in the profile callback. (Required)
userinfo: "https://1234567.restlets.api.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=1",
})
],
})
リソース
- NetSuite - 統合レコードの作成(OAuth 2.0)
- NetSuite - OAuthリクエストの承認
- NetSuite - OAuthロールの設定
- NetSuite OAuth 2.0の詳細について学習する
注記
userinfo
がプロファイルコールバックの戻り値の型と一致することを確認し、ユーザーセッションが正しく読み取られるようにします。ユースケースのデフォルト値をオーバーライドするには、組み込みOAuthプロバイダーのカスタマイズを確認してください。
型パラメータ
型パラメータ |
---|
P extends NetSuiteProfile |
パラメータ
パラメータ | 型 |
---|---|
config | OAuthUserConfig <P > & OAuthNetSuiteOptions |
戻り値
OAuthConfig
<P
>