ios - 带有 MSAL 的 Xamarin 无法保存访问 token ,因为在临时配置期间更改了钥匙串(keychain)访问组

标签 ios azure-active-directory keychain adal msal

我们已将最新的 MSAL 库添加到我们的 Xamarin 项目中,并将钥匙串(keychain)共享功能添加到权利 plist 中:

enter image description here

该应用程序在开发人员机器上构建正常,并且该应用程序针对 Azure AD B2C 进行了正确的身份验证。

当我们通过 ADO 构建并在 App Center 中发布(临时配置)时,应用程序构建,并且似乎针对 Azure AD B2C 进行身份验证,但不与我们的其他 Azure 资源(API、存储等)通信。 ) 似乎找不到钥匙串(keychain)访问组,虽然身份验证正常进行,但 MSAL 无法将访问 token 保存在钥匙串(keychain)中。

iOSTokenCacheAccessor.Save (System.String account, System.String service, System.String generic, System.Int32 type, System.String value)

Microsoft.Identity.Client.MsalClientException:应用程序没有在 Entitlements.plist 中启用钥匙串(keychain)访问组。结果,保存到 iOS keychain 失败

我们认为这是因为在 Ad-Hoc 配置期间,在设备 ID 包含在配置配置文件中后应用程序被重新签名,但 Ad-Hoc 配置文件权利部分仅包含 [app id].* 而不是 com .microsoft.adalcache 值。

  1. entitlements.plist 是否在构建过程中合并到配置文件中,即,Keychain Groups 添加到 plist 的 entitlements 部分?
  2. 如果是这样,这是什么以及它何时在构建管道中发生?
  3. Ad-Hoc 供应如何适用于这种情况?

非常感谢任何帮助,因为这目前正在阻止我们的发布。

最佳答案

来自 MSAL 2.7.0 , MSAL 现在在运行时解析 TeamId。应该使用新属性 iOSKeychainSecurityGroup 而不是 KeychainSecurityGroup。可以找到更多信息here . AppCenter 中也存在一个错误,他们在重新签署应用程序时在授权中使用了通配符。这已于 1 月 21 日修复。

关于ios - 带有 MSAL 的 Xamarin 无法保存访问 token ,因为在临时配置期间更改了钥匙串(keychain)访问组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53829119/

相关文章:

ios - 我可以只从 plist 中读取 key 吗?

azure - 允许用户更改基于密码的 sso 密码

ios - 用户可以访问 iOS 上的钥匙串(keychain)吗?

ios - 问题将证书保存到 iOS 钥匙串(keychain) -25300(未找到)(如果删除),但 -25299(重复项)(如果添加)

iphone 应用程序 : cannot retrieve property from a Custom Singleton

ios - 在swift中按名称/字符串调用函数

ios - 对象未保存在 Parse-Server 上

azure - 无法通过 Curity 访问 Azure 服务

powershell - 将证书上传到 AAD 应用程序的 powershell 命令是什么?

oauth-2.0 - Swift Keychain - 存储 OAuth 凭证 : "The specified item already exists in the keychain"