2

我是逻辑应用程序的新手,正在尝试构建身份验证请求工作流以获取令牌以在后续请求中重复使用。

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

非常感谢。

奈杰尔

4

2 回答 2

3

如果您使用的是客户端应用程序方法,则可以使用类似这样的方法来获取 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"
}

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

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

于 2018-07-19T15:39:26.557 回答
0

从逻辑应用文档:

如果您的参数在请求的标头或正文中使用,则该参数可能通过访问运行历史记录和传出 HTTP 请求可见。确保相应地设置您的内容访问策略。授权标头永远不会通过输入或输出可见。因此,如果该秘密正在那里使用,则该秘密是不可检索的。

所以标题可能在那里,但从输出中看不到。

于 2018-02-25T08:03:45.813 回答