- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Xamarin 上实现身份验证和识别跨平台移动应用程序使用我拥有的 WebApi 服务中的数据。
我的目标如下:
让移动应用程序针对各种 Identity Providers 执行身份验证,获取安全 token ,并将其传递到请求 header 内的 WebApi 服务。
然后,该服务将实现一个 DelegatingHandler
到 validate the token ,并从中提取出一个userId,以供后续识别和授权的需要。
我希望我的客户端代码能够尽可能地共享!
我的选择据我所知如下:
使用Azure Mobile Services在客户端生成联合安全 token ,并在 WebApi 服务上验证该 token 。我认为这是可能的,感谢this SO answer 。得益于Xamarin Azure Mobile Services Components,客户端的代码共享看起来很有前途。 .
使用Azure Access Control Service(ACS)在客户端生成联合安全 token ,并在 WebApi 服务上验证该 token 。但是,我不认为在客户端上使用 ACS 可以轻松地进行代码共享。此外,ACS 并不是镇上的新人......
使用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 存储库的链接)。
对你的#3 的评论。并非所有 IdP 都能够颁发 JWT。您需要一个中介来为您生成该信息(例如 ACS、像我们这样的服务等)。在客户端代码中生成 token 并不是一个好主意,因为客户端代码通常是“不可信的”。 (并且 secret
不会存储在设备中)。
关于authentication - 从使用来自 WebApi 服务的数据的跨平台移动应用程序进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18269353/
我正在开发一组应用程序,它们协同工作以创建一个用于处理计量数据的系统。我想让它们松散耦合有几个原因,并且系统应该可以由第三方扩展,因此应用程序将通过消息传递绑定(bind)在一起。 我正在寻找一种消息
如果我使用 python 2.6 和 Qt 为 windows 创建一个 gui,然后想在 solaris 或 linux 世界中运行。 我在两个系统上都需要什么,我猜两个平台都需要 2.6 和 Qt
我正在运行 Linux Ubuntu 10.04,我有一台 Windows 7 机器和一台运行 Mac OS X 10.6.4 的 MacBook。我如何编写一个简单的 C 程序(如 不是 QT!),
前言 今天给大家分享一个.NET开源(MIT License)、免费、跨平台(适用于 Windows、MacOS 和 Linux )、使用简单的面部识别库:FaceRecognitionDotNet
我知道汇编语言通常不是跨平台的。即使使用像 NASM 这样的东西,对于不同的架构和平台,您仍然需要不同的代码,这些架构和平台具有不同的运行时和诸如中断之类的东西的实现。但是如果有人因为喜欢汇编语言而想
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
This question already has answers here: How to play audio? (20个答案) 12天前关闭。 我正在编写一个dhtml应用程序,该应用程序创建系
我正在使用MonoGame开发一款游戏,该游戏使用SoundEffectInstance来实现游戏中的音效。在可以创建的SoundEffect实例数量以及可以同时播放的最重要实例方面,不同平台受到什么
如何在 java 中找到并运行默认计算器而不使我的程序依赖于平台。我可以对每个主要操作系统的所有路径进行硬编码,然后找到该人正在使用的操作系统,然后使用该操作系统各自的路径。但是,我不想那样做,有没有
有没有办法使用捏合来放大共享的Xamarin Forms,我只找到了每个平台的实现。 最佳答案 您可以使用 Pan Gesture 来实现它。这里有一个很好的在 PanContainer 中包装图像的
是否有最好/好的方法来同时为 Android 和 iOS(以及 Mac OS X)开发跨平台应用程序,例如游戏? 只是简单地开发一个仅使用 OpenGL 和 C/C++ 的应用程序应该很简单,不是吗?
我想知道 CSS 行为是否会随着操作系统的不同而变化。我的 css 对于 vista 和 win xp proffesional 对于相同版本的浏览器来说有点不同。我在 vista + ie8 和 x
我需要一种跨平台的方式来检查给定的文件路径是否是绝对的而不使用Pathname 库。为此,我唯一希望依赖的库是 File。它需要跨平台和跨实现,因此无论是 Ruby MRI、JRuby、Rubiniu
我正在尝试寻找一种跨平台的方法来从文件末尾删除 X 字节。 目前我发现: 特定于平台的解决方案(例如 truncate for posix):这是我不想要的,因为我希望 C++ 程序可以在多个平台上运
我想将可执行文件从一个目录复制到另一个目录。 源目录包括各种我不关心的文件(构建工件)。我只想使用适用于 OS X 和 Linux 的 bash 脚本获取可执行文件。 可执行文件是指具有可执行权限的文
我需要能够在服务器端处理简单 HTTP GET/PUT 请求的库。有一些特殊要求: 应该是跨平台的(这是主要因素) 支持多线程。 高性能 支持 HTTPS 许可证应允许链接专有代码(LGPL、BSD)
我正在寻找一种可用于从 Windows 和 Mac OSX 计算机上传大型 (~2GB) 文件的技术。应该可以根据请求/错误暂停和恢复上传。具有基本计算机技能的用户应该可以轻松安装最终产品。 我正在考
我正在寻找一种使用 java 播放 .flv 文件的方法。这意味着我需要一个跨平台的 ffmpeg 库。我一直在玩弄 jmf 和 fobs4jmf,但我无法在 linux 中播放,因为我需要一个本地库
我想在基于浏览器的应用程序中做的一件事是允许用户选择一些文本(不是在 中,只是普通的文本!),然后让我的应用程序弹出一个然后可以与下一个交互的小工具栏(在我的例子中,添加注释)。 我在 google
对于 PyInstaller 中的新功能,我们需要一个命令行选项来接收其中包含任何分隔符的字符串。这是讨论:https://github.com/pyinstaller/pyinstaller/pul
我是一名优秀的程序员,十分优秀!