首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >各种设置的WebAuthn中继方ID

各种设置的WebAuthn中继方ID
EN

Stack Overflow用户
提问于 2021-02-02 11:03:20
回答 1查看 412关注 0票数 0

我有一个角11项目,它实现了一个WebAuthn注册。后端是SpringBoot 2.4

WebAuthn登录应该在项目的两个部分工作,“主”和“查看器”域设置相当复杂:

主要工程

Urls

本地:https://localhost:4202

查看器项目

Urls

地方:https://localhost:4200

  • Staging: Server)

(

代码

environment.ts

代码语言:javascript
复制
prodUrls: ['company-project.com'],
webauthn: {
  name: "Company DEV",
  rpId: "localhost"
}

environment.prod.ts (在构建中替换)

代码语言:javascript
复制
prodUrls: ['company-project.com'],
webauthn: {
  name: "Company Prod",
  rpId: "plattform.intra.company.com" // gets overridden by values in "prodUrls"
}

webauthn.service.ts

代码语言:javascript
复制
private _getRelyingPartyInfo(): RelyingParty {

  let rpId = environment.webauthn.rpId;

  /**
   * Check if the Hostname matches one of our Prod Hostnames
   * and use this instead
   */
  environment.prodUrls.forEach((url, index) => {
    if (location.hostname.indexOf(url) > -1) {
      rpId = environment.prodUrls[index];
    }
  });

  const rp = {
    id: rpId,
    name: environment.webauthn.name
  };

  return rp;
}

问题

  • 它在本地工作,使用rpId localhost (后端和本地前端)
  • ,它不工作在准备->后端抛出

WebAuthnException消息: rpIdHash与预先配置的rpId的哈希不匹配。

  • 它应该使用company-project.com作为rpId (害怕部署,因为它在暂存上不起作用)

我试过的

为了进行暂存,我将rpId更改为develop.plattform.intra.company.com,我可以在"main“中注册和登录。登录“查看器”也会引发一个错误。

规范并没有非常具体地说明什么应该工作:https://www.w3.org/TR/webauthn/#relying-party-identifier,它只说明什么不能工作。我想,多个子域使分期的事情变得复杂了吗?

什么是用于分期的正确的rpId,以及company-project.com作为rpId应该在prod上工作的假设是否正确?

EN

回答 1

Stack Overflow用户

发布于 2021-02-18 20:39:22

为了进行暂存,我将

更改为develop.plattform.intra.company.com,我可以注册并在"main“中登录。登录“查看器”也会引发一个错误。

得到断言的代码是什么?您可能还会遇到this other question。您需要将get断言RP设置为用于注册的相同RP ID。如果您不这样做,它将默认为原点,这对于您的子域将是不同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66008413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档