django多サイトユーザー統一認証方案:django-cas
2024 ワード
Tomcat+CAS及びcasのmysqlデータベースの検証
Tomcat+casサーバの構築は、ドキュメントを参照することができます。
CASサービス構築(ubuntu 10.04)
http://xiaolin0199.iteye.com/blog/683759
casのmysqlデータベース検証はドキュメントを参照できます。
CASサーバをテストします(二)
http://xiaolin0199.iteye.com/blog/686229
django-casの応用
公式文書:https://bitbucket.org/cpcc/django-cas/overview
操作プロセス
1.django-casパッケージをダウンロードする:https://bitbucket.org/cpcc/django-cas/get/tip.tar.gz
2.据え付け
解凍後はそのまま$sudo python setup.py installまたはdjang-casをプロジェクトのルートディレクトリの下に置いてください。
3.settings.pyの設定
settings.pyに加入する
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_cas.middleware.CASMiddleware',
'django.middleware.doc.XViewMiddleware',
)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_cas.backends.CASBackend',
)
また、CAS_のようないくつかの配置変数があります。SERVER_URLは必要です。あなたのcasサーバーurlアドレスです。
CAS_SERVER_URL = 'http://sso.some.edu/cas/'
4.urls.py設定
urls.pyに参加します
(r'^accounts/login/$', 'django_cas.views.login'),
(r'^accounts/logout/$', 'django_cas.views.logout'),
これであなたのユーザー検証が完了します。
原理を実現する
書き記す
ユーザーがログインすると、django-casの登録関数を呼び出し、関数はurlでCASサーバにジャンプしてユーザ情報の検証を行います。
認証に成功したら、ユーザー名を返します。djangoはユーザー名によってauth_に行きます。ユーザーを探します。ユーザーがいない場合は、新規作成します。
ユーザーが再度ログインすると、CASを経ないですか?それとも元のdjangoの検証ミドルウェアですか?cookie+sessionで判断します。
結論
書き記す
django-casのこのプロジェクトについて、べつにとても良い実現の多ウェブサイトの単点の登録、同時に登録して、同時に取り消します。
ただし、djangoはCASサーバーと協力して、ワンポイント登録を実現することができます。
また、djangoだけでなく、他のasp、java servletsも実現できます。
インターネットで一つの例を見ましたが、二つのservletsはCASを通じて同期登録ができます。