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を通じて同期登録ができます。