独自の認証サーバをお持ちの場合、リモート認証を設定して、ユーザーリクエストをその認証サーバに転送して認証を行うことができます。
機能概要
リモート認証は URL 署名と似ています。どちらも不正アクセスからリソースを保護するために使用されます。認証されたユーザーのみが POP からリソースを取得できます。URL 署名とリモート認証の違いは次のとおりです。
URL 署名:ドメイン名に対して作成された認証ルールを POP に適用すると、POP が認証プロセスを完了します。
リモート認証:自己管理の認証サーバを指定できます。POP がクライアントリクエストを受信すると、リクエストは指定された認証サーバにリダイレクトされます。
次の図は、リモート認証の仕組みを示しています。
番号 | 説明 |
1 | クライアントが POP にリクエストを送信します。リクエストには認証に使用されるパラメーターが含まれています。例:
|
2 | POP はリクエストを受信し、認証サーバにリダイレクトします。リクエストが認証サーバにリダイレクトされる前に POP によって処理されるかどうかを指定できます。例:
|
3 | 認証サーバはリクエスト内のパラメーターをチェックし、認証結果を POP に返します。 |
4 | POP は認証結果に基づいて対応するアクションを実行し、クライアントにデータを返します。 例:
|
注意事項
リモート認証を設定した後でも、認証に失敗したリクエストは POP に到達する可能性があります。ただし、POP はリクエストを拒否し、HTTP 403 ステータスコードを返します。これらのリクエストは、CDN のログに記録されます。
リモート認証では、ユーザーリクエストは指定された認証サーバに転送され、認証サーバがユーザーリクエストを検証します。POP が悪意のあるリクエストをブロックする際に発生するデータ転送量に対して課金されます。クライアントが HTTPS 経由でリソースをリクエストする場合、HTTPS リクエストに対しても課金されます。
操作手順
CDN コンソールにログインします。
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
ドメイン名 ページで、対象のドメイン名を見つけ、操作 列の 管理 をクリックします。
ドメインのナビゲーションウィンドウで、リソースアクセス制御 をクリックします。
[リモート認証] タブをクリックします。
[リモート認証] をオンにし、プロンプトに従ってパラメーターを設定します。
説明リモート認証を有効にすると、すべてのユーザーリクエストが認証サーバにリダイレクトされます。多数のリクエストが POP に送信される場合は、認証サーバがパフォーマンスを損なうことなくトラフィックの急増に対応できることを確認してください。
パラメーター
説明
[認証サーバアドレス]
認証サーバのアドレス。このアドレスはパブリックにアクセス可能である必要があります。CDN は指定されたサーバアドレスとアドレス形式をチェックします。
サポートされている形式
HTTP および HTTPS アドレスがサポートされています。例:
http://example.com/auth
https://example.com/auth
http://192.0.2.1/auth
https://192.0.2.1/auth
アドレス要件
サーバアドレスに 127.0.0.1 または localhost を含めることはできません。含めた場合、サーバアドレスは無効と見なされます。
リクエストメソッド
認証サーバがサポートするリクエストメソッド。有効な値:[GET]、[HEAD]、[POST]。デフォルト値:GET。
ファイルタイプ
[すべて]:認証サーバはすべてのファイルタイプをチェックします。
[指定]:認証サーバは指定されたファイルタイプのみをチェックします。
1 つ以上のファイルタイプを指定できます。 複数のファイルタイプを指定する場合は、縦棒 (|) で区切ります。 例:mp4|flv。
ファイルタイプでは大文字と小文字が区別されます。 たとえば、.jpg と JPG は異なるファイルタイプと見なされます。
URL 署名パラメーター
保持するパラメーター
認証サーバにチェックさせたい URL パラメーター。有効な値:[すべてのパラメーターを保持]、[指定したパラメーターを保持]、[すべての URL パラメーターを削除]。
保持するパラメーターを複数指定する場合は、パラメーターを縦棒 (|) で区切ります。例:user|token。
パラメーターでは大文字と小文字が区別されます。たとえば、key と KEY は異なるパラメーターと見なされます。
カスタムパラメーター
リクエストが認証サーバにリダイレクトされる前に、リクエストの URL に追加するパラメーター。キーと値のペアを指定するか、CDN が提供する変数を選択できます。
キーと値のペアを指定する場合は、次のルールに注意してください:
キーと値のペアは縦棒 (|) で区切ります。例:token=$arg_token|vendor=ali_cdn。
値では大文字と小文字が区別されます。たとえば、key と KEY は異なる値と見なされます。
事前設定された変数を使用する場合、変数の値は、リクエストが認証サーバにリダイレクトされる前に POP に送信されるリクエストに追加されます。
たとえば、$http_host 変数を選択した場合、リクエストが認証サーバにリダイレクトされる前に、host=$http_host がリクエストの URL に追加されます。この例では、host は Host リクエストヘッダーの値です。変数の詳細については、「変数」をご参照ください。
[リクエストヘッダーで保持するパラメーター]
[保持するリクエストヘッダー]
認証サーバにチェックさせたいリクエストヘッダー。有効な値:[すべてのリクエストヘッダーを保持]、[指定したリクエストヘッダーを保持]、[すべてのリクエストヘッダーを削除]。
保持するリクエストヘッダーを複数指定する場合は、リクエストヘッダーを縦棒 (|) で区切ります。例:user_agent|referer|cookies。
リクエストヘッダーでは大文字と小文字は区別されません。たとえば、http_remote_addr と HTTP_Remote_Addr は同じリクエストヘッダーと見なされます。
説明[すべてのリクエストヘッダーを保持] を選択した場合、POP はリクエストから Host ヘッダーを削除します。リクエストの Host ヘッダーを保持したい場合は、[指定したリクエストヘッダーを保持] を選択するか、[カスタムパラメーター] を設定します。認証サーバにリダイレクトされるリクエストの Host ヘッダーは高速化ドメイン名を指定するため、POP はリクエストから Host ヘッダーを自動的に削除します。そうしないと、認証サーバがこれらのリクエストを識別できず、認証失敗を示す HTTP 404 ステータスコードなどのエラーを返す可能性があります。
カスタムパラメーター
リクエストが認証サーバにリダイレクトされる前に、リクエストヘッダーに追加するパラメーター。キーと値のペアを指定するか、CDN が提供する変数を選択できます。
キーと値のペアを指定する場合は、次のルールに注意してください:
複数のリクエストヘッダーは縦棒 (|) で区切ります。例:User-Agent=$http_user_agent|vendor=ali_cdn。
リクエストヘッダーでは大文字と小文字は区別されません。たとえば、http_remote_addr と HTTP_Remote_Addr は同じリクエストヘッダーと見なされます。
事前設定された変数を使用する場合、変数の値は、リクエストが認証サーバにリダイレクトされる前に POP に送信されるリクエストに追加されます。
たとえば、$http_host 変数を選択した場合、リクエストが認証サーバにリダイレクトされる前に、host=$http_host がリクエストの URL に追加されます。この例では、host は Host リクエストヘッダーの値です。変数の詳細については、「変数」をご参照ください。
[返す HTTP ステータスコード]
認証に成功
説明
このパラメーターは、リクエストが認証に成功した場合に認証サーバが返す HTTP ステータスコードを指定します。複数のステータスコードを指定できます。複数のステータスコードはコンマ (,) で区切ります。
例
このパラメーターを
200,206に設定すると、認証サーバは認証に成功したクライアントリクエストに対して HTTP ステータスコード200または206を POP に返します。例外処理
認証サーバから返された HTTP ステータスコードがリクエストの認証成功または失敗を示さない場合、POP はリクエストを許可します。これにより、例外によってリクエストがブロックされることがなくなります。
認証失敗
説明
このパラメーターは、リクエストが認証に失敗した場合に認証サーバが返す HTTP ステータスコードを指定します。複数のステータスコードを指定できます。複数のステータスコードはコンマ (,) で区切ります。
例
HTTP ステータスコードを
400,403に設定すると、認証サーバは認証に失敗したクライアントリクエストに対して HTTP ステータスコード400または403を POP に返します。例外処理
認証サーバから返された HTTP ステータスコードがリクエストの認証成功または失敗を示さない場合、POP はリクエストを許可します。これにより、例外によってリクエストがブロックされることがなくなります。
その他のステータスコードを許可
[はい]:認証サーバから返された HTTP ステータスコードがリクエストの認証成功または失敗を示さない場合、POP はリクエストを許可します。これにより、例外によってリクエストがブロックされることがなくなります。
説明例:
認証に成功したリクエストに指定された HTTP ステータスコードが 200 であるにもかかわらず、認証サーバがリクエストに対して HTTP 201 ステータスコードを返した場合、POP はリクエストを許可します。
認証に失敗したリクエストに指定された HTTP ステータスコードが 403 であるにもかかわらず、認証サーバがリクエストに対して HTTP 404 ステータスコードを返した場合、POP はリクエストを許可します。
[いいえ]:認証サーバから返された HTTP ステータスコードがリクエストの認証成功または失敗を示さない場合、POP はリクエストを拒否します。
[認証失敗時のレスポンス]
カスタム HTTP ステータスコード
POP が認証サーバからリクエストの認証失敗を示す HTTP ステータスコードを受信した後に、POP からクライアントに返される HTTP ステータスコード。
[カスタム HTTP ステータスコード] を 403 に設定した場合、POP は認証に失敗したリクエストに対して HTTP 403 ステータスコードをユーザーに返します。
認証タイムアウト設定
タイムアウト
タイムアウト期間は、POP がリクエストを認証サーバにリダイレクトしたときに開始されます。タイムアウト期間は、POP が認証サーバから認証結果を受信したときに終了します。タイムアウト期間はミリ秒単位で測定されます。タイムアウト期間は最大 3,000 ミリ秒まで設定できます。
タイムアウト後のアクション
リクエストの認証がタイムアウトしたときに POP に実行させたいアクション。有効な値:[許可] と [拒否]。
[許可]:リクエストの認証がタイムアウトした場合、POP はリクエストを許可します。
[拒否]:リクエストの認証がタイムアウトした場合、POP はリクエストを拒否し、[カスタム HTTP ステータスコード] で指定された HTTP ステータスコードをクライアントに返します。
OK をクリックします。
リモート認証を設定した後、[リモート認証] タブでリモート認証の設定を変更したり、リモート認証を無効にしたりできます。
変数
カスタムパラメーターを追加する際に、CDN が提供する変数を選択できます。次の表に変数を示します。
変数 | 説明 |
$http_host | Host ヘッダーの値。 |
$http_user_agent | User-Agent ヘッダーの値。 |
$http_referer | Referer ヘッダーの値。 |
$http_content_type | Content-Type ヘッダーの値。 |
$http_x_forward_for | X-Forwarded-For ヘッダーの値。 |
$remote_addr | クライアントの IP アドレス。 |
$scheme | リクエストのプロトコル。 |
$server_protocol | リクエストのプロトコルバージョン。 |
$uri | リクエストの元の URI。 |
$args | リクエスト URL のクエリ文字列。クエリ文字列には疑問符 (?) は含まれません。 |
$request_method | リクエストメソッド。 |
$request_uri | uri+'?'+args の内容。 |