小编Phi*_*ley的帖子

无法将 AppId 扩展与 WebAuthn 用于先前注册的 U2F 密钥

随着u2f api 的显着消亡,我尝试使用 AppId 扩展转向 WebAuthn API,以支持之前在 U2F 注册的安全密钥。从阅读文档中我可以看出,我认为我做得正确,但是,当尝试进行身份验证时,浏览器提示我点击我的密钥,并且我的密钥正在闪烁,但是点击它后,我收到错误“您“正在使用未在此网站注册的安全密钥”。在比较现有的 u2f 身份验证请求时,我使用相同的 appid 和密钥句柄。

U2F 签名请求示例:

{
  "version": "U2F_V2",
  "challenge": "zSeDYPUjDVbLQ9HDle3g2QYrHEdG5vGBwAhzqdm_PAY",
  "appId": "https:\/\/subdomain.domain.net\/app-id.json",
  "keyHandle": "H-tBDjS1Fgr19cprKYUnZ9cDSE2AiX_Ld1kdPR2ruhIUbYr7jP3dflxkjZmfvqxkg5q84eXBr3ium3ETJ61Fww"
}
Run Code Online (Sandbox Code Playgroud)

这是我的服务器响应,它被传递给 webauthn js 库:

{
  "publicKey": {
    "challenge": "iygioh7vECe9OCQ5K0IBa0XeTD5hxX+aOBGimrJAntg=",
    "timeout": 60000,
    "rpId": "domain.net",
    "allowCredentials": [
      {
        "type": "public-key",
        "id": "SC10QkRqUzFGZ3IxOWNwcktZVW5aOWNEU0UyQWlYX0xkMWtkUFIycnVoSVViWXI3alAzZGZseGtqWm1mdnF4a2c1cTg0ZVhCcjNpdW0zRVRKNjFGd3c="
      }
    ],
    "userVerification": "discouraged",
    "extensions": {
      "appid": "https://subdomain.domain.net/app-id.json"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

该凭证 ID 的 Base64 url​​ 解码版本是

H-tBDjS1Fgr19cprKYUnZ9cDSE2AiX_Ld1kdPR2ruhIUbYr7jP3dflxkjZmfvqxkg5q84eXBr3ium3ETJ61Fww
Run Code Online (Sandbox Code Playgroud)

我注意到在我们的 U2F 版本中,appid url 由于某种原因被转义,因此我在 WebAuthn 版本中尝试了相同的操作,但这并没有什么区别。

我还尝试了不带尾随填充 ( ) 的挑战和凭证 ID =,但这也没有帮助。 …

fido-u2f webauthn

5
推荐指数
1
解决办法
708
查看次数

如何检查用户是否通过Google Admin SDK API启用了2要素身份验证

我正在使用Google Admin SDK API管理我们组织的Google应用程序帐户中的用户(创建/更新)。我们允许用户选择使用2要素身份验证功能,并且当我们的内部支持代表之一查询他们的帐户时,我希望能够确定是否启用了该帐户。查看https://developers.google.com/admin-sdk/directory/v1/reference/users上的文档,我看不到任何表明该设置的属性。

我是否可以通过其他方法检查是否通过API启用了它?

google-admin-sdk google-directory-api

4
推荐指数
1
解决办法
2415
查看次数

适用于 CloudFront create-invalidation 的 AWS CLI 返回旧的失效

我正在尝试使用 AWS CLI 在我的 CI 服务中的 CloudFront 上创建失效,以在部署时自动使文件失效。但是,CLI 返回一条成功消息,但引用的失效是一个月前的,并且没有创建新的失效。

我正在安装和启用 cloudfront:

pip install awscli
aws configure set preview.cloudfront true
aws configure set preview.create-invalidation true
Run Code Online (Sandbox Code Playgroud)

然后我创建失效:

aws cloudfront create-invalidation --cli-input-json '{"DistributionId":"ABC123ABC123","InvalidationBatch":{"Paths":{"Quantity":1,"Items":["/index.html"]},"CallerReference":"codeship"}}'
Run Code Online (Sandbox Code Playgroud)

响应示例,当我在 7/13 东部时间下午 4 点运行此命令时:

{
  "Invalidation": {
    "Status": "Completed",
    "InvalidationBatch": {
      "Paths": {
        "Items": [
          "/index.html"
        ],
        "Quantity": 1
      },
      "CallerReference": "codeship"
    },
    "Id": "1234567890",
    "CreateTime": "2015-06-12T18:39:56.360Z"
  },
  "Location": "https://cloudfront.amazonaws.com/2015-04-17/distribution/ABC123ABC123/invalidation/1234567890"
}
Run Code Online (Sandbox Code Playgroud)

当我登录到 CloudFront 时,我可以看到 6/12 的一次失效,但昨天运行此命令时什么也没有。

我做错了什么吗?这个 CLI API 甚至可以工作吗?

amazon-web-services amazon-cloudfront aws-cli

3
推荐指数
1
解决办法
1718
查看次数