-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[Cookbook][Security] Added doc for x509 pre authenticated listener #3913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
6c9a204
f5a6d58
83c40e9
01d18fe
57cc957
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
.. index:: | ||
single: Security; Pre authenticated providers | ||
|
||
Using pre Authenticated Security Firewalls | ||
========================================== | ||
|
||
A lot of authentication modules are already provided by some webservers, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think "web servers" is a bit more correct? |
||
including Apache. These modules generally set some environment variables | ||
that can be used to determine which user is accessing your application. Out of the | ||
box, Symfony supports most authentication mechanisms. | ||
These requests are called *pre authenticated* requests because the user is already | ||
authenticated when reaching your application. | ||
|
||
.. note:: | ||
|
||
An authentication provider will only inform the user provider of the username | ||
that made the request. You will need to either use an available | ||
:class:`Symfony\\Component\\Security\\Core\\User\\UserProviderInterface` | ||
or implement your own: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm, and I'm thinking that we should move this down to the end of the entry, and mix it with the conversation about And what is the use-cause for needing Thanks! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't know exactly what use-case there is for the credentials in the I think @fabpot implemented the X509 auth and might be able to answer that question. |
||
|
||
* :doc:`/cookbook/security/entity_provider` | ||
* :doc:`/cookbook/security/custom_provider` | ||
|
||
X.509 Client Certificate Authentication | ||
--------------------------------------- | ||
|
||
When using client certificates, your webserver is doing all the authentication | ||
process itself. With Apache, for example, you would use the | ||
``SSLVerifyClient Require`` directive. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd reword this a bit:
|
||
|
||
Enable the x509 authentication for a particular firewall in the security configuration: | ||
|
||
.. configuration-block:: | ||
|
||
.. code-block:: yaml | ||
|
||
# app/config/security.yml | ||
security: | ||
firewalls: | ||
secured_area: | ||
pattern: ^/ | ||
x509: | ||
provider: your_user_provider | ||
|
||
.. code-block:: xml | ||
|
||
<!-- app/config/security.xml --> | ||
<config> | ||
<firewall name="secured_area" pattern="^/"> | ||
<x509 provider="your_user_provider"/> | ||
</firewall> | ||
</config> | ||
|
||
.. code-block:: php | ||
|
||
// app/config/security.php | ||
$container->loadFromExtension('security', array( | ||
'firewalls' => array( | ||
'secured_area' => array( | ||
'pattern' => '^/' | ||
'x509' => array( | ||
'provider' => 'your_user_provider', | ||
), | ||
), | ||
), | ||
)); | ||
|
||
By default, the firewall provides the ``SSL_CLIENT_S_DN_Email`` variable to | ||
the user provider, and sets the ``SSL_CLIENT_S_DN`` as credentials in the | ||
:class:`Symfony\\Component\\Security\\Core\\Authentication\\Token\\PreAuthenticatedToken`. | ||
You can override these by setting the ``user`` and the ``credentials`` keys | ||
in the x509 firewall configuration respectively. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also needs to be added to
/cookbook/map.rst.inc
.