Ошибка аутентификации 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,

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