JWT 令牌 - 受众、发行人和子域

Posted

技术标签:

【中文标题】JWT 令牌 - 受众、发行人和子域【英文标题】:JWT Token - Audience, Issuer and subdomains 【发布时间】:2017-07-12 07:23:53 【问题描述】:

我有一个带有自定义身份验证的 Azure 移动应用。 JWT 令牌是使用 Audience、Isser 和 SigningKey 创建的。 问题是我在多个区域部署了应用程序,每个区域都有它的 url,它是 mydomainname.com 的子域。 我可以将 *.mydomainname.com 之类的通配符 URL 用于 Audience 和 Issuer 吗?

【问题讨论】:

【参考方案1】:

您应该使用区域关联性,因此,例如,要去 US-West 的用户在整个会话期间都会转到 US-West。在这种情况下,区域 JWT 将保留在区域中,您无需处理此问题。

如果您确实需要处理这个问题,那么您将不得不更加自定义,自己验证和验证令牌。在这种情况下,您可以关闭应用服务身份验证并使用自定义受众/颁发者验证令牌。

【讨论】:

我使用流量管理器,其 url 是受众和发行者,它工作正常。但是当我想测试给定区域的 web api 时,我不能,因为令牌仅在我调用流量管理器端点时才有效。 为了测试,分别构建一个具有适当受众/发行者的 JWT,然后使用它。 好主意!您知道任何 JWT 代币网站吗?我不需要我的签名密钥吗?正如在 github 上发布的那样,我不知道它在哪里,因为我从未设置过它,并且在使用 Kudu 时我看不到它的定义。 我不确定 jwt.io 是否可以工作 - 它验证没有问题。我使用node SDK快速生成了一个。在 Kudu 中,签名密钥称为 WEBSITE_AUTH_SIGNING_KEY,在您打开应用服务身份验证/授权时创建。 我没有 WEBSITE_AUTH_SIGNING_KEY(请参阅我在 azure 移动应用程序 github 上的帖子)。但我在服务器上调试得到它。我试过jwt.io。我还没有设法让它工作。我会用信息更新问题。

以上是关于JWT 令牌 - 受众、发行人和子域的主要内容,如果未能解决你的问题,请参考以下文章

Jwt 无法有效的发行者或受众

AzureAD JWT 令牌受众声明前缀使 JWT 令牌无效

如何使用基于网站的 ExpressJs 设置 CORS 和 JWT 令牌验证

Cognito - 如何在与客户端从(通过放大)获得令牌的子域不同的子域上对 nodejs 后端的客户端进行身份验证?

当客户端需要令牌以访问多个受众时如何创建 JWT?

如何为 OAuth2 访问令牌指定受众?