Жесть может запускать параметр авторизации

Этот документ относится к параметру токена аутентификации, передаваемому запущенному действию.

https://github.com/RusticiSoftware/launch/blob/master/lms_lrs.md

Что это за параметр и как он используется / передается обратно в LRS с операторами для их авторизации? Спецификация API относится только к OAuth, который использует другие параметры, и к базовой аутентификации http, которая представляет собой имя пользователя / пароль.

https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#security


person ricick    schedule 16.06.2014    source источник


Ответы (2)


Значение строки запроса «auth» предназначено для базовой аутентификации HTTP, оно должно передаваться после «Basic» в заголовке авторизации HTTP. Это совсем не ясно из документа, на который вы указали ссылку, а именно то, как нынешние последователи реализовали это. Поскольку Basic Auth ожидает там имя пользователя / пароль в кодировке base64, на практике это означает, что токен, отправленный LMS, должен быть именем пользователя / паролем в кодировке base64, но клиенту не нужно его проверять.

Немного истории: изначально я создавал этот документ как предложение о том, как LRS может быть интегрирован с LRS, и ожидал некоторых раундов обратной связи и улучшений во время разработки спецификации xAPI. Этого не произошло, но тем временем существует потребность в способе запуска контента xAPI, и этот механизм получил широкое распространение. CMI-5 будет включать механизм запуска, и он будет использовать этот механизм в качестве отправной точки: https://github.com/AICC/CMI-5_Spec_Current/blob/master/cmi5_runtime.md#80-content-launch-sizes. CMI-5 все еще может быть изменен, поэтому на данный момент люди придерживаются этого механизма запуска, но не особенно заинтересованы в его доработке из-за ожидания, что он будет заменен.

Тем не менее, упомянутое вами упущение является серьезным, и, возможно, пришло время добавить некоторые пояснения, основанные на том, как механизм запуска используется в дикой природе.

person Ben.Clark    schedule 16.06.2014
comment
Спасибо за это, Бен. Одна странная вещь в документе, который вы связали, - это эта строка. LMS должна ограничивать использование значения auth на время определенной / пользовательской / учебной деятельности / регистрации. Если значением auth является базовое имя пользователя / пароль http, тогда я не понимаю, как lms может ограничить использование токена так же, как токен OAuth. - person ricick; 17.06.2014
comment
LMS / LRS может проверить выписку. Примером может быть создание токена аутентификации как краткосрочного токена в специальной таблице. Эта таблица также может определять, каким должен быть актер в заявлении, и может отклонять утверждения о других субъектах. - person TJ Seabrooks; 17.06.2014
comment
Это противоречит утверждению Бенса о том, что токен аутентификации - это имя пользователя / пароль, которые нужно передать обратно через базовый HTTP-заголовок аутентификации. Если то, что вы говорите, верно, как токен передается обратно в LRS с утверждением? - person ricick; 17.06.2014
comment
Это хорошие моменты, это должно быть имя пользователя / пароль в смысле формата, но его все равно можно логически обрабатывать как токен. Это не обязательно должны быть имена пользователей, связанные с каким-либо реальным пользователем. Чтобы проиллюстрировать этот момент, обратите внимание, что токен аутентификации в примере базы 64 ссылок декодируется в: 1c0f85617508b8af461d7591e1315dd5. Это пустое имя пользователя и случайно сгенерированный пароль. Он отформатирован как имя пользователя / пароль для базовой аутентификации, но LMS может генерировать их для каждого запуска и применять соответствующие разрешения для этого запуска. - person Ben.Clark; 18.06.2014
comment
Это отличная идея, Бен. Спасибо. - person ricick; 20.06.2014

Базовый токен аутентификации следует стандартному базовому формату аутентификации имени пользователя: пароля, например:

someusername:somepassword

Затем кодируется base 64:

c29tZXVzZXJuYW1lOnNvbWVwYXNzd29yZA==

Добавьте слово Basic и пробел:

Basic c29tZXVzZXJuYW1lOnNvbWVwYXNzd29yZA==

Наконец URL закодирован:

auth=Basic%20c29tZXVzZXJuYW1lOnNvbWVwYXNzd29yZA%3D%3D

Например, с облачной учетной записью SCORM вы можете получить их из раздела LRS в разделе «Поставщики действий». Где Ключ == Имя пользователя и Секрет == Пароль.

person AaronLS    schedule 23.03.2015