在Xamarin中使用Azure AD的跨应用程序SSO

时间:2017-12-18 11:17:00

标签: c# android azure xamarin azure-active-directory

我正在尝试将跨应用程序SSO启用到我们的Xamarin应用程序中,以便在用户安装并登录其中一个应用程序时,他会自动登录到我的组织的其他应用程序。以下文件声称达到了要求

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-sso-android。我们正在关注非经纪人协助的登录流程。

我已经认真履行了下述三个条件 -

  1. 应用程序在清单文件中使用相同的android:sharedUserId
  2. 用于它们的本机客户端是相同的。对于应用,只有重定向网址不同。
  3. 所有这些都使用相同的密钥库进行签名。
  4. 但功能尚未实现。当我安装并登录到一个应用程序时,当我尝试使用以下行获取访问令牌时,第二个应用程序仍在提示输入凭据

    authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri), new PlatformParameters((Activity)Forms.Context));
    

    请帮助我知道我能做些什么来实现这一目标。

2 个答案:

答案 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。