34 СПЕЦИФИКАЦИЯ ПРОТОКОЛА OAAP BP Rev. 0.1 1 Терминология User-agent (web-браузер) – приложение, установленное на компьютере пользователя, для просмотра информации в интернете, используя протокол HTTP. Пользователь – человек, желающий пройти авторизацию посредством протокола OAAP. Портал-Клиент (П-К) – web-приложение, доступ к которому хочет получить пользователь. Портал-Сервер (П-С) – web-приложение, которое хранит ресурсы, необходимые пользователю для получения доступа к П-К. UNIX-время – количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года. Unix-время не предполагает GMT. 2 Общее OAAP BP, в терминах протокола OAAP представляет собой протокол, который помогает пользователям выбрать П-С для ускоренной авторизации (регистрации) на П-К. Главной задачей OAAP BP является быстрый поиск порталов-серверов, на которых зарегистрирован пользователь и передача списка П-С в отсортированном по некоторым критериям виде порталуклиенту, который, в свою очередь, предлагает пользователю выбрать один из них. В этой работе будет описан OAAP BP в качестве выделенного сервера. 3 Сохраняемые данные Вся информация, по протоколу OAAP BP, сохраняется в файлы cookie web-браузера пользователя. Хранятся следующие данные: 35 4 1) URL адрес портала-сервера. 2) Время окончания сессии на портале-сервере (UNIX-время). 3) Время регистрации портала-сервера на Backend (UNIX-время). Сортировка списка П-С Далее представлен список критериев сортировки, начиная от наиболее важного: 1) Открыта ли сессия пользователем на П-С. Первыми следует выдавать П-С на которых сейчас у пользователя открыта сессия. 2) Дата последней авторизации. Первыми следует выдавать те П-С, на которых пользователь авторизовался позже. 5 Формат сообщений Все параметры и их значения должны быть в нижнем регистре. Передаются они путём прикрепления их при открытии URL адресов по HTTP GET. Для удобства чтения будем отображать их в виде: Поле1: данные1; … ПолеN: данныеN; 6 Функции OAAP BP 6.1 Регистрация П-С Каждый П-С может добавить себя в HTTP Cookie user-agent пользователя. Для этого П-С должен перенаправить User-agent пользователя на URL адрес сервера OAAP BP с параметрами по GET: Аction: add; Stime: <ВРЕМЯ_В_СЕКУНДАХ>; Url: <URL>; 36 Return_to: <URL>; Где «stime» — это время в секундах, которое ещё будет активна сессия пользователя на П-С. «return_to» — URL адрес, на который следует перенаправить пользователя после регистрации П-С. «Url» — URL адрес, который будет использоваться для начала авторизации посредством протокола OAAP. Получая эти параметры, сервер «Backend» высчитывает время окончания сессии на П-С, а так же сверяет URL адрес и заголовок «HTTP_REFERER». После сервер OAAP BP записывает в JSON формате следующие данные: 1) URL П-С (url: <URL>). 2) Время окончания сессии в формате UNIX-время (sdate: <Время>). 3) Текущее время в формате UNIX-время (date: <Время>). В случае успеха Backend должен зарегистрировать в cookies пользователя переменную с названием доменного имени П-С или обновить Cookie, если с таким именем уже существует, и перенаправить User-agent пользователя на адрес return_to с параметром по GET «result=success». Если доменное имя в URL адресе и заголовке «HTTP_REFERER» не совпадает или возникла другая ошибка, следует вернуть пользователя на ПС с параметром по GET «result=error». 6.2 Передача списка П-С порталу-клиенту В тот момент, когда пользователь начинает авторизацию (регистрацию) используя протокол OAAP П-К, для получения списка П-С пользователя, может перенаправить его user-agent на URL адрес сервера OAAP BP параметрами по GET: Action: get; Return_to: <URL>; с 37 Где «return_to» — URL адрес, на который следует вернуть user-agent пользователя с результатом выполнения операции. После чего Backend достаёт информацию из файлов HTTP Cookie пользователя сортирует, используя описанный выше принцип, и создаёт строку из доменных имён П-С разделённых через «,». User-agent пользователя следует перенаправить на URL адрес «return_to» с параметром «pss=<список>» где список – это список порталов-серверов. 6.3 Примечание Все дополнительные параметры, которые пересылаются вместе с требуемыми параметрами, будут переданы обратно.