Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 1
Как издатель, который продает приложения/веб-служб на Autodesk Exchange Store, вы беспокоитесь о вопросах защиты лицензии? Как описывается в Exchange FAQ , ответственность за защиту от копирования или управления лицензиями лежит на издателе.Теперь я рад сказать, что мы пытаемся помочь вам в этом. У Exchange Store теперь есть новый интерфейс REST API для проверки прав принадлежащих пользователю. Новый API приведен ниже:
Base URL: https://apps.exchange.autodesk.com
End Point: webservices/checkentitlement
Http Method: GET
Parameters: ?userid=***&appid=***
Return : Json object.
Вот URL-адрес образца запроса: https://apps.exchange.autodesk.com/webservices/checkentitlement?userid=2N5FMZW9CCED&appid=appstore.exchange.autodesk.com%3aautodesk360%3aen
Возвращенный Json:
{"UserId":"2N5FMZW9CCED","AppId":"appstore.exchange.autodesk.com:autodesk360:en","IsValid":false,"Message":"Ok"}
IsValid: Если пользователь имеет право получить доступ к приложению, которое означает, что он купил его в Exchange Store и уже заплатили за него, то IsValid принимает значение ИСТИНА, в противном случае ЛОЖЬ.
Сообщение:
"OK" - текущий вызов является правильным
"Invalid parameters(s)" - userid или appid не установлен, обратите внимание на то, что userID это внутренний идентификатор (GUID), который не является неким ID пользователя, когда вы проходите аутентификацию в продуктах Autodesk или на сайте.
"Please use https" - запрос не использует HTTPS
Вы можете получить свой appId на из URL-адреса страницы index вашего приложения, но вы можете удивиться, как я могу получить, UserId клиента? Именно этот идентификатор пользователя является внутренний ID конечного пользователя.
Как вы знаете, большинство настольных продуктов Autodesk позволяют пользователям осуществлять аутентификацию с помощью их Autodesk ID. Для AutoCAD или вертикальных продуктов, есть простой способ получить имя текущего пользователя и его userid, вы можете использовать следующие недокументированные системные переменные: ONLINEUSERNAME и ONLINEUSERID. Но для других продуктов, таких как Revit или Inventor, для того чтобы получить идентификатор пользователя вам придется реализовать процесс входа в систему с Autodesk OAuth . Мы будем говорить о Autodesk OAuth позже.
Если вы публикуете новую веб-службу на Exchange, вы заметите что можете указать тип входа в вашу веб-службу. Выбирая «Вход в учетную запись Autodesk», ваш клиент сможет входить в веб-службы со своим Autodesk ID. Конечно, вам нужно реализовать Autodesk OAuth .
Autodesk предоставляет OAuth API, вы можете рассчитывать на Autodesk для осуществления аутентификации, не заморачиваясь по поводу собственной системы учета пользователей. Вы можете посетить наш сайт GitHub для получения примеров Autodesk OAuth, которые предоставлены Autodesk ADN. Платформы, на которых есть примеры включают: C # (Windows, ASP.NET и Windows RT), Java (Android), Objective-C (IOS), PHP, Python и JavaScript (Windows RT).Однако, как доказательство правильности концепции образцов, они не всегда в полной мере "пуленепробиваемые", поэтому, пожалуйста, не используйте их непосредственно в производственной среде.
Хорошо, в этой части давайте остановимся здесь, в следующей части я представлю, как реализовать Autodesk OAuth и проверить права пользователя с приложением ASP.net MVC.
Автор перевода: Daniel Du
Обсуждение: http://adn-cis.org/forum/index.php?topic=1858
Опубликовано 13.02.2015