2013-09-11 3 views
0

Я продолжаю получать ответ «HTTP/1.1 403 Forbidden» из запроса PUT в /d2l/api/lp/1.2/courses/7917. Это может быть проблема разрешения с пользователем/ролью, которую я использую, но я не могу понять, какие конкретные разрешения могут потребоваться. Может ли кто-нибудь указать мне список или матрицу валентных маршрутов и требуемые разрешения? Или ответ на этот конкретный вопрос?Какие разрешения необходимы в wish2learn (D2L) Valence PUT для .../курсов?

То же самое appid/userid/username работает для GET, связанных с одним и тем же путем.

запутался ...

центнера

ответ

0

Разрешения, связанное с вызовами API должен отражать разрешения, которые вы должны были бы иметь, если бы вы были выполнять соответствующие функции через веб-интерфейс Учебной Envrionment в. Вы можете думать об этой проблеме двумя способами:

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

  • Задайте вопрос в терминах абстрактного одиночного пользователя: начните с роли, которая не имеет привилегий и добавляет разрешения до тех пор, пока вы не получите только те, которые необходимы для вызова API. Это не тривиальное упражнение, и первый способ намного полезнее в долгосрочной перспективе.

В данном конкретном случае, поскольку API требует, чтобы вы предоставить полный курс предлагая набор свойств, когда вы хотите обновить его, вы должны иметь разрешение изменять все свойства в наборе (под Manage Courses инструмент). Вы также должны уметь посмотреть информацию о курсе, в первую очередь, вам нужно иметь Course Management Console > See Course Info.

Возможно, вы можете безопасно просмотреть массив разрешений в инструментах Manage Courses и Course Management Console для ролей пользователей, которые будут делать это в веб-интерфейсе, и убедитесь, что пользователи, использующие ваше приложение, также имеют аналогичный массив разрешений в этих инструментах.

+0

Спасибо за это, в конце концов выяснилось, что моя проблема была в моем (java) коде, где я пытался выполнить PUT, используя HTTP POST, не уверен, почему это привело к проблеме авторизации - я подозреваю, потому что токен не был где это должно быть. Я также нашел два специальных разрешения для предложений (моей цели) для обновления. –

+0

Обратите внимание, что токены аутентификации для сигнатуры пользователя и сигнатуры приложения в запросах API основаны на использовании (частично) метода HTTP в базовой строке для подписи. Таким образом, если вы вызываете маршрут, который должен быть POST-маршрутом, и вы делаете это с помощью PUT, это, скорее всего, будет отправлено обратно как 403 для недействительных токенов в зависимости от того, как вы подписываете маршрут и как вы отправляете его в службу. –

Смежные вопросы