我开发了一个原生的Android应用程序,它使用WebApi后端完成了它的身份验证,授权和获取资源。
在讨论了使用.NET技术实现身份验证和授权的最佳和最安全的方法之后,我们决定使用Thinktecture's IdentityServer3。
在我使用Asp.NET Identity系统跟踪this series to implement a token based authentication之前,所有事情都没问题,但经过调查后我决定将身份验证服务器解耦并使用Thinktecture的身份服务器。
所以现在我有一个分离的web应用程序托管在azure上,用于资源,其他用于使用IdentityServer3和一个原生Android客户端进行身份验证。
我的Android客户端应用程序使用Facebook / Google进行身份验证,我之前已经在Android上使用Parse或基于Facebook Android SDK& Google服务
也是有角色的用户。
现在我想知道从认证服务器的角度来看是否有正确的方法以及客户端Android应用程序的角度来看,因为有很多关于identityserver3与本机应用程序的配置的讨论也应该在android中使用webview活动处理与身份验证服务器的连接或使用本机java代码与HTTP库(如改造)发送请求和获取响应。
还有Facebook,我已经使用Facebook Android SDK直接从Android应用程序实现了身份验证,我可以获得AuthToken,我认为的方法是like shown in this question:
如果来自Web服务器的Facebook API调用返回有效身份验证,并且用户ID等于Android应用程序提交的身份验证,则您的服务器可以信任该ID(并且您可以确定Android身份验证是真实的)
或者我应该只依赖后端身份服务器来处理Facebook身份验证?
答案 0 :(得分:0)
你可以使用混合流程(如果你需要访问令牌和刷新令牌) ,您也可以使用隐式流程
关于你怎么做, 您可以通过组合Web视图和混合/隐式流来执行此操作,也可以将重定向样式执行到IdSvr登录页面。使用resource owner password flow