在Logic App中重用授权令牌响应

时间:2018-02-24 16:28:14

标签: azure azure-logic-apps api-authorization

我是逻辑应用的新手,我正在尝试构建一个Auth请求工作流来获取令牌,以便在后续请求中重复使用。

我要连接的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}"
}

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果使用的是客户端应用程序方法,则可以使用类似的方法获取oauth令牌。

enter image description here

发送凭据后,您将在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"
}

然后,您将需要使用“解析JSON操作”并复制响应以在操作中创建JSON模式,以便能够将access_token字段用作动态字段。

关于设计,我认为您可以使用某些Azure产品来保存返回的访问令牌并检查到期日期,以便在需要时刷新它。