gpt4 book ai didi

authentication - 从使用来自 WebApi 服务的数据的跨平台移动应用程序进行身份验证

转载 作者:行者123 更新时间:2023-12-04 06:52:13 24 4
gpt4 key购买 nike

我正在尝试在 Xamarin 上实现身份验证和识别跨平台移动应用程序使用我拥有的 WebApi 服务中的数据。

我的目标如下:
让移动应用程序针对各种 Identity Providers 执行身份验证,获取安全 token ,并将其传递到请求 header 内的 WebApi 服务。
然后,该服务将实现一个 DelegatingHandlervalidate the token ,并从中提取出一个userId,以供后续识别和授权的需要。
我希望我的客户端代码能够尽可能地共享!

我的选择据我所知如下:

  1. 使用Azure Mobile Services在客户端生成联合安全 token ,并在 WebApi 服务上验证该 token 。我认为这是可能的,感谢this SO answer 。得益于Xamarin Azure Mobile Services Components,客户端的代码共享看起来很有前途。 .

  2. 使用Azure Access Control Service(ACS)在客户端生成联合安全 token ,并在 WebApi 服务上验证该 token 。但是,我不认为在客户端上使用 ACS 可以轻松地进行代码共享。此外,ACS 并不是镇上的新人......

  3. 使用Xamarin.Auth component直接针对身份提供者进行客户端身份验证,生成 JWT 安全 token ,并在 WebApi 服务上对其进行验证。这应该可以让 IdP 更好地访问用户数据。然而目前该组件缺乏 Windows Phone 支持,并且 It's not likely it will be available before late fall .

如果有人已经处理过这种情况,请分享您的经验并让我知道正确的方法是什么。
如果我的目标一开始就是错误的,请毫不犹豫地批评它。

最佳答案

您是否使用 Windows Azure 移动服务 (WAMS) 后端?看起来您有自己的 API,与 WAMS 无关。

如果您想使用 WAMS 只是因为他们能够为您提供 JWT 并通过 Twitter/FB 和 Live(他们支持的 IdP)进行身份验证,那么您只需要使用知道如何处理 WAMS token 的 token 处理程序特质。 ( This doc 显示他们如何签署 JWT)。

可以使用 ACS,但它们的 IdP 数量也有限(尽管比 WAMS 多),当然您的 API 必须考虑不同的 token 格式。

您可以在我们编写的这两篇教程中查看我们针对此类集成的方法。它们面向我们自己的身份平台,但它们使用的 SDK 是开源的,您可以查看它们的工作原理(查找 GitHub 存储库的链接)。

Xamarin tutorial

WebApi / MVC tutorial

对你的#3 的评论。并非所有 IdP 都能够颁发 JWT。您需要一个中介来为您生成该信息(例如 ACS、像我们这样的服务等)。在客户端代码中生成 token 并不是一个好主意,因为客户端代码通常是“不可信的”。 (并且 secret 不会存储在设备中)。

关于authentication - 从使用来自 WebApi 服务的数据的跨平台移动应用程序进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18269353/

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