異なる 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 を強制させる方法 を参照してください。

ソース



クイックリンク

コメントリスト


ご質問や翻訳不備等お気軽にコメントください。


現在、翻訳が古くなっている箇所が多くあります。1箇所、1行などほんの少量でもかまいませんので、ドキュメント翻訳にご協力いただける方を募集しています。日本 Symfony ユーザー会メーリングリストまでご連絡ください。