ServiceNow による OAuth 受信認証: Postman を使用した認可コード許可フローSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } これは、Postman を使用して ServiceNow インスタンスの OAuth 受信認証をテストする方法に関するガイドです。これは、認可コード許可を使用してアプリケーションを設定し、API 呼び出し時に OAuth トークンを検証して、システムへの安全で許可されたアクセスを確保する方法を理解するのに役立ちます。クライアント要求をシミュレートし、OAuth フローを段階的に検証するツールとして Postman を使用することに重点が置かれています。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } すべて Instructions<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 認証コード許可 OAuth 2.0 認証コードフローの一連のイベントは次のとおりです。 認証要求: クライアントはユーザーを認証サーバーにリダイレクトします。認証サーバーはログインページへのリダイレクトで応答します。 ユーザーが同意: ユーザーがログインし、要求を承認します。認証サーバーは、認証コードを含むクライアントのコールバック URI へのリダイレクトで応答します。 トークン要求: クライアントは、認証コードをアクセストークンと交換します。認証サーバーは、アクセストークン (およびオプションでリフレッシュトークン) で応答します。 保護されたリソースへのアクセス: クライアントは、アクセストークンを使用して保護されたリソースにアクセスします。リソースサーバーは、要求されたデータで応答します。 ユースケース: 認証コード権限許可は、ユーザーが認証して同意する必要がある ユーザー向けアプリケーション向けに設計されているため、認証サーバーへのリダイレクトを伴います。これにより、ユーザーの認証情報とアクセストークンが安全に処理されます。 oAuth2.0 アプリケーション登録をセットアップ: アドミンユーザーとして ServiceNow インスタンスにログインします。[すべて] > [システム OAuth] > [アプリケーションレジストリ] に移動します。 oAuth2.0 アプリケーション登録に関連するレコードのリストが利用可能になります。これは、oAuth2.0 プロバイダーまたはクライアントレコードを表示するリストです。 プロバイダー:サードパーティのアプリケーション/API が ServiceNow インスタンスに接続します。クライアント: インスタンスはサードパーティアプリケーションに接続します。 [新規] をクリックしインターセプターページで、[外部クライアント用の OAuth API エンドポイントを作成] をクリックし、フォームに入力します。 ハンバーガーメニューをクリックし、[フォームレイアウト] をクリックします。 利用可能なフィールドから Default Grant Type を選択し、選択済みフィールドへ移動します。 移動後、これを保存してアプリケーションレジストリページに戻ります。 ページは次のようになります。 デフォルトの許可タイプとして [Authorization Code] を選択します。 任意の名前を付けてください。 名前:postman-authcode-test または任意の名前 注:クライアント ID やクライアントシークレットなどのその他の詳細はすべて自動入力されます。 リダイレクト URL を設定:https://oauth.pstmn.io/v1/browser-callback 注:一部のお客様から、この URL に関する問題が報告されています。その場合は、リダイレクトの代替 URL として https://getpostman.com/oauth2/callback を使用します。 注: Postman を使用してテストするため、このリダイレクト URL を設定しています。 ユーザーセットアップ: [すべて] > [ユーザー管理] > [ユーザー] に移動します。 [新規] を選択します。 フォームのフィールドに入力し、[送信] をクリックします。 ユーザー ID:oauthusertest 注意:以下のフィールドはオプションです。 名:oauth姓: userメール:oauthusertest@example.com 次の操作を実行します。 [パスワードを設定] ボタンを選択して、パスワード生成ダイアログを表示します。[生成] をクリックしてパスワードを生成し、[パスワードを保存] ボタンをクリックしてパスワードを保存します。[パスワードのリセットが必要] ボタンの設定を解除します。 関連リストに移動し、[ロール] タブを選択します。[編集] ボタンをクリックして、新しいロールをユーザーにアサインします:oauthusertest コレクションリストから rest_service と ITIL を選択し、矢印をクリックして右側に移動して保存します。 POSTMAN のセットアップ: Postman に移動し、次のように postman をセットアップします。 [認証] タブを選択します。ドロップダウンメニューから OAuth2.0 を選択します。 [Configure New Token] セクションに移動し、次のようにセットアップします。 トークン名:Service-now トークン権限許可タイプ:認証コードコールバック URL:https://oauth.pstmn.io/v1/browser-callback[注意:上記のコールバック URL が機能しない場合は、代替コールバック URL を使用してください:https://getpostman.com/oauth2/callback]認証 URL:https://<instance-name>.service-now.com/oauth_auth.doアクセストークン URL:https://<instance-name>.service-now.com/oauth_token.doクライアント ID:<クライアント ID>クライアントシークレット: <クライアントシークレット>State: 12345 次に、以下に移動して [新しいアクセストークンを取得] をクリックします Service-Now インスタンスへの接続を許可するように求められます。 注:servicenow インスタンスにログインしていない場合は、ログイン画面が表示されます。続行するには、インスタンスのユーザー名とパスワードを入力する必要があります。 許可すると、アクセストークンが表示されます。 後で検証ステージで使用するために、このアクセストークンをコピーします。 6.このステップまで到達すると、認証コード権限許可のアクセストークンとリフレッシュトークンが生成されています。 検証: トークンの生成: すべてのトークンを表示するには、 システム OAuth > トークンの管理に移動します。このモジュールへは、管理者のみがアクセスできます。トークンが生成されたかどうかを確認します。 注:まず認証トークンが生成され、次に認証コードを使用してアクセスおよびリフレッシュトークンが生成されます。 検証:リソースレコードの取得 [All > System Web Services > REST API Explorer] に移動します。次のようにセットアップを選択します。 パスパラメーター: tableName= incident クエリパラメーター: sysparm_fields = number,severity,caller_id,category,short_description,statesysparm_limit = 1 3.送信ボタンをクリックし、データが利用可能かどうかを確認します。 4.応答の本文は次のようになります。 5.次に、POSTMAN に移動して、次の操作を行います。 REST API エクスプローラーから HTTP メソッド/URI をコピーします: https://<instance-name>.service-now.com/api/now/table/incident?sysparm_fields=number%2Cshort_description%2Cstate%2Ccaller_id&sysparm_limit=1 6.POSTMAN に貼り付けます: [クエリパラメーターは自動入力されます] 7.アクセストークンを受け取った POSTMAN の最初のタブに移動します。 8.次に、[認証タイプ] から ベアラートークン を選択し、以前に受け取ったアクセストークンをコピーします。 9.次のように配置します。 REST メソッド:GETURL:https://<instance-name>.service-now.com/api/now/table/incident?sysparm_fields=number%2Cshort_description%2Cstate%2Ccaller_id&sysparm_limit=1 10.データが入力されているかどうかを確認 リフレッシュトークンフローの POSTMAN セットアップ: アクセストークンの有効期限が切れるまで 30 分待つか、アクセストークンの更新時間を 1800 秒未満に短縮してください要求をもう一度送信して、これが期限切れのアクセストークンで機能するかどうかを確認します 次に、前の演習からリフレッシュトークンをコピーします。 次のようにリフレッシュトークンフローを設定します。 grant_type=refresh_tokenrefresh_token=<受け取った REFRESH_TOKEN>client_id = <インスタンスのクライアント ID>client_secret = <クライアントシークレット>REST メソッド:POSTURL:<instance-name>.service-now.com/oauth_token.do 5.[送信] ボタンを使用して新しいアクセストークンを受け取る。 6.リフレッシュトークンを使用して新しいアクセストークンを取得する場合は、リフレッシュトークンフローが機能していることを意味します。 デバッグ: デバッグ用のシステムプロパティを設定します。sys_properties.list に移動し、システムプロパティ com.snc.platform.security.oauth.debug が利用可能かどうかを確認します。ない場合は、[新規] ボタンをクリックしてプロパティを作成します。 システムプロパティを以下のように設定し、[送信] をクリックします 名前:com.snc.platform.security.oauth.debug説明:OAuth デバッグプロパティの有効化タイプ : True | False値:true 次に、システムプロパティ glide.auth.debug.enabled が存在するか確認し、存在しない場合は、システムプロパティを次のように設定して [送信] をクリックします 名前:glide.auth.debug.enabled説明:OAuth デバッグプロパティの有効化タイプ : True | False値:true [システムログ] > [システムログ] > [すべて] に移動します。 トークンが生成されたかどうかを確認します。 デバッグ: デバッグ用のシステムプロパティを設定します。sys_properties.list に移動し、システムプロパティ com.snc.platform.security.oauth.debug が利用可能かどうかを確認します。ない場合は、[新規] ボタンをクリックしてプロパティを作成します。 システムプロパティを以下のように設定し、[送信] をクリックします 名前:com.snc.platform.security.oauth.debug説明:OAuth デバッグプロパティの有効化タイプ : True | False値:true 次に、システムプロパティ glide.auth.debug.enabled が存在するか確認し、存在しない場合は、システムプロパティを次のように設定し、[送信] をクリックします 名前:glide.auth.debug.enabled説明:OAuth デバッグプロパティの有効化タイプ : True | False値:true [すべて] > [システムログ] に移動します。 トークンが生成されたかどうかを確認します。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } https://www.servicenow.com/docs/bundle/yokohama-platform-security/page/administer/security/concept/c_OAuthAuthorizationCodeFlow.html