[#] Мигрирующая авторизация
gk11(syscall,28) — All
2017-11-24 06:25:06


В рамках реализации elp прикручивание туда юзеров создало только лишние проблемы, и решил вообще вынести юзерскую часть в отдельный сервис - так я значительно упростил и то, и другое.

Теперь, поскольку регистрация не привязана к сервису, предлагаю и другим станциям присоединиться к возможности принимать чужие регистрации, чтобы имея аккаунт на одном из довереных серверов, можно было писать на другие. Так можно будет и реализовать passthru, когда возможно отвечать в эху, которая не ходит с конкретной станции.

Сама система регистрации очень простая, исходники можно посмотреть на http://gk11.ru/s/regcenter.tar.gz, а пример - на http://u.gk11.ru

Есть публичный и приватный ключи. Станция регистрации подписывает своим приватным ключом некий квиток, в котором от своего имени гарантирует, что обладатель сего квитка - Вася с улицы Ленина,14. И все, кто принимает публичный ключ этой станции, принимают юзера, как Васю с улицы Ленина,14.

Формат квитка:
ИМЯ
УЛИЦА,ДОМ
ОПЦИИ
ПОДПИСЬ

Всё всё это упаковывается в urlsafe_base64, и чтобы было видно, это это именно квиток, по бокам оно маркируется символом :. Всё, теперь эту строку чуть более 100 байт можно применять на других доверяющих станциях, либо логинясь на них, либо прямо в форме ответа вставлять её.

В опциях сейчас проставляется дата создания регистрации, чтобы можно было отсекать или дополнительно просеивать новоделов.

Я сейчас реализовываю это на своей станции, кто хочет присоединиться - присоединяйтесь, дабы тестировать межстанционное взаимодействие. В идеале, в дальнейшем можно сделать один, но хороший и надёжный центр регистрации юзеров на несколько станций сразу.

[#] Re: Мигрирующая авторизация
gk11(syscall,28) — gk11
2017-11-24 07:57:38


центр выдачи виз на php
http://z90250ap.beget.tech/reg/

выдаёт одноразовые случайные аккаунты, валидные для всех, кто принимает ключ http://z90250ap.beget.tech/reg/php.key

[#] Re: Мигрирующая авторизация
Difrex(mobile)(tavern,23) — gk11
2017-11-27 12:22:03


Исходники почитаю обязательно, но хотелось бы еще сухого описания протокола.

[#] Re: Мигрирующая авторизация
gk11(elp,2) — Difrex(mobile)
2017-12-05 06:53:45


хм, исходная статья и есть сухое описание протокола. вот исходник php-шного ключегенератора
function b64($data) {return strtr(base64_encode($data), '+/', '-_');}
$priv_key = '-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----';
$addri = rand(1,9999);
$pkeyid = openssl_get_privatekey($priv_key);
$data = $u . "
php,$addri

";
openssl_sign($data, $signature, $pkeyid);
$key = b64($signature);
$kvitok = b64($data.$key);
чекинг ключа аналогичный - проверяется валидность по всем доступным ключам
после чего имя и адрес подставляются в отправляемое сообщение

[#] Re: Мигрирующая авторизация
Difrex(mobile)(tavern,23) — gk11
2017-12-06 00:29:28


gk11> хм, исходная статья и есть сухое описание протокола
Это не так. В качестве документации это плохо годится. Т.е. по твоему сообщению можно, наверное, что-то реализовать, но будет больно.

// Нужно читать код :)

[#] Re: Мигрирующая авторизация
gk11(elp,2) — Difrex(mobile)
2017-12-06 04:24:12


это не документация, это сухое *полусладкое* описание протокола. хотя, честно говоря, я даже не знаю, что туда ещё добавить - если есть вопросы, спрашивай