【问题标题】:AAD Jwt token validates on localhost but not on serverAAD Jwt 令牌在 localhost 但不在服务器上验证
【发布时间】:2018-10-12 21:31:52
【问题描述】:

我正在开发 .net core 2.0 web api,并尝试使用 Azure Active Directory 令牌对其进行保护。我的客户端应用程序生成一个令牌并将其发送到要授权的 api。当我在 localhost 中运行我的 api 时一切正常,但是当我将它部署到我们的测试服务器时,突然出现 401 Unauthorized 错误。我检查了部署版本上的配置文件是否正确。服务器设置是否会阻止或更改 AAD 的工作?有人告诉我,它在哪里运行并不重要。这是真的还是服务器配置会以某种方式干扰到达 AAD 进行验证?

【问题讨论】:

  • 您能展示一下您是如何配置 JWT Bearer 处理程序的吗?通常它会验证令牌颁发者是否与预期的 AAD 租户匹配(或在多租户的情况下不检查)并且令牌中的受众 (aud) 是否与有效的受众集匹配。您可以使用jwt.ms 等工具检查这些内容。
  • 我们在服务器上安装了 SSL 证书,然后它就开始工作了。我不知道这是使用 AAD 令牌的要求。有人知道更多吗?

标签: jwt token azure-active-directory asp.net-core-2.0


【解决方案1】:

如果您的 AAD 令牌在 localhost 上验证,它很可能不会在已发布的应用程序上验证,反之亦然。在您的应用注册中,确保将回复 URL 设置为您发布的主页 URL(即https://myapp.azurewebsites.net)。

还要检查以确保您的 web.config 与您的应用注册匹配。

【讨论】:

    【解决方案2】:

    您是否将部署应用程序的 URL 添加为 Azure 门户中应用程序的回复 URL?见What to change when you deploy the sample to Azure

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 2020-07-16
      • 2016-12-29
      相关资源
      最近更新 更多