Webトークン
Webトークンは、二者間で情報を安全に転送することを可能にします。Applications Managerを使用すると、監視がデータ収集に使用できるWebトークンをグローバルに設定できます。
- Webトークンの作成
- トークンレスポンスパスの設定
Webトークンの作成:
[設定]タブ→[ディスカバリとデータ収集]配下の[認証情報設定]→[Webトークン]に移動し、[こちらをクリックして追加(1つも追加されていない場合)]または[Webトークン追加(2つ目以降)]をクリックします。
Webトークン追加:トークンの詳細を指定します。
- Webトークン名:Webトークンの名前を指定します。
- WebトークンエンドポイントURL:認証サーバーのエンドポイントのURLを指定します。
- リフレッシュ間隔:新しいWebトークンを取得するためにWebトークンを更新する間隔を指定します。
トークンリクエスト設定:トークンをリクエストするための設定を指定します。
- HTTPメソッド:WebトークンエンドポイントURLへの接続に使用するメソッド(GETまたはPOST)を指定します。POSTメソッドを選択した場合、リクエストbodyタイプとして認証サーバーに送信するリクエストデータのタイプを以下のオプションから選択するよう求められます。
- FORM:これを選択した場合は、サーバーに送信する必要があるリクエストデータを[リクエストbody]フィールドに1行ずつ入力します。
入力例:username=adminuname&password=adminpasswd
- テキスト:これを選択した場合は、サーバーに送信する必要があるリクエストデータをテキスト形式で[リクエストbody]フィールドに入力します。
- XML:これを選択した場合は、サーバーに送信する必要があるリクエストデータをXML形式で[リクエストbody]フィールドに入力します。
入力例:<credentials>
<username>adminuname</username>
<password>adminpasswd</password>
</credentials> - JSON:これを選択した場合は、サーバーに送信する必要があるリクエストデータをJSON形式で[リクエストbody]フィールドに入力します。
入力例:{
"username": "adminuname",
"password": "adminpasswd"
}
- FORM:これを選択した場合は、サーバーに送信する必要があるリクエストデータを[リクエストbody]フィールドに1行ずつ入力します。
- HTTPリクエストヘッダー:トークンリクエストに必要な追加のヘッダーを指定します。
- 認証情報:Basic/NTLMベースの認証を必要とするURLのユーザー名とパスワードを指定します。
- クライアント証明書:トークンを取得するために必要なクライアント証明書を指定します。PKCS#12(.p12)のみサポートされます。
トークンの抽出:レスポンス内のトークン値が抽出され、要求URIで認証が必要な他の監視タイプの要求パラメータ、ヘッダーなどをカスタマイズするためにさらに使用できます。
- レスポンス形式:Webトークンから値を抽出する形式を指定します(正規表現、JSONPath式、またはXPath式)。
レスポンスヘッダーに存在する値も読み取ることができます。
- トークンレスポンスパス:トークンを含む正規表現、JSONPath式、XPath式、またはレスポンスヘッダー名を指定します。
監視データ収集のトークン設定:
- データ収集リクエストメソッド:モニター内のAPIエンドポイントを認証するためのWebトークンの送信方法を選択します。パラメータフィールドでは、カスタマイズされた命名法を使用できます。
値フィールドの代わりにWebトークン値が代入されます。${WebToken}
- Basic認証:Webトークンはリクエストヘッダーとして送信されます。ベアラートークンは、以下の名前と値の構文で送信する必要があります。
Authorization: Bearer ${WebToken}
- URIパラメーター:WebトークンはURIクエリパラメータで送信されます。以下の構文を使用する必要があります。
token=${WebToken}
トークンレスポンスパスの設定
以下に、トークンエンドポイントから期待できるさまざまなレスポンス形式を示します。
JSON
{
"access_token":"XXXXXXX",
"token_type":"bearer",
"expires_in":4289,
"issued":"Mon, 20 Jun 2021 09:39:44 GMT",
"list":[
{
"tokenName":"StudentAuth",
"tokenValue":"3q898sejhg"
},
{
"tokenName":"ProfAuth",
"tokenValue":"$97q3ekh"
},
{
"tokenName":"StaffAuth",
"tokenValue":"93&3jhiudz"
}
]
}
以下に、上記のサンプルJSONデータから抽出されたJSONレスポンスパスとそれぞれの値の例をいくつか示します。
| レスポンスパス | Webトークンの値 |
|---|---|
| access_token | XXXXXXX |
| token_type | bearer |
| list |
"list":[
{
"tokenName":"StudentAuth",
"tokenValue":"3q898sejhg"
},
{
"tokenName":"ProfAuth",
"tokenValue":"$97q3ekh"
},
{
"tokenName":"StaffAuth",
"tokenValue":"93&3jhiudz"
}
]
|
| list[1].tokenValue | 3q898sejhg |
| list[0].tokenName | StudentAuth |
| list[2].tokenValue | 3jhiudz |
XML
<petstore>
<animals>
<pet id="1">
<type>Dog</type>
<name no="1">Richie</name>
<age>8</age>
</pet>
<pet id="2">
<type>Cat</type>
<name no="2">Sky</name>
<age>4</age>
</pet>
</animals>
<birds>
<bird id="1">
<name no="3">Snow</name>
<age>5</age>
</bird>
<bird id="2">
<name no="4">Ray</name>
<age>7</age>
</bird>
</birds>
</petstore>
以下に、上記のサンプルXMLデータに対するXPATH式と結果の例をいくつか示します。
| XPath式 | 説明 | 結果 |
|---|---|---|
| / | ドキュメントノードを選択 | 出力は入力として与えられたXMLコンテンツと同じになります。 |
| /petstore/animals/pet | 「animals」ノードの直接の子である「pet」要素をすべて選択します。 |
<pet id="1">
<type>Dog</type>
<name no="1">Richie</name>
<age>8</age>
</pet>
<pet id="2">
<type>Cat</type>
<name no="2">Sky</name>
<age>4</age>
</pet>
|
| //name[@no] | 「no」属性を持つすべての「name」要素を選択します。 |
<name no="1">Richie</name> <name no="2">Sky</name> <name no="3">Snow</name> <name no="4">Ray</name> |
| /petstore//bird[last()] | 最後の「bird」の要素を選択します。 |
<bird id="2">
<name no="4">Ray</name>
<age>7</age>
</bird>
|
| sum(//age) | 年齢要素の値の合計を選択します。 | 24 |
| string-length(//pet[1]/name) | 最初の「ペット」要素の名前の値の長さを選択します。 | 6 |
| //pet[1]/name/text() | 最初の「ペット」要素の名前のテキスト値を選択します。 | Richie |
| count(/petstore//pet) | 「ペット」要素の数を選択します。 | 2 |
Text
レスポンス全体がトークンとして扱われます。
レスポンスヘッダー
トークンレスポンスパスで指定されたヘッダー名は実際のトークン値です。
例:
レスポンスパス:tokenvalue
トークン値:ebfb7ff0-b2f6-41c8-bef3-4fba17be410c