• /
  • ログイン
  • 無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

認証付きのサイトを扱う

シンセティック・モニタリングは、様々な認証メカニズムをサポートしています。選択したモニターの種類に応じて、Basic、Digest、NTLM、NTLMv2が含まれます。

モニタータイプ別の対応認証

様々な のモニタータイプ のサポートは、お客様のサイト構成によって異なります。

合成モニタータイプ

ベーシック

ダイジェスト

NTLM

NTLMv2

Ping

シンプルブラウザ

スクリプト化ブラウザ

APIテスト

ヒント

NTLM と NTLMv2 については、合成モニタリングでは Linux 環境で Chrome ブラウザを使用しているため、設定がこのクライアントサイドの環境に対応している必要がある。また、URIエンコードされたクレデンシャルを許可する必要がある。

認証情報の提供

モニターは、 http(s)://username:password@site.com のように、要求されたURLに認証資格をエンコードして提供します。これを行うには、 encodeURIComponent('string') のJavaScript関数をスクリプトで使用します。たとえば、以下のようになります。

var username = encodeURIComponent('username');
var password = encodeURIComponent('password');
var url = 'https://' + username + ':' + password + '@site.com';

pingやシンプルなブラウザモニタの値をエンコードするには、 以下の手順に従ってください

完全なURL http(s)://username:password@site.com は、対応する合成物のチェックデータにプレーンテキストとして記録されます。このモニターの結果を表示すると、このURLが表示されます。

コード例

ここでは、いくつかのモニタータイプのコード例を紹介します。

スクリプト化ブラウザ

$browser.get('https://username:password@site.com').then(function(){
  $browser.takeScreenshot();
});
$browser.get('https://username@domain.com:password@site.com').then(function(){
  $browser.takeScreenshot();
});

APIテスト

$http.get('https://username:password@site.com', function(err, resp, body){
  console.log(err, resp, body);
});

NTLM認証に関する問題のトラブルシューティング

New Relic が NTLM エンドポイントに対して適切に認証できるかどうかは、 curl またはスクリプトによる API モニターで確認することができます。エンドポイントにアクセスできるホストまたはロケーションを使用する必要があります。

カール

これを行うには、以下のコマンドを実行します。URLはテストしたいエンドポイントに置き換えてください。

$ curl -v --ntlm http://example.com

このコマンドの出力には、以下のような レスポンス ヘッダが含まれており、サーバが有効な認証機構として NTLM over HTTP を提供していることを示している。

WWW-Authenticate: NTLM

スクリプトによるAPIモニター

新しいAPIテストモニターを作成し、エンドポイントにアクセスできる場所に割り当てます。URLを置換し、以下のスクリプトを検証します。このスクリプトは、すべてのレスポンス・ヘッダーをスクリプト・ログに出力します。

$http.get('https://www.newrelic.com',
{
followRedirect: false
},
// Callback
function (err, response, body) {
console.log(response.headers);
}
);

WWW-Authenticate レスポンスヘッダに NTLM が含まれていることを確認する。

リダイレクト

NTLM認証の失敗は、 $browser.get の呼び出しでリダイレクトが発生することが原因である可能性があります。モニター結果のタイムライン表示で、リクエストのレスポンスコードを確認してください。リクエストがリダイレクトされている場合、最初の $browser.get の呼び出しで、代わりにリダイレクト先の場所をURLとして使用する必要があるかもしれません。

問題を作成する
Copyright © 2022 New Relic Inc.