Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описаны некоторые действия, которые следует выполнить разработчикам, которые используют API-интерфейсы Office 365, прежде чем распространять их среди других разработчиков, своих клиентов или в системах управления версиями, таких как Team Foundation Server, Git или Visual Studio Team Services.
В частности, на этой странице рассматриваются два этапа:
- Исправление ссылки на пакет NuGet клиента Azure AD Graph
- Очистите файл web.config, чтобы получить сведения о приложении.
Исправление ссылки на пакет NuGet клиента Azure AD Graph
Все проекты, использующие пакеты SDK api Office 365 путем добавления подключенной службы, включают пакет NuGet, который добавляет ссылки на Office 365 и Azure Active Directory (Azure AD) в проект, созданный в Visual Studio.
Пакет NuGet, добавленный в проект средствами API Office 365 в Visual Studio, отсутствует в реестре пакетов NuGet, поэтому попытки восстановления пакета NuGet завершаются сбоем, так как не удается найти соответствующий пакет.
Общие сведения о проблеме
Средства API Office 365 для Visual Studio версии 1.3.41104.1 добавляют несколько пакетов NuGet в проекты в рамках завершения работы мастера добавления подключенной службы. Один пакет, в частности, представляет проблему: клиентская библиотека Microsoft Azure Active Directory Graph.
Visual Studio работает так, что она или надстройки обычно содержат локальную копию пакета NuGet, поэтому разработчикам не всегда нужно подключаться к Интернету для скачивания пакетов NuGet. Пакет, в который входят средства, имеет идентификатор Microsoft.Azure.ActiveDirectory.GraphClient и версию 1.0.22.
Когда проекты фиксируются в системе управления версиями, пакеты обычно не включаются в фиксацию, так как они могут добавить много дополнительных дисковых ресурсов и неоправданно увеличить размер пакета при совместном использовании пакета с другими разработчиками. Поэтому одна из первых задач, выполняемых разработчиками после получения копии проекта из системы управления версиями, заключается в выполнении восстановления пакета NuGet.
Проблема заключается в том, что пакет с одинаковым идентификатором и версией не существует в реестре пакетов NuGet. Отсутствует пакет с идентификатором Microsoft.Azure.ActiveDirectory.GraphClient и версией 1.0.22. Пакет существует в реестре пакетов NuGet Microsoft.Azure.ActiveDirectory.GraphClient, но в разных версиях.
Исправление ссылки на пакет NuGet клиента Azure AD Graph
До тех пор, пока не будут обновлены средства API Office 365 для Visual Studio, чтобы устранить эту проблему, рекомендуется изменить проект перед фиксацией в системе управления версиями, независимо от того, используете ли вы Team Foundation Server, Visual Studio Team Services, Git или любое другое решение.
После создания проекта найдите в файле packages.config проекта и найдите пакет с идентификатором Microsoft.Azure.ActiveDirectory.GraphClient и версией 1.0.22. Самый безопасный способ обновить проект — удалить, а затем переустановить пакет.
Откройте консоль диспетчера пакетов в Visual Studio и введите следующее, чтобы удалить пакет:
PM> Uninstall-Package -Id Microsoft.Azure.ActiveDirectory.GraphClient
Примечание.
Если при удалении возникает ошибка о том, что пакет не был обнаружен, просто удалите ссылку на пакет из файла packages.config вручную и сохраните изменения.
Теперь установите общедоступную версию того же пакета NuGet из общедоступного реестра:
PM> Install-Package -Id Microsoft.Azure.ActiveDirectory.GraphClient -Version 2.0.2
Примечание.
Предыдущий пример ссылается на определенную версию клиента Azure AD Graph, которая, как известно, работает с API Office 365. Будущие версии могут работать, поэтому опустить -Version аргумент не обязательно.
Очистите файл web.config, чтобы получить сведения о приложении.
Средства API Office 365 для Visual Studio позволяют создавать новое приложение Azure AD с необходимыми разрешениями для API Office 365 с помощью мастера подключенной службы в Visual Studio. При завершении работы мастера в файл web.config проекта вносятся несколько записей и настроек.
Эти изменения включают следующие параметры надстройки:
- ida:ClientID: уникальный идентификатор приложения, созданного в клиенте Azure AD.
- ida:Password: ключ приложения Azure AD, созданный мастером подключенной службы.
- ida:AuthorizationUri: конечная точка, используемая для проверки подлинности с помощью Azure AD.
ida:ClientID и ida:Password являются уникальными для приложения Azure AD. Некоторые группы разработчиков могут выбрать для каждого разработчика код для своего собственного приложения, аналогично тому, как разработчики работают с собственной локальной базой данных разработки. Поэтому ida:ClientID и ida:Password можно считать похожими на строки подключения к базе данных.
В следующий раз, когда разработчик использует мастер подключенной службы для создания нового приложения Azure AD проекта, мастер обнаруживает ida:CliendID и пытается подключиться к приложению в клиенте Azure AD текущего пользователя. Если совпадение не найдено, мастер подключенной службы выдает ошибку.
Поэтому перед фиксацией проекта в системе управления версиями или перед предоставлением общего доступа другим разработчикам рекомендуется удалить значения из параметров надстройки ida:ClientID и ida:Password в файле web.config.