Как ключи с ограниченной областью действия будут использоваться для записи? (Ключи записи с областью действия возвращают 401 неавторизованный.)

Как ключи области используются для операций записи?

Когда я пытаюсь использовать ключ записи (с заданной областью действия), API отвечает 401 Unauthorized; «главный ключ записи» работает как шарм. Использование ключа области действия для операций чтения также работает.

Я предполагаю, что мой выбор фильтров и т. д. не работает, но я не могу найти никаких подробностей в документация о том, как ключи области действия работают для write операций.

(Для контекста я работаю над ограничением ключей области для принудительного применения определенных значений параметров. По сути, использование ключей области для «разбиения» коллекций по заданному ключу, чтобы несколько арендаторов могли записывать в одну и ту же коллекцию, не имея возможности фальсифицируют ценности друг друга.)

Я использую фильтр, подобный следующему:

{
  "filters": [
    {
      "property_name": "whatever",
      "operator": "eq",
      "property_value": "client value"
    }
  ],
  "allowed_operations": ["write"]
}

Я использую .net SDK для создания ключа области, а затем могу проверить значения фильтра, расшифровав ключ. Он будет использоваться в веб-приложении, поэтому используйте JS-библиотеку Keen IO, например:

var client = new Keen({
    projectId: "…",
    writeKey: "…", // <- generated scoped write key goes here
    readKey: "…",
    protocol: "https",
    host: "api.keen.io/3.0",
    requestType: "jsonp"
});

client.addEvent("my-collection", { /* … */ }, function (err, res) { /* … */ });

Какова СОП для записи с ограниченной областью действия на Keen.IO?


person Cornelius    schedule 15.05.2015    source источник


Ответы (1)


SOP: API Keen ожидает, что вы предоставите ключ области действия с поддержкой записи в качестве writeKey в вашем POST запросе.

Ключи с ограниченной областью действия для операций write не будут работать так, как вы предлагаете (по крайней мере, сегодня). В настоящее время ключи с ограниченной областью для записи не делают ничего, кроме запутывания ваших основных ключей/ключей записи. Все данные свойств, которые вы добавляете как часть каждого события, должны по-прежнему предоставляться в полезных данных JSON метода addEvent на стороне клиента.

Как правило, мы рекомендуем реализации на стороне сервера в тех случаях, когда вам необходимо защитить/обработать ваши записи перед их отправкой в ​​Keen.

person terrhorn    schedule 18.05.2015