私はファイアウォール、ユーザプロバイダ、フォーム経由のログイン(FOSUserBundle)、カスタムトークン認証(アプリケーション用)、さらにはHTTP基本認証アプリケーションのもちろん、それらのうちの1つだけが一度に使用されます。特定の領域は、それらのプロバイダに接続する異なるファイアウォールによって保護されます。これは巨大なセキュリティホールであるとしてsecurity.yml
symfony httpユーザ認証なしのdev環境の基本認証
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
providers:
authentication_provider:
entity:
class: MyAppBundle:User
property: apiKey
fos_userbundle:
id: fos_user.user_provider.username
...
の
エキスは、通常、ライブシステムにはapp_dev.php
はありません。しかし、必要に応じてライブシステムのデバッグを行うのにも最適な方法です。私が持っていたアイデアは、追加のhttp基本認証で開発環境を保護することでした。この方法では、開発環境はまだ安全ですが、必要なときにアクセスできます。
残念ながら、http基本認証を一般的なサイトに追加してログインすると、ユーザーはSymfonyアプリケーションで認証されるため、動作しませんでした。これは当然のことではありませんが、アプリケーションはフォームのログインユーザーと基本的な認証ユーザーとを区別することができないため、アイデアのための認証を行うことはできませんが、ユーザーの種類を区別できますこれはホールアプリケーションでチェックする必要があるため追加したくない複雑なレイヤーになります)。
私の質問は、認証部分を持たないSymfony固有のhttp基本認証を持つことができるかどうかです。したがって、基本認証を完了した後でも、ブラウザはhttp基本認証を送信していますが、あなたはまだ匿名であり、認証されるためにはフォームなどでログインしなければなりません。
EDIT:これはApacheのようなサーバー設定でSymfonyの外でこれを設定する方法があることを知っていますが、私はSymfonyの解決策を探しています(ローカルで変更をホストせずに動作し、 、...)
EDIT 2:深いダイビングの後、私はすべての認証プロセスがある種のトークンを返さなければならないことが分かりました。したがって、プロバイダを上書きしてAnonymus Tokenを返すだけでは簡単ではないかもしれません。