Всем привет наткнулся на модуль https://www.drupal.org/project/cas_server , не могу найти под него мануал.
Подскажите как мне его настроить? Где есть мануал?
Идея сделать единый вход с сайтом на движке moodle.
Drupal в качестве сервера
Moodle в качестве клиента
Комментарии
Задача довольно узкая.
Боюсь, что вы ответ найдете быстрее даже методом тыка
Я думаю того что написано в readme.md в корне модуля должно хватить. CAS Server предоставляет credentials и их нужно вставить в moodle. Едиственно что сайт moodle должны быть на https.
Мануал есть по модулю CAS:
https://drupal.gatech.edu/handbook/installing-cas
https://www.drupal.org/project/cas
Спасибо за информацию , в корне модуля нет файла readme.
Как я понимаю модуль CAS и CAS Server разные. CAS нужен для подключения к серверу, а CAS Server делает друпал сервером единого входа.
Мне интересует только CAS Server.
После установки этого модуля я не понимаю какие креденшелы нужно внести moodle , т.к не создается отдельной страницы например https://example.ru/cas
Оба сайта на данный момент https
Запросите ещё форум мудла.
Мне в данные поля вносить URL авторизации с сайта Drupal?
https://example.com/user/login
?
Здесь задавали уже подобные вопросы:
https://www.phase2technology.com/blog/implementing-cas
https://www.drupal.org/project/cas/issues/2248757
https://www.drupal.org/project/cas/issues/1378316
https://www.drupal.org/project/cas/issues/2929326
https://www.google.com/search?q=drupal+cas+server&oq=drupal+cas+server&a...
Я пробовал на одном проекте это делать, на стороне друпала все настроил, но после обновления постоянно CAS Server сыпал ошибками. И moodle был на http, поэтому настроить так и не получилось.
Действительно, спасибо.
Почитав выяснил что оказывается адрес для cas , https://example.com/cas/login
В moodle установив hostname:example.com; baseurl : /cas, port: 443
При попытке входа с сайта moodle вылазит ошибка уже на Drupal Invalid Service, поняв что в настройке плагина Cas Server https://example.com/admin/config/people/cas_server/services , необходимо добавить сервис где указал адрес moodle во вкладке Service URL Pattern (https://moodle.example.com) и какие параметры передавать и участвовать ли с данным сайтом для единого входа.
Но к сожалению не удалось добиться успеха, теперь при нажатии на вход на сайте moodle перенаправляет на сайт drupal для аунтификации через cas , но выдает Invalid Service.
Оба сайта на https
Есть мысли?
Перенаправляет на https://example.com/cas/login?service=https%3A%2F%2Fmoodle.example.com%2...
Да, видимо документацию не делали для модуля, поэтому столько вопросов на форумах по поводу настройки этого модуля. Там вроде бы все из коробки должно работать.
Поправка все таки мне удалось добиться окна аутентификации с moodle . Но при попытке входа вылазит ошибка На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.
В логах следующее
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "2019-09-12 18:56:46" LINE 1: ...'ST-hZUec08prWhJWrfbvIp7eJ_e6NYg4_ItZRoXtx3N4hs', '2019-09-1... ^: INSERT INTO cas_server_ticket_store (id, expiration, type, session, uid, "user", service, renew) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( ) in Drupal\cas_server\Ticket\TicketFactory->createServiceTicket() (line 111 of /var/www/example.com/web/modules/contrib/cas_server/src/Ticket/TicketFactory.php).
Вот тикет и патч по этой ошибке:
https://www.drupal.org/project/cas_server/issues/2811661
По поводу Invalid Service вот тикеты:
https://www.drupal.org/project/cas_server/issues/2943894
По модулю CAS больше:
https://www.drupal.org/project/cas/issues/2943818
https://www.drupal.org/project/cas/issues/2232805
https://www.drupal.org/project/cas/issues/2824075
Что стоит сразу проверить, что время на обоих серверах стоит правильное для своего региона и что из-за часовых поясов на разных серверах не может произойти разных дат.
Я не знаю для чего этот модуль, но можно почитать про него, может быть он добавляет какие-то опшины:
https://www.drupal.org/project/cas_attributes
P.S.: есть какая-то ошибка просто пишите в гугле по шаблону не раздумывая:
"Drupal module_name что-то_из_строчки_ошибки"
Обычно в первых пяти результатах выдает какой-то ишью.
Спасибо,очень много полезной информации.
Патч не принимался , но я руками дописал где - убрал, где + добавил. Ошибка ушла, но теперь другая вылезла. К сожалению чего-то не могу найти по ней информации
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens: INSERT INTO cas_server_ticket_store (id, expiration, type, session, uid, "user", service, renew) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array ( ) in Drupal\cas_server\Ticket\TicketFactory->createServiceTicket() (line 111 of /var/www/example.com/web/modules/contrib/cas_server/src/Ticket/TicketFactory.php).
Что касается даты, время стоит правильное на сервере соответствующего региона , оба сайта крутятся на одном сервере.