Xamarin с MSAL не может сохранить токен доступа, так как группы доступа цепочки для ключей изменены во время специальной подготовки

Мы добавили новейшую библиотеку MSAL в наш проект Xamarin и добавили возможности совместного использования цепочки для ключей в список разрешений:

Приложение работает нормально на компьютере разработчика, и приложение корректно аутентифицируется в Azure AD B2C.

Когда мы создаем с помощью ADO и публикуем в Центре приложений (подготовка 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 приложение повторно подписывается после того, как идентификатор устройства был включен в профиль обеспечения, но в разделе разрешений Ad-Hoc профиля содержится только [идентификатор приложения].* А не com.microsoft. значение adalcache.

  1. Объединяется ли authorlements.plist при сборке в профиль, т. Е. Группы цепочек для ключей добавляются в раздел полномочий в plist?
  2. Если так, что это и когда это происходит в конвейере сборки?
  3. Как Ad-Hoc инициализация работает с этим сценарием?

Любая помощь очень ценится, так как это в настоящее время блокирует наш выпуск.

1 ответ

Решение

Начиная с MSAL 2.7.0, MSAL теперь разрешает TeamId во время выполнения. Новая собственность iOSKeychainSecurityGroup следует использовать вместо KeychainSecurityGroup, Более подробную информацию можно найти здесь. Также была ошибка в AppCenter, когда они использовали подстановочный знак в правах при повторной подписи приложения. Это было исправлено с 1/21.

Другие вопросы по тегам