Metadata-Version: 2.0
Name: django-admin-sso
Version: 1.0.1
Summary: django sso solution
Home-page: http://github.com/frog32/django-admin-sso/
Author: Marc Egli
Author-email: egli@allink.ch
License: BSD License
Platform: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Dist: Django (>=1.4)
Requires-Dist: oauth2client (>=1.2)

================
Django admin SSO
================

.. image:: https://travis-ci.org/frog32/django-admin-sso.png?branch=master
    :target: https://travis-ci.org/frog32/django-admin-sso

.. image:: https://coveralls.io/repos/frog32/django-admin-sso/badge.png?branch=master
    :target: https://coveralls.io/r/frog32/django-admin-sso

.. image:: https://pypip.in/v/django-admin-sso/badge.png
    :target: https://pypi.python.org/pypi/django-admin-sso/

Django admin SSO lets users login to a django admin using an OAuth2 or an
openid provider. It then looks up the email address of the new user and looks
up the rights for them.

Installation
------------

1. Make sure you have a working django project setup.
2. Install django-admin-sso using pip::

    pip install django-admin-sso

3. Add ``admin_sso`` to ``INSTALLED_APPS`` in your ``settings.py`` file::

    INSTALLED_APPS = (
        ...
        'admin_sso',
        ...
    )

4. Add the django-admin authentication backend::

    AUTHENTICATION_BACKENDS = (
        'admin_sso.auth.DjangoSSOAuthBackend',
        'django.contrib.auth.backends.ModelBackend',
    )

5. Insert your oauth client id and secret key into your settings file::

    DJANGO_ADMIN_SSO_OAUTH_CLIENT_ID = 'your client id here'
    DJANGO_ADMIN_SSO_OAUTH_CLIENT_SECRET = 'your client secret here'

Navigate to Google's
`Developer Console <https://console.developers.google.com/project>`_, create a
new project, and create a new client ID under the menu point "APIs & AUTH",
"Credentials". The redirect URI should be of the form
``http://example.com/admin/admin_sso/assignment/end/``

If you don't specify a client id django-admin-sso will fallback to openid.

6. Run syncdb to create the needed database tables.

7. Log into the admin and add an Assignment.


Assignments
-----------

Any Remote User -> Local User X
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Select Username mode "any".
* Set Domain to your authenticating domain.
* Select your local user from the User drop down.


Remote User -> Local User
~~~~~~~~~~~~~~~~~~~~~~~~~
* Select Username mode "matches" *or* "don't match".
* Set username to [not] match by.
* Set Domain to your authenticating domain.
* Select your local user from the User drop down.


Changelog
---------

1.0
~~~

* Add support for OAuth2.0 since google closes its OpenID endpoint https://developers.google.com/accounts/docs/OpenID
* Using OpenID is now deprecated and OpenID support will be removed in a future release.
* Add more tests to get a decent coverage.


