Как я могу установить разрешения для файла RSS? - PullRequest
2 голосов
/ 16 апреля 2009

Я хочу создать собственный RSS-канал (я работаю в 3 Mobile, Australia) для потребления на мобильном телефоне INQ1 или любом другом устройстве для чтения RSS. Однако, протестировав его на встроенном в телефон ридере RSS, я понимаю, что без возможности защитить ленту паролем или иным образом ограничить доступ к нему у меня мало шансов на дальнейшее развитие этой идеи.

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

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

Обновление: Я должен был объяснить, что уже поместил разрешения на уровне папок в родительскую папку, что вызывает диалог обычной аутентификации при просмотре канала в браузере, но в результате просто неудачное обновление без объяснения или предупреждения в программе чтения RSS на телефоне, и оно неразличимо из-за отсутствия файла при следующей попытке обновить канал.

Ответы [ 5 ]

0 голосов
/ 18 апреля 2009

Если читатель в телефоне не поддерживает HTTP Basic или Digest, лучше всего создать уникальный URL-адрес канала для каждого потребителя. Пусть клиент войдет в систему и создаст ссылку с некоторым токеном, уникальным для этого пользователя. Если пользователь когда-либо уйдет, вы можете запретить этот токен, закрыв доступ.

Если вы пойдете по этому пути, вы, вероятно, захотите исследовать включение битов контроля доступа битов в ваш канал. Она не идеальна, но она соблюдается крупными агрегаторами, поэтому, если один из ваших клиентов решит подписаться на ленту новостей с помощью Reader или Bloglines, то в результатах поиска не должно появляться ничего.

0 голосов
/ 16 апреля 2009

Аутентификация на веб-сервере, вероятно, является лучшим решением, однако, чтобы обойти проблемы читателя, не поддерживающего его (Google упоминался, и у меня есть проблемы с Safari), вы можете реализовать простой ключ-значение для добавления в URL.

I.E.

http://www.mydomain/rss.php?key=value

Ваша система может затем «аутентифицировать» значение ключа и вывести RSS, недопустимый k-v может получить стандартное сообщение «недопустимая аутентификация» как отдельный элемент RSS или вернуть ошибку 40x.

Это не очень безопасно, так как вы можете увидеть k-v в URL, но это компромисс. HTTPS без аутентификации будет немного более безопасным.

0 голосов
/ 16 апреля 2009

Идея состоит в том, чтобы иметь аутентификацию по безопасному каналу. Эти посты объясняют это довольно хорошо:

0 голосов
/ 16 апреля 2009

Предполагая, что ваш канал RSS по HTTP, тогда базовая HTTP-аутентификация, вероятно, сработает. Это можно сделать либо на уровне веб-сервера (например, в IIS), либо с помощью любой инфраструктуры, которую вы используете для создания канала (например, в ASP.NET).

Схема аутентификации (базовое имя пользователя / пароль, NTLM, Kerberos и т. Д.) Зависит от вас. Если вы используете WCF для создания канала, то эти решения вы можете принять позже и применить при необходимости через config.

Вы просто хотите аутентифицировать потребителей канала или также зашифровать его, чтобы предотвратить чтение информации "человеком посередине". Если вам требуется шифрование, то, вероятно, проще всего реализовать SSL.

Вам следует избегать простого "сокрытия" RSS-канала путем изменения его имени.

Обновление: Ваш вопрос (с его обновлением) звучит так, как будто у вас действительно есть проблемы с RSS-клиентом на устройстве. Вам необходимо определить, понимает ли RSS-клиент телефона, как работать с базовой / дайджест-проверкой подлинности и т. Д.

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

Имеет ли устройство клиентский сертификат, который можно использовать для взаимного SSL? Если так, то это было бы идеально.

0 голосов
/ 16 апреля 2009

Полагаю, вы бы установили разрешения для самого канала, принудительно вводя аутентификацию, так же, как каналы Twitter. Проблема в том, что многие читатели (включая Google Reader) еще не поддерживают аутентифицированные каналы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...