Bearer 認証は、HTTP リクエストヘッダー内のトークンを使用して ID を検証します。このメソッドは、API やマイクロサービスなど、安全なアクセスを必要とするシナリオに最適です。カスタムドメイン名を関数にアタッチした後、Bearer 認証用のトークンを設定できます。クライアントがリクエストを行う際、リクエストヘッダーに有効なトークンを含める必要があります。クライアントは、リクエストトークンがカスタムドメイン名に設定されたトークンと一致する場合にのみ、関数にアクセスできます。
注意
Bearer 認証を設定する場合、本番環境では HTTPS プロトコルを使用してください。HTTP プロトコルは開発およびテスト専用です。Function Compute (FC) は、HTTP プロトコルを介したトークン漏洩に起因するセキュリティリスクについて責任を負いません。
Function Compute は、設定したトークン情報を保存および検証するだけです。トークンの生成とそのライフサイクルの管理は、お客様の責任で行ってください。システムのセキュリティを確保するために、トークンを定期的にローテーションしてください。これは、トークンが漏洩したり、セキュリティリスクをもたらしたりする場合に特に重要です。
制限事項
各トークンは、単一のカスタムドメイン名内でも、異なるカスタムドメイン名間でも一意である必要があります。セキュリティ問題を回避するために、トークン値として共通パターンや単純な組み合わせを使用しないでください。
各トークンは 32~128 文字の長さである必要があります。使用できる文字は、'A-Z'、'a-z'、'0-9'、'+'、'/'、'='、'-'、'~'、'.' のみです。トークンを数字またはハイフン (-) で始めることはできません。
カスタムドメイン名ごとに 1~20 個のトークンを設定できます。
前提条件
関数を作成し、それにカスタムドメイン名をアタッチしてあること。
手順
ステップ 1: Bearer 認証を設定する
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のメニューバーでリージョンを選択します。ドメイン名リストで、ターゲットドメイン名を見つけ、[操作] 列の [編集] をクリックします。
カスタムドメイン名の編集ページで、[認証設定] を展開します。[認証方法] を [Bearer 認証] に設定し、[認証トークン] を入力してから、[保存] をクリックします。
次の例は、[認証トークン] に必要なフォーマットを示しています。
{ "tokens": [ { "tokenName": "tokenName-7jd", "enable": true, "tokenData": "token-dfi34ij25gd1ed6ec80g35****" }, { "enable": true, "tokenData": "token-8g7f2a2c9fc23hid82593****", "tokenName": "tokenName-20i" } ] }この例は、複数のトークンを設定する方法を示しています。トークンを 1 つだけ設定する場合は、トークンオブジェクトを 1 つだけ含めます。
各トークンが一意であることを確認してください。
トークンを無効にするには、対応する
enableフィールドをfalseに設定します。
ステップ 2: 設定を検証する
このトピックでは、cURL を例として、`Authorization: Bearer <token>` ヘッダーを含む HTTP リクエストを送信する方法を示します。コマンドの構造は次のとおりです。
curl --data your-data -X access-method -H "Authorization: Bearer <token>" https://<your-custom-domain>例:
curl -X POST -H "Authorization: Bearer token-dfi34ij25gd1ed6ec80g35****" example.comよくある質問
Bearer 認証を有効にした後、エンドポイントにアクセスすると Authorization header is expected but missing というメッセージが表示されるのはなぜですか?
このメッセージは、クライアントがカスタムドメイン名を使用して関数にアクセスする際に、Authorization ヘッダーを含めなかったことを示しています。リクエストに Authorization: Bearer <token> を追加してください。
Bearer 認証を有効にした後、エンドポイントにアクセスすると access denied due to invalid bearer token というエラーが表示されるのはなぜですか?
このエラーは、クライアントがカスタムドメイン名経由で関数にアクセスする際に、無効なトークンを提供したことを示しています。トークンが正しいことを確認してください。トークンは、ステップ 1: Bearer 認証を設定するで設定した [認証トークン] の tokenData フィールドの値と一致する必要があります。
Bearer 認証を有効にすると追加料金が発生しますか?
いいえ、発生しません。Function Compute のゲートウェイ関連機能の料金は、関数の呼び出しの課金に含まれています。したがって、Bearer 認証を有効にしても追加料金は発生しません。