移动和 Web 应用程序的 Identity Server3 身份验证

Posted

技术标签:

【中文标题】移动和 Web 应用程序的 Identity Server3 身份验证【英文标题】:Identity Server3 Authentication for both Mobile and Web Application 【发布时间】:2017-05-09 09:08:43 【问题描述】:

我需要使用 JWT 令牌为 mvc Web 应用程序和移动应用程序实现身份验证机制。用户将能够注册到我们的数据库并使用凭据(来自注册)或使用 facebook 单点登录进行身份验证。两个应用程序都将使用 Web API 与 JWT 令牌进行数据交换。我正在考虑使用 Identity Server 3 来使用 Resource Owner Flow,对此我有一些疑问:

1) 用户将从移动应用程序登录并获得一个 jwt 令牌。移动应用程序将验证其有效性并在需要时刷新。为了让移动应用程序让用户始终登录,我应该在设备上存储 refresh_token 吗???安全吗?

2) 我不明白我将如何处理 facebook 身份验证并从身份服务器获取 jwt 令牌。我应该先从 facebook 个人资料数据中获取用户电子邮件,然后呢???

谢谢

【问题讨论】:

【参考方案1】:

1-您可以将刷新令牌存储在数据库中(身份服务器提供令牌存储) 您还可以使用第三方库将令牌安全地存储在设备中。

2-要使用第 3 方登录,您需要对 IdSvr 登录页面执行重定向样式。使用资源所有者密码流意味着您会错过令牌服务中的所有功能,例如 SSO、2fa 和联合身份验证。

【讨论】:

我理解你的意思,但我不太关心 SSO 和所有其他功能。我认为最重要的想法是在没有重定向的情况下拥有良好的用户体验。

以上是关于移动和 Web 应用程序的 Identity Server3 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Win10下MySql ASP.NET Identity意外绑定SQL Server

如何使用identity列

Web API2 使用默认Identity

将 .Net Core Identity 和 OIDC 与多个 .Net Core Web API 结合使用

Cors Policy 问题 Blazor WASM、Web API 和 Identity Server 4 和 IIS

IdentityServer3.Samples项目