【发布时间】:2021-11-05 19:51:26
【问题描述】:
我正在尝试在我的应用程序(Xamarin.Forms 应用程序 - ios 和 android)中实现 SSO 功能。登录流程是:当用户打开登录页面时,她/他将看到一个按钮作为使用 sso 登录。如果用户选择此按钮,应用程序将为 sso 打开一个 webview,当 sso 身份验证完成时(它适用于 airwatch 等 mdm 解决方案),返回一个 SAML 令牌。
我的问题是如何实现这一点,如何从 webview 捕获 saml 令牌?实际上,在 xamarin 中有一种方法可以解决此问题,因为我在 xamarin 进化会议中看到了一个视频: https://www.youtube.com/watch?v=AAAQJgBDK0w&t=1163s
当 AuthTpye 设置为“SAML”(在视频 15:51 秒中)并且在 webview 上使用 airwatch sso 打开应用程序登录时(在视频 16:45-17:14 秒中),用户可以使用 sso 登录。但我只能找到这个视频。我找不到此实现的任何其他来源。
此外,我看到了一些 Stack Overflow 问题,他们的回答说使用 Xamarin.Auth nuget 包。但 Xamarin.Auth 使用 oauth2.0 协议。我需要为 sso 使用 saml 协议。
我该怎么做?
【问题讨论】:
-
恐怕你还有很多工作要做。前段时间我们也遇到同样的情况,最后还是自己实施最多。我们使用了 OpenId 库,但仍有很多事情要做。库:github.com/IdentityModel/IdentityModel.OidcClient。我们自己实现了 ChromeCustomTabsBrowser 并使用 HttpClient 检索了 SAML Token。
-
感谢@this.myself 的回复 是的,这是一项艰巨的任务,但我从 vmware 找到了一个来源:github.com/vmware/idm/wiki/Single-sign-on-for-Mobile 首先,我认为我必须仅使用 saml 协议来实现移动设备。但是有一种方法可以使用 oauth2 协议来实现。它只是一个带有一些配置的发布请求。所以我决定使用它,但我还没有实现它。我会试试这个。
标签: xamarin.forms xamarin.android xamarin.ios single-sign-on mdm