Сначала я хотел бы подчеркнуть разницу между аутентификацией и авторизацией:
A пользователь аутентифицируется на вашем веб-сайте, предоставляя некоторые учетные данные, такие как имя пользователя + пароль.OpenID позволяет это сместить, если пользователь аутентифицируется в другой службе, которая затем подтверждает личность пользователя на вашем веб-сайте от имени пользователя.Ваш сайт доверяет сторонней службе (провайдеру OpenID) и поэтому считает, что пользователь вошел в систему.
A служба или приложение не аутентифицируется на вашем веб-сайте -- по крайней мере, не типично.Пользователь разрешает службе или приложению доступ к данным пользователя.Обычно это делается приложением, запрашивающим авторизацию у поставщика услуг, затем отправляющим пользователя поставщику услуг, где пользователь сначала аутентифицируется (чтобы поставщик услуг знал, с кем он разговаривает), а затем пользователь говорит сайту «да,[приложение] может получить доступ к моим данным [каким-то ограниченным способом] ".С этого момента приложение использует токен авторизации для доступа к пользовательским данным на сайте поставщика услуг.Обратите внимание, что приложение не аутентифицирует себя так, как если бы оно было пользователем, но использует другой код, чтобы гарантировать службе, что она авторизована для доступа к данным конкретного пользователя.
Итак, с уточнением этого различия вы можете сделатьРешения на вашем сайте об аутентификации и авторизации полностью самостоятельно.Например, если вы хотите, чтобы ваши пользователи могли войти в систему со всеми: имя пользователя + пароль, OpenID и Facebook, вы можете сделать это.Полностью ортогональное решение заключается в том, как вы авторизуете приложения (для этого можно использовать множество протоколов, разумеется, OAuth довольно популярен).
OpenID ориентирован на аутентификацию пользователя .OAuth ориентирован на авторизацию приложения.Однако некоторые службы, такие как Facebook и Twitter, решили использовать OAuth для аутентификации и вместо использования OpenID для аутентификации и OAuth для авторизации.
Теперь для вашего собственного проекта я настоятельнорекомендуем вам ознакомиться с шаблоном проекта ASP.NET MVC 2 OpenID (C #) , доступным в галерее VS.Из коробки поставляется поддержка OpenID аутентификации и OAuth.Это означает, что ваши пользователи могут войти в систему с помощью OpenID, а сторонние приложения и службы могут использовать OAuth для выполнения вызовов API на вашем веб-сайте и доступа к данным пользователя.
То, что вы хотели бы добавить в этот шаблон проекта после начала работы, - это возможность для ваших пользователей войти в систему с помощью имени пользователя + пароля, а также OpenID.Кроме того, если вы хотите, чтобы Facebook и Twitter были опцией для ваших пользователей, вы должны реализовать это, так как они не используют стандарт OpenID.Но загрузка DotNetOpenAuth включает образцы для входа в систему через Twitter и Facebook, так что у вас есть некоторые рекомендации.
Я подозреваю, что у вас не будет особых действий на авторизации.Он приходит с OAuth, как я уже говорил, и этого, вероятно, будет достаточно для вас.