0

我有一个安全的 API 学生 API,我可以通过 OAuth2.0 客户端凭据流访问它,它使用IConfidentialClientApplication应用程序创建访问令牌并访问受保护的应用程序。

现在使用 OAuth 2.0 资源所有者密码凭证访问安全 API。我主要使用微软 github 页面中的代码。

https://github.com/azure-samples/active-directory-dotnetcore-console-up-v2

我可以使用用户名和密码登录,也可以生成访问令牌。但此访问令牌无法访问我的安全学生 API。尽管示例代码能够访问 Microsoft 图形 API,但它无法访问我的安全 API。

我也尝试为我的安全学生 API 允许公共客户端流,并解密两个访问令牌以查看差异。有很多不同。我在这里注意到的是在 ROPC 流程中使用IPublicClientApplication在获取令牌时我无法提供 ResourceId。所以“aud”在 ROPC 令牌和其他领域也是不同的。谁能告诉我哪里可能出错或如何解决上述情况?

4

1 回答 1

0

我认为您可能需要执行以下两个步骤才能获得对您自己的 API 有效的令牌:

  • 在 Azure AD API 配置中公开 API 范围
  • 在 Azure AD 密码客户端配置中添加 API 权限

请参阅我的Azure AD 博客文章的第 6 步,了解其外观。本文还解释了一些令牌差异。

于 2020-12-12T09:30:24.330 回答