我正在创建一个应用程序,用户可以使用他们的移动设备从菜单中订购项目。要求是用户不需要帐户(用户名或密码)即可访问服务。用户将通过他们的 ip 和 mac 地址进行身份验证。
所以我的问题是如何将这种类型的身份验证构建到 symfony 中?请记住,我仍然希望能够使用常规防火墙来保护 url,例如:
firewalls:
client_area:
pattern: ^/client
我已经在谷歌上搜索了这个问题的答案,但无济于事。
我正在创建一个应用程序,用户可以使用他们的移动设备从菜单中订购项目。要求是用户不需要帐户(用户名或密码)即可访问服务。用户将通过他们的 ip 和 mac 地址进行身份验证。
所以我的问题是如何将这种类型的身份验证构建到 symfony 中?请记住,我仍然希望能够使用常规防火墙来保护 url,例如:
firewalls:
client_area:
pattern: ^/client
我已经在谷歌上搜索了这个问题的答案,但无济于事。
对于使用 IP,您可以使用内置的voters。该示例用于黑名单,但您可以将其调整为白名单。不需要进一步的身份验证,只需一个有效的(指定的)IP。
该列表必须在配置中指定,但您也可以动态生成该列表,从文件中加载它,从表中读取它,...
如果你想同时使用 IP 和 MAC 地址,你必须自己做一些事情。据我所知,Symfony2 中没有内置设置。
您可以通过编写新的身份验证提供程序来实现新的安全性。
查看 symfony.com 上的这个食谱条目。这是一个关于创建自己的身份验证机制的非常有用的线程:
在该示例中,您会看到他们使用 HTTP X-WSSE 标头进行身份验证。您可以编写自己的提供商,通过 IP 或/和 mac 地址进行身份验证。