Метод аутентификации для REST API Desire2Learn против SOAP
Я надеюсь, что кто-то может рассказать мне о том, как работает аутентификация с новым D2L REST API. Из моего чтения и игры с примером кода "GetStarted" кажется, что вызовы основаны на "уровне идентичности пользователя" и "принятии пользователя".
Для нас это немного проблематично.
У нас есть несколько пользовательских инструментов, где студент выполняет задание (за пределами D2L) и получает оценку. Эти инструменты настроены таким образом, чтобы оценка, предоставляемая таким образом, была связана со столбцом зачетной книжки для данного курса в нашем экземпляре D2L. В настоящее время с SOAP мы просто используем привилегированную учетную запись веб-служб, чтобы, когда учащийся выполнил задание, оценка автоматически экспортировалась в соответствующий столбец учебника в данном курсе.
Насколько я понимаю из документации REST, больше невозможно использовать учетную запись привилегированных веб-служб, так как ей придется каждый раз входить в систему и соглашаться на использование инструмента. Учащийся, выполняющий задание, не будет иметь этой информации (и мы бы тоже этого не хотели), и уровень доступа студента не позволит ему обновить столбец зачетной книжки, поэтому мы также не сможем использовать его "Идентификацию пользователя".,
Единственная альтернатива, о которой я могу подумать, - хранить все оценки где-либо еще. Затем, когда это уместно, преподаватель курса будет входить в систему и обновлять дневник, используя свои "Уровень идентификации пользователя" и "Принятие пользователем"?
Это правильно?
Для нас это очень обременительно, поскольку мы полагаемся на методы аутентификации собственного инструмента и учетные записи привилегированных веб-служб.
1 ответ
Дополнительный вход в систему вручную не требуется, и есть два варианта, которые я видел в этом сценарии. Оба используют тот факт, что система аутентификации Valence использует ключи и подписи. При использовании подписей вместо отправки токенов даже открытый текст apis не подлежит перехвату сеанса, и в результате ключи могут безопасно оставаться действительными в течение длительного времени. Этот период обычно устанавливается равным 30 дням, но, когда используются приложения, подобные описанному вами, лучше не устанавливать тайм-аут. Вы можете связаться со службой поддержки по поводу настройки этого тайм-аута для вашего сервера. (Ключи по-прежнему сбрасываются, если пароли сбрасываются или они явно аннулированы).
С долгоживущими ключами возможны следующие сценарии, без того, чтобы приложение непосредственно получало или сохраняло пароль пользователя (хранение ключей по-прежнему необходимо выполнять безопасно):
Контекст учетной записи инструктора: если рабочий процесс приложения уже требует, чтобы инструктор активировал или сконфигурировал процесс, идентификатор пользователя и ключ пользователя для этого инструктора могут быть сохранены во время первого сеанса и позже использованы для отправки оценок. Это не требует каких-либо специальных учетных записей или повышенных привилегий, но применяется только в том случае, если рабочий процесс уже включает контекст инструктора.
Контекст учетной записи: если в приложении нет инструктора, можно создать учетную запись с правами на обновление оценок. Этот подход часто используется с D2LWS, но с дополнительным шагом. В этом сценарии ключи для служебной учетной записи устанавливаются вне диапазона (например, пример с начала работы (http://docs.valence.desire2learn.com/samples/gettingStarted.html) будет отображать ключи). В качестве альтернативы можно создать процесс установки или тип конфигурации, который автоматически записывает ключи из учетной записи утилиты. После записи этих ключей дополнительные интерактивные сеансы не требуются.