2017-01-30 6 views
1

У меня есть сценарий, когда вызывающий объект моих служб собирается передать JWT (токен JSON), и я хочу передать это значение пользовательскому авторизатору который использует лямбда-функцию, чтобы расшифровать ее и вернуть политику этому вызывающему, где эта политика может позволить этому пользователю или отказать в ней. в добавлении добавления значения заголовка после того, как лямбда завершит расшифровку JWT.Веб-сервис Amazon-API Gate way - Пользовательский авторизатор, использующий функцию лямбда-функции

для примера:

  1. Вызывающий (конечный пользователь) вызова службы serviceX (POST/Get).
  2. вызов достигает AWS API GATEWAY
  3. Service помечается уполномоченном способом, который является обычай доверитель
  4. Пользовательские Authorizer называет лямбда-функции
  5. функция Lambda расшифровать JWT
  6. функция
  7. Lambda добавляет новый заголовок/изменить существующий один
  8. конец службы (serviceX) получает запрос

Я выполнил все в приведенном выше примере, за исключением NUM ber 6, я не могу добавить новое значение заголовка из лямбда или изменить существующий.

Я много искал, и я не могу найти способ сделать это.

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

+0

Что вы используете в качестве интеграции? HTTP, Lambda, еще один сервис AWS? –

+0

Я использую HTTP –

ответ

1

Вы не можете установить заголовок из пользовательского авторизатора. Однако вы можете вернуть контекстную карту значений, которые вы можете использовать в функции serviceX.

Так обычай доверитель возвращает политику вместе с контекстом:

{ 
    "principalId": "yyyyyyyy", 
    "policyDocument": { 
     ... blah blah ... 
    }, 
    "context": { 
     "customvalue": "response-from-number-6" 
    } 
} 

Тогда вы можете получить доступ к нему в функции serviceX в следующем атрибуте:

$context.authorizer.customvalue 

ли это решить ряд 6 возврата значения из пользовательского авторизатора?

+0

, ссылаетесь ли вы на использование customvalue в полезной нагрузке/теге serviceX? и я использовал этого старшего для установки пользовательского значения в полезной нагрузке serviceX, но мне нужно использовать это значение, чтобы добавить его в заголовок запроса. есть ли у вас идеи, как это реализовать? –

+0

Вы можете использовать тот же синтаксис '$ context.authorizer.customvalue', чтобы установить значение для заголовка запроса для serviceX –