Я не могу говорить о существующих проектах .NET, но могу дать объяснение основам для начинающих. Хотя есть некоторые крайние случаи и необязательные функциональные возможности, основной процесс не сложен для понимания. Поставщики услуг с поддержкой OpenID («Проверяющие стороны» или RP) эффективно выгружают функцию проверки пароля при аутентификации на сторонний веб-сайт («Identity Provider», или IdP). URL (специфичный для конечного пользователя) для такого IdP указывается конечным пользователем, и (с точки зрения RP) этот URL является «Идентификатором» конечного пользователя. RP выполняет серверный вызов URL-адреса идентификатора, чтобы получить токен активности, а затем перенаправляет браузер на URL-адрес идентификатора. Теперь конечный пользователь взаимодействует с IdP, и когда IdP удовлетворяется, он возвращает браузер обратно в RP с некоторой информацией, прикрепленной к строке запроса, чтобы указать на успех. Вуаля.
Поскольку пользователь сам решает, кто проверяет его личность, он может даже выбрать службу, которая использует какой-то совершенно иной механизм аутентификации, например, вызов их по телефону или даже требование отпечатка пальца через подключенное устройство. Или же, если они не доверяют кому-либо еще в мире, они могут запрограммировать свой собственный IdP и полностью контролировать свою личность.
Много раз (не здесь, в SO) RP фактически делает Идентификатор общедоступным во всей службе, например. как имя пользователя конечного пользователя. Поэтому модно использовать тщеславный URL-адрес или URL-адрес блога или что-то более значимое, чем http://superopenidprovider.com/adjad9va8ivasdlkjnq8t7. Таким образом, существует концепция делегирования IdP, посредством которой конечный пользователь, который включает на своей домашней странице / блоге соответствующие теги LINK для http://superopenidprovider.com/adjad9va8ivasdlkjnq8t7,, может использовать URL своей домашней страницы / блога в качестве своего идентификатора. RP должны знать об этой функции и предпринимать соответствующие действия.
Концепции высокого уровня
Примерно из Википедия . Это более концептуально, чем ответ Эндрю.
- Конечный пользователь Человек, который хочет подтвердить свою личность поставщику услуг.
- Идентичность Информация о поставщике услуг, относящаяся к одному конечному пользователю. То есть все, что идентифицирует конечный пользователь и хочет защитить.
- Идентификатор Конкретный URL-адрес конечного пользователя, предоставленный конечным пользователем, с помощью которого можно инициировать аутентификацию OpenID.
- Проверяющая сторона (RP) Поставщик услуг, использующий OpenID для определения правдивости заявления о личности конечного пользователя.
- Веб-сайт провайдера идентификации (IdP) , который может отвечать на запросы аутентификации OpenID от проверяющих сторон, как правило, с помощью запроса / ответа на основе пароля конечному пользователю через веб-формы и файлы cookie. IdP обычно поддерживают несколько пользователей и, таким образом, позволяют конечным пользователям регистрировать и управлять идентификаторами через сайт. Тем не менее, человек может разместить свой собственный IdP, который только аутентифицируется.