このフローは、安全な代替手段が実現不可能な従来の環境または高度に制御された環境で使用されます。クライアント アプリは、ユーザーの資格情報を直接収集して ServiceNow に送信し、アクセス トークンを取得するため、信頼できる内部使用にのみ適しています。
始める前に
必要なロール: oauth_admin、mi_admin、admin
このタスクについて
この手順では、信頼できるクライアントアプリケーションがユーザー認証情報を直接処理してアクセストークンを取得し、それを使用して ServiceNow API にアクセスする方法について概説します。
ユーザーはアプリを通じてログインし、自分の認証情報とユーザーの認証情報の両方を ServiceNowに送信します。 ServiceNow 認証情報を検証し、アプリが API を呼び出すために使用するアクセストークンを発行します。
図 : 1. リソース所有者のパスワード認証情報権限許可ワークフロー
手順
-
ユーザーがクライアントアプリケーションにログインします。
-
クライアントアプリケーションは、次のパラメーターを使用してトークン要求を送信します。
- クライアント ID とクライアントシークレット。
- ユーザーのユーザー名とパスワード。
例
Method: POST
Endpoint: https://<servicenow_base_url>/oauth_token.do
Headers: Content-Type: application/x-www-form-urlencoded
表 : 1. トークン要求パラメーター
| パラメーター |
必須 |
説明 |
grant_type |
はい |
OAuth 権限許可タイプを指定します。 |
client_id |
はい |
クライアントアプリケーションの一意の識別子。 形式:YOUR_CLIENT_ID |
client_secret |
はい |
クライアントアプリケーションの秘密キー。 形式:YOUR_CLIENT_SECRET |
ユーザー名 |
はい |
ユーザーの ServiceNow ユーザー名。 |
パスワード |
はい |
ユーザーの ServiceNow パスワード。 |
スコープ |
オプション |
要求されるアクセスのレベルを定義します。例:
- incident_read
- incident_write
|
-
ServiceNow はクライアントとユーザーの両方の認証情報を検証し、アクセストークンを返します。
-
クライアントはアクセストークンを使用して ServiceNow API を呼び出します。
例
Method: GET
Endpoint: https://<servicenow_base_url/api/now/incident
Authorization: Bearer YOUR_ACCESS_TOKEN
-
ServiceNow はアクセストークンを検証し、API 応答を返します。