Arhn - архитектура программирования

Ошибка 401 Не авторизован. Как использовать один и тот же токен для разных URL-адресов?

В ASP.Net Identity с использованием Oauth2 токен создается после того, как пользователь аутентифицирован, публикуя имя пользователя и пароль.

Перед вызовом действия из одного API пользователь должен запросить токен:

http://mysite/auth/token

После получения токена можно выполнять все вызовы веб-API, отправляя

Authorization: Bearer <token> заголовок:

GET http://mysite/auth/product/1
PUT http://mysite/auth/client/42

У меня есть несколько веб-API, которые используют централизованную систему безопасности для аутентификации, проблема в том, что я получаю Unauthorizaed (401), когда пытаюсь вызвать другой API (с другим URL-адресом). Например:

GET http://mysite/myapi/product/1

Если безопасность централизована и оба API используют одну и ту же базу данных пользователей для аутентификации, как я могу использовать один и тот же токен для разных URL-адресов?


Ответы:


1

Наконец, я нашел решение, добавив один и тот же тег machineKey в оба файла Web.config:

<system.web>
...
<machineKey validationKey="57B449BBA8F9E656087FF7848727E122C5F5966F65AC0FC25FB3532193B59CFCD13B370883FFC184C1F1500638F33E6F67B37CAED1D9BC65BBC6CFFB232BFD0B" decryptionKey="6D9FBE88D16B3FA5B5E6B37460BBE50DA85D5B4C482159006B5A337C58AA9E79" validation="SHA1" decryption="AES" />
...
</system.web>

как предлагается в принятом ответе здесь с использованием генератора machineKey.

Из документации:

Совместное использование билетов аутентификации между приложениями
Если вам нужен единый вход для работы в нескольких приложениях, расположенных в разных виртуальных каталогах, вам необходимо использовать общий билет аутентификации. Чтобы настроить общий билет проверки подлинности, необходимо вручную сгенерировать значения validationKey и decryptionKey и убедиться, что каждое приложение использует эти значения. Если вы хотите совместно использовать билеты для всех приложений на вашем сервере, вы можете вручную установить эти значения для элемента в файле Web.config на уровне компьютера. Чтобы совместно использовать билеты для определенных приложений, вы можете использовать элемент с общими значениями validationKey и decryptionKey в файлах Web.config соответствующего приложения.

Обновлено – предупреждение системы безопасности

Предупреждение безопасности

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

Прочтите Приложение A по ссылке, чтобы узнать, как создавать собственные ключевой элемент машины.

18.08.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..