内置身份验证提供者

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

内置身份验证提供者

如果您需要在应用程序中添加身份验证,我们建议使用后卫的身份验证因为它让你完全控制整个过程。

但是,Sy欧宝娱乐app下载地址mfony还提供了许多内置的身份验证提供者:这些系统更容易实现,但更难定制。如果你的身份验证用例与其中之一完全匹配,它们是一个很好的选择:

HTTP基本认证

HTTP基本认证使用浏览器中的对话框询问凭据(用户名和密码)。凭证发送时没有任何哈希或加密,因此建议与HTTPS一起使用。

若要支持HTTP基本身份验证,请添加http_basic防火墙的关键:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9
#配置/包/ security.yaml安全:#……防火墙:主要:#……http_basic:域:担保区域

就是这样!欧宝娱乐app下载地址Symfony现在将监听任何HTTP基本身份验证数据。要加载用户信息,它将使用您配置的用户提供者

注意:不能使用注销http_basic.即使你注销了,你的浏览器也会“记住”你的凭证,并会在每次请求时发送它们。

X.509客户端证书认证

当使用客户端证书时,您的web服务器将自己完成所有的身份验证过程。例如,对于Apache,您将使用SSLVerifyClient要求指令。

在安全配置中为特定防火墙启用x509身份验证:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9
#配置/包/ security.yaml安全:#……防火墙:主要:#……x509:供应商:your_user_provider

缺省情况下,防火墙提供SSL_CLIENT_S_DN_Email变量设置为用户提供程序,并设置SSL_CLIENT_S_DN作为证书PreAuthenticatedToken.属性可以覆盖这些参数用户凭证分别在x509防火墙配置中的关键字。

请注意

身份验证提供者将只通知用户提供者发出请求的用户名。类引用的“用户提供程序”将需要创建(或使用)提供者配置参数(your_user_provider配置例中)。这个提供程序将把用户名转换为您选择的User对象。有关创建或配置用户提供程序的更多信息,请参见:

基于REMOTE_USER的认证

有很多认证模块,比如auth_kerb对于Apache,使用REMOTE_USER环境变量。应用程序可以信任这个变量,因为身份验证发生在请求到达它之前。

来配置Symfony欧宝娱乐app下载地址REMOTE_USER环境变量,在安全配置中启用相应的防火墙:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7
#配置/包/ security.yaml安全:防火墙:主要:#……remote_user:供应商:your_user_provider

防火墙随后将提供REMOTE_USER您的用户提供程序的环境变量。属性可以更改所使用的变量名用户输入remote_user防火墙的配置。

请注意

与X509身份验证一样,您需要配置一个“用户提供程序”。看到前面的说明获取更多信息。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。