Hal*_*nac 6 claims-based-identity acs asp.net-mvc-4 .net-4.5
在使用.NET 4.5框架和Azure访问控制服务(ACS)的ASP.NET MVC 4应用程序中,我希望为用户提供多种身份验证可能性(即Google,Facebook,Windows Live等).将单个用户与多个身份提供商关联的"最佳做法"是什么?
例如,假设用户有一天登录Google,然后第二天进入另一个浏览器并使用Facebook登录.我怎么知道将Facebook登录与以前的Google登录关联到同一个用户?
如果您使用 ACS,则可以使用 ACS 上的声明转换将来自每个 IdP(例如 Gogle、Yahoo!、FB 等)的信息转换为通用句柄。人们使用的常见句柄是用户的电子邮件。但是,如果您想接受映射到同一用户的许多电子邮件,那么您需要引入自己的唯一 ID(作为声明)并将 IdP 提供的声明映射到其中:
您可以通过 ACS API 自动执行此操作。您还应该处理用户第一次登录您的站点的情况(例如,要求用户提供电子邮件并发送将触发映射的确认消息)。
据推测,您正在使用此信息从应用程序中的本地数据库检索数据,否则,您可以只对声明中的所有内容进行编码,而不必担心任何等效性。声明通常是对通用配置文件数据进行编码的好地方。(例如角色等)
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |