繁体   English   中英

使用Thinktecture IdentityServer3进行身份验证/授权的本地Android应用程序的正确方法是什么

[英]What is the correct approach for authentication/authorization Native Android App using Thinktecture IdentityServer3

我开发了一个本地android应用程序,该应用程序完成了身份验证,授权,并使用WebApi后端获取资源。

在讨论了什么是使用.NET技术实现身份验证和授权的最佳和安全方式的许多讨论之后,我们决定使用Thinktecture的IdentityServer3

在我按照本系列文章使用Asp.NET身份系统实现基于令牌的身份验证之前,一切都很好,但是经过调查,我决定取消身份验证服务器的耦合并使用Thinktecture的身份服务器。

因此,现在我在Azure上托管了一个单独的Web应用程序,一个用于获取资源,另一个用于使用IdentityServer3和一个本机Android客户端进行身份验证。

我的Android客户端应用程序具有使用Facebook / Google的身份验证,并且我之前已经在Android上使用Parse或基于Facebook Android SDK和Google服务分别实现了此功能

还具有角色的用户。

现在我想知道从身份验证服务器的角度以及客户端android应用程序的角度来看是否有正确的方法,因为关于身份服务器3与本机应用程序的配置的许多讨论也应该在android中使用webview活动来处理连接与身份验证服务器配合使用,或将本机Java代码与HTTP库配合使用(例如翻新)来发送请求和获取响应。

同样在Facebook上,我已经直接使用Facebook Android SDK从android应用程序实现了身份验证,我可以获得AuthToken,我认为的方法类似于此问题所示

  1. 从Android应用程序向Facebook验证用户身份。
  2. 将FB身份验证令牌获取到android应用。
  3. 将身份验证令牌和Facebook UID从Android转发到Web服务器。
  4. 在Web服务器上,使用提交的令牌进行Facebook API调用。

如果来自网络服务器的Facebook API调用返回了有效的身份验证,并且用户ID等于Android应用程序提交的用户ID,则您的服务器可以信任该ID(并且您可以确定Android身份验证是真实的)

还是我应该仅依靠后端身份服务器来处理Facebook身份验证?

您可以使用混合流(如果需要访问令牌和刷新令牌),也可以使用隐式流

看看这个话题

关于如何执行此操作,可以通过组合使用Web视图和混合/隐式流来执行,也可以将重定向样式设置为IdSvr登录页面。 使用资源所有者密码流

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM