Повторное использование ответа токена авторизации в приложении логики
Я новичок в приложениях логики и пытаюсь создать рабочий процесс запроса аутентификации, чтобы получить токен для повторного использования в последующих запросах.
API, к которому я подключаюсь, требует, чтобы я сначала выполнил вход, используя имя пользователя и пароль в теле первоначального запроса. Предполагая, что аутентификация прошла успешно, он вернет токен в заголовке ответа "Авторизация".
Я получаю сообщение об успешной аутентификации в теле ответа, но заголовок авторизации не отображается, и я могу только предполагать, что это по соображениям безопасности?
Если это ожидаемое поведение, может ли кто-нибудь указать мне, как получить токен аутентификации и надежно сохранить его для последующих запросов?
Запрос отправлен:
{
"uri": "https://URL",
"method": "POST",
"headers": {
"Accept": "text/html",
"Authorization": "*sanitized*",
"Content-Type": "application/json"
},
"body": {
"password": "USERNAME",
"username": "PASSWORD" }
}
Ответ получен:
{
"statusCode": 200,
"headers": {
"Vary": "Accept-Encoding",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept, Authorization",
"Access-Control-Expose-Headers": "accept, authorization, content-type",
"X-Frame-Options": "SAMEORIGIN",
"X-XSS-Protection": "1; mode=block",
"Cache-Control": "private",
"Date": "Fri, 23 Feb 2018 18:01:36 GMT",
"X-Powered-By": "ASP.NET",
"Content-Type": "text/html",
"Content-Length": "60"
},
"body": "{\"ErrorUsernameOrPasswordIncorrect\":false,\"Successful\":true}"
}
Большое спасибо.
Найджел
2 ответа
Если вы используете метод клиентского приложения, вы можете использовать что-то вроде этого, чтобы получить токен oauth.
После того, как вы отправите учетные данные, вы получите ответ в следующем формате: JSON:
{
"token_type": "Bearer",
"scope": "user_impersonation",
"expires_in": "3599",
"ext_expires_in": "0",
"expires_on": "1529679207",
"not_before": "1529675307",
"resource": "https://xxxxxxxxx.com",
"access_token": "xsjlhldjahdjhakdsdas"
}
Затем вам нужно будет использовать действие Parse JSON и скопировать ответ для создания схемы JSON в действии, чтобы иметь возможность использовать поле access_token в качестве динамического поля.
Что касается дизайна, я думаю, что вы можете использовать некоторые продукты Azure, чтобы сохранить возвращенный токен доступа и проверить дату истечения срока действия, чтобы обновить его, когда вам это нужно.
Из документации приложения Logic:
Если ваш параметр используется в заголовках или теле запроса, этот параметр может быть виден при доступе к истории выполнения и исходящему HTTP-запросу. Убедитесь, что настроили свои политики доступа к контенту соответственно. Заголовки авторизации никогда не видны через входы или выходы. Таким образом, если секрет используется там, секрет не подлежит восстановлению.
Так что заголовок может быть там, но не будет виден из вывода.