title: Django SAML integration
body: <p>I am using Django 1.9, Python 3, running locally on Docker (for testing) <br>
  Trying to integrate <a href="https://github.com/fangli/django-saml2-auth" rel="nofollow noreferrer">django-saml2-auth</a> into my application. <br>
  Pretty much followed all the steps in the docs: <br>
  1) All installations were successful <br>
  2) New URLs were imported above the rest <br>
  3) Installed apps includes <code>'django_saml2_auth'</code> <br>
  4) <code>'SAML2_AUTH'</code> dict was placed in settings (and all attributes were mapped)<br>
  5) In the SAML2 identity provider (using OneLogin), the Single-sign-on URL and Audience URI(SP Entity ID) was set to <a href="http://127.0.0.1:8000/saml2_auth/acs/" rel="nofollow noreferrer">http://127.0.0.1:8000/saml2_auth/acs/</a> <br></p>
  
  <p>What happens is that when I get to <a href="http://127.0.0.1:8000/admin" rel="nofollow noreferrer">http://127.0.0.1:8000/admin</a> the browser goes into an infinite redirect loop:</p>
  
  <pre><code>...
  [02/May/2018 15:43:06] "GET /admin/ HTTP/1.1" 302 0
  [02/May/2018 15:43:06] "GET /admin/login/?next=/admin/ HTTP/1.1" 302 0
  [02/May/2018 15:43:07] "POST /saml2_auth/acs/ HTTP/1.1" 302 0
  [02/May/2018 15:43:07] "GET /admin/ HTTP/1.1" 302 0
  [02/May/2018 15:43:07] "GET /admin/login/?next=/admin/ HTTP/1.1" 302 0
  [02/May/2018 15:43:08] "POST /saml2_auth/acs/ HTTP/1.1" 302 0
  [02/May/2018 15:43:08] "GET /admin/ HTTP/1.1" 302 0
  ...
  </code></pre>
  
  <ul>
  <li>When I disable <code>django-saml2-auth</code> I see that a staff user was created. <br></li>
  <li><p>In the <code>OneLogin</code> interface I can see that I logged in successfully. <br></p></li>
  <li><p>Overriding <code>django_saml2_auth.views.signin(r)</code>, where <code>r</code> is a <code>django.core.handlers.wsgi.WSGIRequest</code>, for <code>&lt;WSGIRequest: GET '/admin/login/?next=/admin/'&gt;</code>, and in the request, the <code>user</code> is set to <code>AnonymousUser</code>, <code>COOKIES</code> contain <code>sessionid</code> and <code>csrftoken</code>.</p></li>
  </ul>
  
  <p>I would expect that a session would start for the user that was created/fetched, and that I will get to an <code>/admin/&lt;whatever&gt;</code> page.</p>
  
  <p>I will appreciate any help in debugging this, thank you!</p>
  
  <p>EDIT: I was able to get it to work by removing <code>AUTHENTICATION_BACKENDS</code> from <code>settings.py</code>- I have 3 other backends that I use. It seems like they conflict with <code>django-saml2-auth</code>. <br>
  Is there any way to get <code>django-saml2-auth</code> to work with other backends?</p>
  
  <p>EDIT 2: Will try to integrate <a href="https://github.com/MindPointGroup/django-saml2-pro-auth" rel="nofollow noreferrer">django-saml2-pro-auth</a>, which has a backend so will not conflict. I would really appreciate some insight though.</p>
  
  <p>EDIT 3: back to EDIT 2, when I remove all the backends and they don't conflict, the log flow looks like that:</p>
  
  <pre><code>[04/May/2018 15:24:26] "GET /admin/ HTTP/1.1" 302 0
  [04/May/2018 15:24:27] "GET /admin/login/?next=/admin/ HTTP/1.1" 302
  [04/May/2018 15:26:27] "POST /saml2_auth/acs/ HTTP/1.1" 302 0
  [04/May/2018 15:26:27] "GET /admin/ HTTP/1.1" 200 38398
  </code></pre>
  
  <p>Where the last <code>GET</code> does not get redirected, with 200.</p>