Устаревшее продолжение аутентификации в UWP

У меня есть приложение для Windows 8/RT, которое я написал несколько лет назад, в котором я использовал мобильные службы Azure и Live SDK для аутентификации пользователя через учетную запись пользователя Microsoft.

Теперь я переписываю пользовательский интерфейс с нуля как приложение UWP и серьезно пытаюсь выяснить, как реализовать аутентификацию, теперь, когда пользователь сохраняет данные в 1 версии приложения, я могу показать его их в другой версии. Кажется, что MS подталкивает нас к Azure AD, но я не могу найти ничего, что могло бы мне помочь, и все примеры, которые я могу найти, либо не поддерживаются в UWP, либо больше не поддерживаются в Azure.

Могу ли я получить направление.... где найти примеры поддерживаемого в настоящее время кода?

2 ответа

Решение

Это было гораздо сложнее, чем следовало бы, и это, я думаю, связано с тем, как быстро все меняется, и с трудностями поддержания документации в актуальном состоянии, борясь с поисковыми системами, которые склонны предоставлять наиболее просматриваемая информация, которая в этом случае устарела и устарела и больше не работает.

Что касается ответа Брюса, я пытался. Прежде всего, кажется, что мои мобильные приложения были автоматически перенесены в службы приложений в Azure. Во-вторых, реализация Microsoft Graph выполнит аутентификацию, но создаст разъединение, поскольку информация, возвращаемая процессом аутентификации, не совпадает с информацией, возвращенной из Live SDK, который я использую для однозначной идентификации пользователя. Следовательно, использование реализации Graph отключает моих пользователей от всех данных, которые они просили меня сохранить для них. В-третьих, статьи, ссылки на которые приведены во 2-м абзаце (несмотря на то, что они написаны 6 месяцев назад), устарели, используют устаревшие инструменты, такие как "Классический" портал Azure, и предполагают, что вы создаете новое приложение, что позволяет шаблону работать великолепно. дело в конфигурации и такой что мне нужно.

Я искренне ценю это усилие, Брюс.

В прошлом году я реализовал аутентификацию в приложении UWP, используя OneDrive SDK. Я столкнулся с двумя проблемами при попытке сделать это в новом приложении:

  1. Версия, которую я использовал в прошлом году, была полной старой версией (1.15 v 2.0.6)... как и большинство руководств по использованию SDK, которые я мог найти в Интернете. Кажется, все связано с классом OneDriveClientExtensions... которого больше не существует. Но я не особо хотел застрять с версией 2015 года и никогда не иметь возможности обновиться. Поскольку самой новой версии уже 6 месяцев, я все равно боюсь.
  2. В самой последней версии для целей аутентификации требуется также установить пакет Microsoft.OneDriveSDK.Authentication. Последнее обновление 5 месяцев назад, но зависит от версии 2 Microsoft.IdentityModel.Clients.ActiveDirectory, которая имеет версию 3.13 (хотя, похоже, версия 2 все еще работает). Когда это становится настоящей болью, библиотека UWP Community Toolkit Services требует v3 того же пакета, поэтому в одном проекте нельзя установить и пакеты Toolkit Services, и пакеты OneDriveSDK Authentication. К счастью, так как я не мог заставить библиотеку UWP Services делать то, что хотел, мне это действительно не нужно.

Итак, я удалил пакет UWP Services из своего решения и установил последние пакеты OneDrive SDK и покопался в интернете в поисках примеров того, как использовать эту версию, и я наконец нашел это:

var scopes = new string[] { "wl.signin" };
var client = new OnlineIdAuthenticationProvider(scopes);
await client.AuthenticateUserAsync();

Затем вы можете получить доступ к свойству CurrentAccountSession клиента, чтобы получить UserId.

Теперь я уверен, что это временное решение, так как, в конце концов, OneDrive SDK устареет, и мне нужно будет использовать некоторую библиотеку, которая зависит от версии 3 пакета ActiveDirectory, но до тех пор это работает.

Согласно вашему описанию, я проверил Live SDK и обнаружил, что последняя версия v5.6.3 и последнее обновление в среду, 8 июля 2015 г. Кроме того, я проверил, что эта библиотека не может работать в моем приложении UWP (целевая версия): Windows 10.0; сборка 10240).

Я предположил, что вы можете вызывать Microsoft Graph через конечную точку Azure AD v2.0 с учетной записью Microsoft для проверки подлинности. Для получения дополнительной информации вы можете обратиться к разделу Начало работы с Microsoft Graph в универсальном приложении для Windows 10 и к этому образцу git.

Или вы можете перенести свою мобильную службу Azure в службу приложений Azure и настроить проверку подлинности учетной записи Microsoft на стороне сервера, а затем обратиться к этому официальному руководству по добавлению проверки подлинности в свое приложение Windows.

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