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.
- Объединяется ли authorlements.plist при сборке в профиль, т. Е. Группы цепочек для ключей добавляются в раздел полномочий в plist?
- Если так, что это и когда это происходит в конвейере сборки?
- Как Ad-Hoc инициализация работает с этим сценарием?
Любая помощь очень ценится, так как это в настоящее время блокирует наш выпуск.
1 ответ
Начиная с MSAL 2.7.0, MSAL теперь разрешает TeamId во время выполнения. Новая собственность iOSKeychainSecurityGroup
следует использовать вместо KeychainSecurityGroup
, Более подробную информацию можно найти здесь. Также была ошибка в AppCenter, когда они использовали подстановочный знак в правах при повторной подписи приложения. Это было исправлено с 1/21.