gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:24:23 25 4
gpt4 key购买 nike

我开发了一个 native android 应用程序,它使用 WebApi 后端完成身份验证、授权和获取资源。

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

在我被关注之前this series to implement a token based authentication使用 Asp.NET Identity 系统,一切正常,但经过调查后我决定分离身份验证服务器并使用 Thinktecture 的身份服务器。

所以现在我有一个单独的 Web 应用程序托管在 Azure 上,一个用于资源,另一个用于使用 IdentityServer3 进行身份验证和一个本地 Android 客户端。

我的 Android 客户端应用程序使用 Facebook/Google 进行身份验证,我之前已经在 Android 上使用 Parse 或单独基于 Facebook Android SDK 和 Google 服务实现了这一点

还有具有角色的用户。

现在我想知道从身份验证服务器的角度和客户端 android 应用程序的角度来看是否有正确的方法来执行此操作,因为有很多关于 identityserver3 与 native 应用程序的配置的讨论我是否应该在 android 中使用 webview Activity 处理与身份验证服务器的连接或使用带有 HTTP 库的 native Java 代码,如改造以发送请求和获取响应。

还有 Facebook,我已经使用 Facebook Android SDK 直接从 android 应用程序实现了身份验证,我可以获得 AuthToken,我考虑的方法是 like shown in this question :

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

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

或者我应该只依赖后端身份服务器来处理 Facebook 身份验证?

最佳答案

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

看看this topic

关于如何做到这一点,或者,您可以通过结合使用 Web View 和混合/隐式流来实现,或者将重定向样式设置为 IdSvr 登录页面。使用resource owner password flow

关于c# - 使用 Thinktecture IdentityServer3 进行身份验证/授权 native Android 应用程序的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35986623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com