带有 MSAL 的 Xamarin 无法保存访问令牌,因为在临时配置期间更改了钥匙串访问组
Xamarin with MSAL cannot save access token as Keychain Access Groups changed during Ad-Hoc provisioning
我们已将最新的 MSAL 库添加到我们的 Xamarin 项目中,并将钥匙串共享功能添加到权利 plist 中:
该应用程序在开发人员机器上构建正常,并且该应用程序针对 Azure AD B2C 进行了正确的身份验证。
当我们通过 ADO 构建并在 App Center 中发布(临时配置)时,应用程序构建,并且似乎针对 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 值。
- entitlements.plist 是否在构建过程中合并到配置文件中,即钥匙串组添加到 plist 的权利部分?
- 如果是,这是什么以及它何时在构建管道中发生?
- Ad-Hoc 供应如何适用于这种情况?
非常感谢任何帮助,因为这目前正在阻止我们的发布。
来自 MSAL 2.7.0, MSAL now resolves the TeamId at runtime. A new property iOSKeychainSecurityGroup
should be used instead of KeychainSecurityGroup
. More information can be found here。 AppCenter 中也存在一个错误,他们在重新签署应用程序时在授权中使用了通配符。这已于 1 月 21 日修复。
我们已将最新的 MSAL 库添加到我们的 Xamarin 项目中,并将钥匙串共享功能添加到权利 plist 中:
该应用程序在开发人员机器上构建正常,并且该应用程序针对 Azure AD B2C 进行了正确的身份验证。
当我们通过 ADO 构建并在 App Center 中发布(临时配置)时,应用程序构建,并且似乎针对 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 值。
- entitlements.plist 是否在构建过程中合并到配置文件中,即钥匙串组添加到 plist 的权利部分?
- 如果是,这是什么以及它何时在构建管道中发生?
- Ad-Hoc 供应如何适用于这种情况?
非常感谢任何帮助,因为这目前正在阻止我们的发布。
来自 MSAL 2.7.0, MSAL now resolves the TeamId at runtime. A new property iOSKeychainSecurityGroup
should be used instead of KeychainSecurityGroup
. More information can be found here。 AppCenter 中也存在一个错误,他们在重新签署应用程序时在授权中使用了通配符。这已于 1 月 21 日修复。