Ошибка аутентификации Azure Active Directory в библиотеке управления Azure
Я разрабатываю приложение для Windows Phone с использованием библиотек управления Azure для управления моими веб-сайтами Azure. Я использовал Azure Active Directory для проверки подлинности, как упоминалось здесь, и все для меня прекрасно работает. Но я получаю сообщение об ошибке "AuthenticationFailed: исключение токена безопасности для полученного токена JWT", когда другой пользователь входит в свою учетную запись.
Есть ли способ сделать мое приложение Windows Phone доступным для всех, у кого есть подписка Azure? Как я могу решить эту проблему аутентификации, чтобы использовать MAML?
2 ответа
Проблема в том, что создаваемому приложению разрешен доступ к вашим ресурсам, а не к ресурсам других подписок.
Я думаю, что единственный способ сделать это использовать загрузку файла настроек отсюда.
После того, как ваши пользователи загрузят файл настроек публикации, они смогут использовать его для управления ресурсами, описанными в этом посте.
Как указал user2955724, вы можете получить список подписок, принадлежащих учетной записи, но вы не можете управлять любыми ресурсами, связанными с ней, с помощью Azure AD, если в вашей AD не указан конкретный пользователь.
Я столкнулся с той же проблемой, и мне пришлось прибегнуть к использованию файла настроек публикации. Я включил веб-просмотр, который ссылается на ссылку для загрузки настроек публикации. Вы анализируете файл и получаете сертификат и идентификатор подписки.
В API Windows Phone нет класса X.509Certificate2, но вы можете использовать Windows.Security.Cryptography.Certificates
Пространство имен, чтобы прикрепить сертификат к вашему HTTP-запросу.
public async Task<Certificate> GetCertificate(string certificateRawData)
{
await CertificateEnrollmentManager.ImportPfxDataAsync(certificateRawData,"",ExportOption.Exportable,KeyProtectionLevel.NoConsent,InstallOptions.None,"friendlyName");
CertificateQuery cq=new CertificateQuery();
cq.FriendlyName="friendlyName";
var certs=CertificateStores.FindAllAsync(cq);
return certs[0];//return Certificate object
}
Присоедините этот сертификат к экземпляру HttpBaseProtocolFilter
,