0

Я разрабатываю свой первый успокоительный API для проекта.Как передать дополнительные данные в исходную аутентификацию API Базовая аутентификация

Я понимаю и получил базовую аутентификацию для правильной работы, используя формат Basic username:password, где username: password кодируется Base64.

В настоящее время мы передаем адрес пользователя в поле «имя пользователя» и пароль в поле «пароль».

Проблема в том, что адрес электронной почты не является уникальным в приложении. Он уникален для каждой организации в рамках приложения.

Таким образом, чтобы успешно зарегистрировать пользователя, нам нужно передать другое значение API, который указывает, что представляет собой организация (идея должна была пройти по ключу, который будет использоваться для поиска организации)

Моя проблема заключается в том, что основной процесс проверки подлинности позволяет передавать только два значения (имя пользователя, пароль), тогда как мне нужно передать три. Есть ли способ передать больше данных на основной процесс аутентификации? Или мне нужно использовать какой-либо другой тип аутентификации для достижения этого?

Моя идея состояла в том, чтобы изменить базовую аутентификацию, чтобы она принимала три значения, например: username: password: orgkey Я не знаю, разрешено ли это или идет против протокола для базовой проверки подлинности?

Хотя этот вопрос действительно не зависит от языка, для записи я использую Coldfusion и плагин Taffy.

Любое руководство будет оценено по достоинству.

Благодаря

+1

Что вы предлагаете, идет против протокола для базовой аутентификации. Однако вы можете передать имя объединенного пользователя и понять его на другой стороне. Например, передайте имя пользователя, являющееся комбинацией организации и имени пользователя, с трубкой | символ между ними. Что-то вроде myUsername | myOrganization: myPassword. Затем на задней панели просто разделите имя пользователя на две переменные и обработайте их по отдельности. –

+0

Что делать, если вы сначала запросили имя/код организации, убедитесь, что она существует, а затем запрашиваете учетные данные? –

+0

@DavidByers - это (ваше предложение) - это маршрут, который мы собираемся предпринять для первоначальной разработки, а затем переходим к методу маркера, предложенному ниже, как только мы перейдем от доказательства концепции к производству. Спасибо за ввод. – Cheeky

ответ

2

Базовая аутентификация не хороший протокол для обеспечения безопасности веб-API, как я пытался объяснить в моих ответах here и here.

Это нормально поддерживать его для таких вещей, как автоматизация тестирования и т. Д., Но я бы не использовал его в производстве. Вам будет трудно хранить секретный пароль, так как ни JavaScript, ни мобильные клиенты не могут доверять, чтобы хранить секреты.

Непонятно, почему адреса электронной почты не являются уникальными в разных организациях. Вы не отправляете часть после знака at ('@')?

Нельзя ввести другое поле в поле основных учетных данных. Согласно RFC7235, поле учетные данные могут содержать только:

credentials = auth-scheme [ 1*SP (token68/#auth-param) ] 

Я хотел бы посмотреть на схему аутентификации на основе маркеров безопасности, как с помощью JWT tokens.

+0

Я не уверен, хочет ли автор использовать эту аутентификацию через webservice жестко. Если это будет так, тоны, конечно, лучшее решение. Однако, похоже, что его веб-служба требует проверки подлинности несколькими сторонами внутри его организации. В этом случае базовая аутентификация выглядит как правильное решение. –

+0

Уникальные почтовые адреса: возможно, его организация использует какую-то внутреннюю почтовую службу (например, [email protected]). –

+0

Чтобы ответить на ваши вопросы о адресе электронной почты, система представляет собой приложение SAAS, которое позволяет одному и тому же письму регистрироваться и использоваться в разных организациях на платформе. Поэтому пользователь с адресом электронной почты [email protected] может зарегистрироваться в Org1 и Org2, используя тот же адрес электронной почты. Это преднамеренное и необходимое требование платформы - отсюда и вопрос. Когда пользователь регистрируется в Интернете, мы знаем организацию по субдомену. С API мы этого не делаем, поэтому вопрос. – Cheeky

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