Расширяя механизмы авторизации
Во второй версии IP.Board был добавлен менеджер методов авторизации. При помощи этого инструмента вы могли подключать к IPB внешние таблицы пользователей, LDAP и IP.Converge. Вы так же могли создавать собственные методы и подключать форум к любому внешнему реестру (например, OpenID). Методы авторизации использовались нами и при конвертации — это позволяло системе принимать старые пароли, которые были созданы еще на предыдущей форумной системе.
В IP.Board 3 менеджер методов авторизации получил еще больше возможностей.
Форма авторизации теперь находится в одном шаблоне. Это сделано для того, чтобы быть уверенным, что форма авторизации во всех частях приложения выглядит одинаково. Теперь при изменении формы вам не надо будет вносить изменения в несколько шаблонов как это было в IP.Board 2. Так же форма авторизации сделана «интеллектуальной». Так как для авторизации в системе может требоваться как имя пользователя, так и email то мы решили максимально упростить форму. Теперь форма будет запрашивать только одно поле «имя для входа» («sign in name»), а Invision Power Board уже сам определит отправляете ли вы email адрес или логин.
Так же мы упростили менеджер, убрав разделение методов на «удаленный» («passthrough») и «совместный» («onfail»). Это стало возможным благодаря тому, что теперь появилась возможность создавать цепочки методов. Например, вы можете попробовать идентифицировать пользователя по локальной базе форума (если аккаунт существует) и в случае провала проверки загрузить пользователя из внешней базы. Или вы можете позволить пользователю авторизоваться с использованием одного из нескольких подключенных реестров пользователей. В админцентре методы авторизации будут располагаться в том порядке, в котором будет строиться цепочка, и вы сможете изменить их порядок в цепи простым перетаскиванием метода на нужное место.
Некоторые методы авторизации требовали дополнительной информации для работы. Например, метод для работы с LDAP, IPB необходимо знать дополнительные данные о имени сервера LDAP, имени пользователя и пароле для доступа к LDAP. Во второй версии IP.Board эта информация вводилась в конфигурационном PHP файле. В третьей версии данную информацию можно будет ввести (и в любое время изменить) напрямую в АЦ.
Еще одной особенностью нового менеджера стала работа с локальным реестром пользователей. В Invision Power Board 2 когда пользователь добавлялся в локальный реестр после удачной аутентификации через внешний реестр, пользователю необходимо было заполнить дополнительные поля: отображаемое имя пользователя и email адрес, даже если эта информация уже хранилась в удаленном реестре. В IP.Board 3 вы можете получить ЛЮБЫЕ данные из внешнего реестра, тем самым освободив пользователя от необходимости дозаполнения форм. А логин и email теперь сохраняются автоматически, делая авторизацию однородной (без переходов к дополнительным формам).
IP.Converge также подвергся незначительному обновлению — если вы используете IP.Converge на вашем форуме, то пользователи (которые уже заходили на форум под своим аккаунтом) теперь смогут заходить по их логину на форуме. Invision Power Board сам найдет email адрес пользователя по его логину и предаст его в IP.Converge для аутентификации, при этом пользователи даже не будут знать об этом.
Ну и наконец, авторизация с использованием протокола OpenID в IP.Board 3 станет стандартным методом авторизации. Если вы не знакомы с OpenID, то вам будет полезно знать, что это развивающийся протокол, позволяющий вам управлять установлением подлинности собственного логина. Вы отправляете URL сайта, который предоставляет сервис по хранению вашей OpenID записи, так называемый OpenID провайдер, (например, Yahoo, WordPress, Flickr, и AOL), затем переходите на этот URL и подтверждаете, что запрос авторизации действительно ваш, при этом пройдя авторизацию на стороне провайдера. После того как информация о правильности аутентификации придет на форум, вы будете уже автоматически идентифицированы им. Более того, если вы разрешите отправить на форум логин и email, то форум создаст для вас полнофункциональный локальный аккаунт. Invision Power Board будет поддерживать первую и вторую версию протокола OpenID с расширениями Simple Registration, Attribute Exchange и PAPE. Для реализации OpenID мы будем использовать PHP OpenID библиотеки от JanRain.