我们已将最新的MSAL库添加到我们的Xamarin项目中,并将钥匙串共享功能添加到了权利plist中:
该应用程序可以在开发人员计算机上正常构建,并且可以根据Azure AD B2C正确进行身份验证。
当我们通过ADO进行构建并在App Center中发布(Ad-Hoc设置)时,该应用即会构建,并且似乎可以通过Azure AD B2C进行身份验证,但不会与我们的其他Azure资源(API,存储等)进行通信。 )似乎没有找到钥匙串访问组,并且在正常进行身份验证时,MSAL无法将访问令牌保存在钥匙串中。
iOSTokenCacheAccessor.Save (System.String account, System.String service, System.String generic, System.Int32 type, System.String value)
Microsoft.Identity.Client.MsalClientException: The application does not have keychain access groups enabled in the Entitlements.plist. As a result, there was a failure to save to the iOS keychain
。
我们认为这是因为在Ad-Hoc配置期间,设备ID已包含在配置配置文件中,但该应用程序重新签名,但Ad-Hoc配置文件权利部分仅包含[app id]。*而不是com .microsoft.adalcache值。
真的很感谢任何帮助,因为这目前阻止了我们的发布。
答案 0 :(得分:4)
从MSAL 2.7.0开始,MSAL现在在运行时解析TeamId。应该使用新属性iOSKeychainSecurityGroup
代替KeychainSecurityGroup
。可以找到更多信息here。 AppCenter中还存在一个错误,即当他们重新签名应用程序时,他们在“权利”中使用通配符。自1/21起,此问题已修复。