Почему CAS-сервер моей школы не перенаправляется на мой сайт после аутентификации?

Я пытаюсь сделать веб-сайт, которым могут пользоваться только студенты Университета Ватерлоо. Он использует CAS для аутентификации. Я начал использовать пакет django_cas. Следовал за шагами в значительной степени мертвым. Вот что я тестировал:

перенаправлен на страницу входа в CAS - пройти

проверить пользователя на сервере CAS - пройти

перенаправить обратно на сайт - ошибка

(ОБНОВЛЕНИЕ: добавление кода для уточнения) РЕШЕНИЕ:

Кажется, я неправильно указал CAS_SERVER_URL. Протокол https вместо http для CAS-сервера моей школы.

cas_django требует небольшой настройки:

## in settings.py
   CAS_SERVER_URL = 'http://cas-dev.uwaterloo.ca/cas/'
   LOGIN_URL = '/accounts/login/'
   MIDDLEWARE_CLASSES = (
       'django.middleware.common.CommonMiddleware',
       'django.contrib.sessions.middleware.SessionMiddleware',
       'django.middleware.csrf.CsrfViewMiddleware',
       'django.contrib.auth.middleware.AuthenticationMiddleware',
       'django.contrib.messages.middleware.MessageMiddleware',
       'django_cas.middleware.CASMiddleware',
   )

   AUTHENTICATION_BACKENDS = (
       'django.contrib.auth.backends.ModelBackend',
       'django_cas.backends.CASBackend',
   )

## in urls.py
   (r'^accounts/login/$', 'django_cas.views.login'),
   (r'^accounts/logout/$', 'django_cas.views.logout'),

## in views.py
@login_required
def sample(request):
    return render_to_response('sample.html')

Вместо этого я получил 404:

Запрошенный URL-адрес /cas/login/http://uwnetwork.shaon.ca/accounts/login/?next=%2Fsample%2F не найден на этом сервере.

Кто-нибудь знает, почему он не может перенаправить?


person Shaon Bhuiyan    schedule 20.03.2011    source источник


Ответы (1)


Вы действительно не предоставили достаточно информации, чтобы кто-то дал вам осмысленный ответ.

Попробуйте следующее:

  1. Убедитесь, что вы правильно установили CAS_SERVER_URL в соответствии с документацией django_cas.
  2. Поговорите со своим университетом, чтобы убедиться, что серверу CAS разрешено перенаправлять на ваше приложение. Поскольку некоторая информация о пользователе передается приложению после успешной аутентификации, возможно, сервер настроен так, чтобы разрешать аутентификацию пользователей только сайтам, размещенным в домене .uwaterloo.ca.
person Michael Chang    schedule 20.03.2011
comment
Вы правы =]. Кажется, что CAS_SERVER_URL был неправильным. Я ошибся протоколом, https вместо http! - person Shaon Bhuiyan; 21.03.2011