我正在尝试在Xamarin 跨平台移动应用程序上实现身份验证和识别,该应用程序使用来自我拥有的 WebApi 服务的数据。
我的目标如下:
让移动应用程序针对各种身份提供者执行身份验证,获取安全令牌,并将其传递给请求标头内的 WebApi 服务。
然后,该服务将实现 aDelegatingHandler
来验证令牌,并从中提取一个 userId,用于以后的识别和授权需求。
我希望我的客户端代码尽可能地共享!
我的选项 AFAIK 如下:
使用Azure 移动服务在客户端生成联合安全令牌,并在 WebApi 服务上验证令牌。我认为这是可能的,多亏了这个 SO answer。得益于Xamarin Azure 移动服务组件,客户端的代码共享看起来很有前景。
使用Azure 访问控制服务 (ACS)在客户端生成联合安全令牌,并在 WebApi 服务上验证令牌。但是,我不认为在客户端上使用 ACS 可以很容易地进行代码共享。此外,ACS 并不是镇上的新人……
使用Xamarin.Auth 组件直接针对身份提供者进行客户端身份验证,生成 JWT 安全令牌,并在 WebApi 服务上对其进行验证。这应该可以让 IdP 更多地访问用户数据。然而,目前该组件目前缺乏 Windows Phone 支持,并且不太可能在晚秋之前推出。
如果有人已经处理过这种情况,请分享您的经验,让我知道正确的方法是什么。
如果我的目标一开始就错了,也不要犹豫批评它。