Архитектура OpenID для Java

#java #openid

#java #OpenID

Вопрос:

Я пытаюсь понять концепцию и преимущества внедрения OpenID в ваш проект. И, поскольку я разработчик Java, я более или менее одинаково заинтересован в понимании его основной реализации на Java, openid4java .

Насколько я понимаю, OpenID является стандартом для единообразного предоставления децентрализованных идентификаторов. Теперь, если это полностью (или даже немного) неверно, пожалуйста, поправьте меня!

Предполагая, что я все еще на ходу, я вижу, что все виды или организации используют OpenID, такие как MySpace, который идентифицирует каждого из своих пользователей с помощью URL-адреса http://www.myspace.com/username .

Итак, как OpenID работает как система? Проявляется ли это просто как сеть «серверов OpenID», которые, подобно DNS-машинам, координируют и проверяют, уникальны ли все идентификаторы в их системе и соответствуют ли они определенному шаблону? Или это просто используемый алгоритм, который, например GUID , создает глобально уникальные идентификаторы для каждого клиентского домена (например, MySpace).

Я просто не понимаю, как на самом деле проявляется OpenID и как такие фреймворки, как openid4java, взаимодействуют с этим «проявлением». (Каковы их виды использования).

Ответ №1:

Во-первых, существует две стороны связи OpenID — поставщик и потребитель. Потребитель — это приложение, которое пытается пройти аутентификацию с помощью OpenID, а поставщик — это сервер, на который отправляется запрос на аутентификацию.

У каждого поставщика есть так называемый конечный URL-адрес, который принимает запросы на проверку подлинности. Вы должны знать этот URL заранее при поддержке поставщика OpenID. Сначала вы должны выяснить, что является конечной точкой для данного OpenID, а затем обмениваться сообщениями с этим поставщиком. Все это завернуто в openid4java ConsumerManager .

Затем происходит аутентификация — вы перенаправляете пользователя на URL-адрес поставщика, где пользователь подтверждает, что он хочет войти в систему, используя свою учетную запись (должен войти в систему), затем поставщик перенаправляет обратно к вам, и тогда вы можете получить запрошенную информацию о пользователе (через другой запрос)

Комментарии:

1. Спасибо @Bozho! Итак, как что-то вроде openid4java будет работать с фреймворком единого входа, таким как OpenSSO? Что там за «разделение труда»?

2. честно говоря, я не знаю 🙂

3. Нашел эту статью, которая, вероятно, будет иметь смысл для разработчиков, которые уже имели опыт работы с SSO и / или OpenID. Для меня это не имеет большого смысла, но я оставлю это для другого исследования 😉 ~ еще раз спасибо за ваш ответ