Посмотрел слайды и послушал один из докладов с конференции HighLoad. Доклад меня заинтересовал темой "авторизация в кластере".
Суть проблемы авторизации при размещении сайта на кластере: данные пользователя (паспорт) хранятся внутри обьекта сессии. Например - файл на диске. На том узле кластера, который изначально принял запрос на авторизацию. А что делать, если балансер отправил пользователя на другой узел?
В докладе есть рецепт, примененный разработчиками в своем проекте.
Ребята сделали так, что сессии стали не нужны. Продвигая RESTfull подход, заставили браузер при каждом запросе передавать паспорт пользователя на сервер. А в паспорте главной информацией определили битовую маску, которая определяет, есть (1) или нет (0) разрешения (привилегии, права) у пользователя на действие, определяемое номером бита в маске.
Привилегия это обьект (значение бита в маске паспорта указывает на наличие этой привилегии у пользователя). Обьект включает в себя данные: идентификатор (тот самый номер, отвечающей номеру бита в маске); регулярное выражение для отбора, группировки урлов (урл однозначно определяет ресурс); метод (действие, типа GET, POST, DELETE, ...); разрешения (видимо, уточнение того, что можно сделать).
Понятное дело, паспорт подписан и зашифрован. Детали туманны, но идея понятна.
highload.ru/papers2008/7166
Идея хороша, кластер упрощается заметно. А пользователь пусть свой паспорт сам таскает. Неплохо.
Послушав доклад, понял, что помимо генерации толковых идей надо еще и уметь донести мысль. Риторикой надо занимацца серьезно тем, кто выступает. Очень нелегко было следить за ходом мысли докладчика. Если бы тема не была близко знакома, кроме разочарования докладом ничего бы не вынес.
Еще я понял (еще раз убедился), что универсальных эффективных решений не бывает. Всегда надо решение создавать под условия задачи. Ну или задачу сводить к уже кем-либо решенной. Вот захочет клиент (заказчик сайта) добавить кастомизацию сайта под пользователя, и что? И замечательно эффективные решения станут неэффективными. В данном конкретном случае.
Хорошо, наши мозги по прежнему скорее востребованы, чем нет.
Tools
Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.
2009-08-01
hiLoad
Подписаться на:
Комментарии к сообщению (Atom)
Архив блога
-
▼
2009
(365)
-
▼
августа
(31)
- Skype не безопасен
- Глазки
- CSS hack and IE8
- Кино с сабами
- SSI безусловно крут
- *nix project
- 255 или 256?
- Unix shell
- Мордокнига
- Хотели как лучше?
- RDP vs VNC
- Банк? Интернет?
- OPSEC vs ID-Ten-T, OSI layer 8
- libata, результат
- Прекрасное правило
- libata
- Мультег
- Автомат по установке дебианчика
- Наши проблемы
- Мощь поисковой строки
- Что делают США в рамках планеты?
- LinuxCommand
- Record audio from playback, JACK
- Bluetooth
- Virtual ? (What?)
- odt2doc
- PostgreSQL, Полнотекстовый поиск
- Разное, безопасное
- Лена Головач
- html
- hiLoad
-
▼
августа
(31)
Ярлыки
linux
(241)
python
(191)
citation
(186)
web-develop
(170)
gov.ru
(159)
video
(124)
бытовуха
(115)
sysadm
(100)
GIS
(97)
Zope(Plone)
(88)
бурчалки
(84)
Book
(83)
programming
(82)
грабли
(77)
Fun
(76)
development
(73)
windsurfing
(72)
Microsoft
(64)
hiload
(62)
internet provider
(57)
opensource
(57)
security
(57)
опыт
(55)
movie
(52)
Wisdom
(51)
ML
(47)
driving
(45)
hardware
(45)
language
(45)
money
(42)
JS
(41)
curse
(40)
bigdata
(39)
DBMS
(38)
ArcGIS
(34)
history
(31)
PDA
(30)
howto
(30)
holyday
(29)
Google
(27)
Oracle
(27)
tourism
(27)
virtbox
(27)
health
(26)
vacation
(24)
AI
(23)
Autodesk
(23)
SQL
(23)
humor
(23)
Java
(22)
knowledge
(22)
translate
(20)
CSS
(19)
cheatsheet
(19)
hack
(19)
Apache
(16)
Manager
(15)
web-browser
(15)
Никонов
(15)
Klaipeda
(14)
functional programming
(14)
happiness
(14)
music
(14)
todo
(14)
PHP
(13)
course
(13)
scala
(13)
weapon
(13)
HTTP. Apache
(12)
SSH
(12)
frameworks
(12)
hero
(12)
im
(12)
settings
(12)
HTML
(11)
SciTE
(11)
USA
(11)
crypto
(11)
game
(11)
map
(11)
HTTPD
(9)
ODF
(9)
Photo
(9)
купи/продай
(9)
benchmark
(8)
documentation
(8)
3D
(7)
CS
(7)
DNS
(7)
NoSQL
(7)
cloud
(7)
django
(7)
gun
(7)
matroska
(7)
telephony
(7)
Microsoft Office
(6)
VCS
(6)
bluetooth
(6)
pidgin
(6)
proxy
(6)
Donald Knuth
(5)
ETL
(5)
NVIDIA
(5)
Palanga
(5)
REST
(5)
bash
(5)
flash
(5)
keyboard
(5)
price
(5)
samba
(5)
CGI
(4)
LISP
(4)
RoR
(4)
cache
(4)
car
(4)
display
(4)
holywar
(4)
nginx
(4)
pistol
(4)
spark
(4)
xml
(4)
Лебедев
(4)
IDE
(3)
IE8
(3)
J2EE
(3)
NTFS
(3)
RDP
(3)
holiday
(3)
mount
(3)
Гоблин
(3)
кухня
(3)
урюк
(3)
AMQP
(2)
ERP
(2)
IE7
(2)
NAS
(2)
Naudoc
(2)
PDF
(2)
address
(2)
air
(2)
british
(2)
coffee
(2)
fitness
(2)
font
(2)
ftp
(2)
fuckup
(2)
messaging
(2)
notify
(2)
sharepoint
(2)
ssl/tls
(2)
stardict
(2)
tests
(2)
tunnel
(2)
udev
(2)
APT
(1)
CRUD
(1)
Canyonlands
(1)
Cyprus
(1)
DVDShrink
(1)
Jabber
(1)
K9Copy
(1)
Matlab
(1)
Portugal
(1)
VBA
(1)
WD My Book
(1)
autoit
(1)
bike
(1)
cannabis
(1)
chat
(1)
concurrent
(1)
dbf
(1)
ext4
(1)
idioten
(1)
join
(1)
krusader
(1)
license
(1)
life
(1)
migration
(1)
mindmap
(1)
navitel
(1)
pneumatic weapon
(1)
quiz
(1)
regexp
(1)
robot
(1)
science
(1)
serialization
(1)
spatial
(1)
tie
(1)
vim
(1)
Науру
(1)
крысы
(1)
налоги
(1)
пианино
(1)
Комментариев нет:
Отправить комментарий