2

Symfony2でユーザー名またはIPを介して認証することは可能ですか?ユーザー名とパスワードまたはIPアドレスでログインできることは知っていますが、特定のIPアドレスから自動的に、そうでない場合はユーザー名とパスワードで認証することもできますか?

例:

10.1.1.1から来た場合、ADMIN_ROLEを取得したい

別のIPから来た場合は、ユーザー名とパスワードを使用してログインする必要があります

これが私のsecurity.ymlです

        secured_area:
        pattern:    ^/
        anonymous: ~
        form_login:
            check_path: /login_check
            login_path: /login
        logout:
            path:   /logout
            target: /login
        #anonymous: ~
        #http_basic:
        #    realm: "Secured Demo Area"

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_ADMIN  }
    - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 10.1.1.1 }

手伝ってくれてありがとう!

4

2 に答える 2

2

可能ですが、安全ではありません。連鎖認証プロバイダーを実行できます(security.ymlのファイアウォールセクション)

あなたの場合、IP認証方式用にカスタムのものを実装する必要があります。カスタム認証プロバイダーを作成するドキュメントは、Symfonyクックブックにあります(欲しい:http ://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html )

カスタムプロバイダーとSymfony2フォーム認証プロバイダーをチェーンする必要があります。

于 2012-07-06T06:30:02.973 に答える
2

これは Symfony では不可能だと思います。IP アドレスが偽造される可能性があるため、これはかなりのセキュリティ ホールです。そのため、別のログイン方法を検索することをお勧めします。

これに関する詳細情報が必要な場合:

http://en.wikipedia.org/wiki/IP_address_spoofing

IP による承認の代わりに、ユーザーの認証に使用できる証明書を提供してみませんか? そのようにして、着信要求には、公開されていない知識 (証明書) が必要ですか?

于 2012-07-05T09:18:47.903 に答える