異なる URL で HTTPS や HTTP を強制化させる方法¶
セキュリティの設定で、サイトの一部に HTTPS プロトコルの使用を強制化させることができます。方法は、 access_control ルールに requires_channel のオプションを使用することで行います。例えば、 /secure から始まる全ての URL に HTTPS を強制化させるには、次のコンフィギュレーションを使用してください。
-
YAML
access_control: - path: ^/secure roles: ROLE_ADMIN requires_channel: https
-
XML
<access-control> <rule path="^/secure" role="ROLE_ADMIN" requires_channel="https" /> </access-control>
-
PHP
'access_control' => array( array('path' => '^/secure', 'role' => 'ROLE_ADMIN', 'requires_channel' => 'https' ), ),
ログインフォーム自体は、ユーザを認証させる必要があるので、匿名アクセスが可能できなければなりません。 HTTPS を使用してそれを実現するには、 access_control ルールに IS_AUTHENTICATED_ANONYMOUSLY 権限を使用します。
-
YAML
access_control: - path: ^/login roles: IS_AUTHENTICATED_ANONYMOUSLY requires_channel: https
-
XML
<access-control> <rule path="^/login" role="IS_AUTHENTICATED_ANONYMOUSLY" requires_channel="https" /> </access-control>
-
PHP
'access_control' => array( array('path' => '^/login', 'role' => 'IS_AUTHENTICATED_ANONYMOUSLY', 'requires_channel' => 'https' ), ),
ルーティングコンフィギュレーションに HTTPS の使用を指定することも可能です。詳細は、 ルートで常に HTTPS を強制させる方法 を参照してください。