Function Compute では、カスタムドメイン名に Basic 認証を設定して、ドメインレベルでアクセス権限を制御できます。これにより、権限を付与されたユーザーは、カスタムドメイン名を通じて関数サービスに安全にアクセスできます。
背景情報
カスタムドメイン名に対して Basic 認証を有効にすると、クライアントは設定されたユーザー名とパスワードを Base64 でエンコードしてリクエストに含める必要があります。関数サービスへのアクセスは、認証情報が正常に検証された後にのみ許可されます。この機能は、次のシナリオで役立ちます。
example.comなどのカスタムドメイン名を通じて関数サービスにアクセスする必要がある。個々のトリガーではなく、ドメインレベルでアクセス権限を管理する必要がある。
暗号化された HTTPS チャネルで認証情報を保護する必要がある。
前提条件
関数を作成し、その関数にカスタムドメイン名をアタッチしていること。
制限
カテゴリ | ルール |
ユーザー数 | 各カスタムドメイン名に最大 20 人のユーザーを設定できます。 |
ユーザー名の規則 | 12~128 文字。ユーザー名は文字で始まる必要があり、ハイフン ( |
パスワードの強度 | 12~128 文字。パスワードには、大文字、小文字、数字、および次の特殊文字の少なくとも 1 つを含める必要があります: |
セキュリティ要件 | - パスワードを再利用しない。 - 単純な組み合わせを使用しない。 - パスワードを定期的に変更する。 |
プロトコル要件 | 本番環境では HTTPS を有効にする必要があります。HTTP はテスト専用です。HTTP 経由で発生した認証情報の漏洩については、お客様が責任を負うものとします。 |
手順
ステップ 1: カスタムドメイン名の Basic 認証を設定する
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のメニューバーでリージョンを選択します。[ドメイン] ページで、目的のカスタムドメイン名を見つけ、[アクション] 列の [編集] をクリックします。
カスタムドメイン名の設定ページで、[認証設定] を展開し、次のオプションを設定して、[保存] をクリックします。
[認証方法] で、[Basic 認証] を選択します。
[ユーザーリスト]: [ユーザーの追加] をクリックし、[ユーザー名] と [パスワード] を入力します。ユーザー名とパスワードの要件の詳細については、「制限」をご参照ください。

設定が有効になるまで 1 分間待ちます。
ステップ 2: Basic 認証を検証する
Base64 認証情報を生成します。 コマンドラインを使用して、ユーザー名とパスワードの Base64 エンコーディングを生成します。プレースホルダーの値を実際の値に置き換えます。
# Linux/macOS (-n パラメーターを使用してください) echo -n "username:password" | base64 # 出力例: dXNlcm5hbWU6cGFzc3dvcmQ=認証リクエストを行います。 curl コマンドを使用してアクセスをテストします。必ず HTTPS プロトコルを使用してください。
コマンドの例を次に示します。
curl -X GET "yourCustomdomain" -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ="パラメーター:
例の
yourCustomdomainを実際のカスタムドメイン名に置き換えます。`Authorization` リクエストヘッダーの値は `Basic` で始まり、その後にスペースが続く必要があります。
よくある質問
Basic 認証を有効にした後、「authorization required」というメッセージが表示されるのはなぜですか?
このメッセージは、カスタムドメイン名を通じて関数にアクセスするリクエストに有効な `Authorization` ヘッダーが含まれていないことを示します。リクエストに `Authorization` ヘッダーが含まれていること、およびその値のユーザー情報が正しいことを確認してください。
Basic 認証を有効にした後、「basic authorization xxx is not a Base64-encoded string」というメッセージが表示されるのはなぜですか?
このメッセージは、リクエストの `Authorization` ヘッダーの値が有効な Base64 エンコードされた文字列ではないことを示します。
Basic 認証を有効にした後、「Authorization header must start with Basic」というメッセージが表示されるのはなぜですか?
RFC 7617 によると、クライアントが Basic 認証を使用するリクエストを行う場合、リクエストには `Authorization` ヘッダーを含める必要があります。このヘッダーの値は `Basic` で始まり、その後にスペースが続く必要があります。
Basic 認証を有効にすると追加料金は発生しますか?
いいえ、発生しません。Function Compute は、関数の呼び出し回数に基づいてゲートウェイ関連の機能に対して課金します。したがって、Basic 認証を有効にしても追加料金は発生しません。