我正在尝试将跨应用程序SSO启用到我们的Xamarin应用程序中,以便在用户安装并登录其中一个应用程序时,他会自动登录到我的组织的其他应用程序。以下文件声称达到了要求
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-sso-android。我们正在关注非经纪人协助的登录流程。
我已经认真履行了下述三个条件 -
android:sharedUserId
。 但功能尚未实现。当我安装并登录到一个应用程序时,当我尝试使用以下行获取访问令牌时,第二个应用程序仍在提示输入凭据
authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri), new PlatformParameters((Activity)Forms.Context));
请帮助我知道我能做些什么来实现这一目标。
答案 0 :(得分:1)
由于Xamarin.Forms中的限制,没有代理(Microsoft身份验证器或公司门户)的SSO不适用于当前版本的ADAL。 我们有一个工作项来更新文档。
答案 1 :(得分:1)
这是一个Xamarin.Forms问题。为了使SSO能够跨没有经纪人的应用程序工作,您需要启用"忽略安全性"标志,不推荐。这需要对应用程序名称进行硬编码,并且"忽略安全性"。
例如:Application.Context.CreatePackageContext(“com.companyname.ReproApp1”, PackageContextFlags.IgnoreSecurity).GetSharedPreferences(..)…
目前,建议使用broker for SSO。您可以在iOS和Android上使用Authenticator。