Oauth 2.0 如何在没有用户交互的情况下使用Azure Active Directory保护公共REST API

Oauth 2.0 如何在没有用户交互的情况下使用Azure Active Directory保护公共REST API,oauth-2.0,azure-active-directory,Oauth 2.0,Azure Active Directory,我正在开发一个RESTAPI,它将被不同组织中的许多客户机使用。更具体地说,组织中的客户端应用程序将连接到RESTAPI以交换信息。多个用户可以使用此客户端应用程序。客户端应用程序应以不与用户交互的方式处理身份验证 考虑到以下情况,Azure Active Directory如何实现这一点: 我只想为每个组织而不是该组织中的每个用户创建一个广告用户帐户 客户端应用程序的用户不应该知道他正在与我的API对话,因此他不应该进行身份验证 客户端应用程序应使用提供给组织的AD帐户进行身份验证 当通过RE

我正在开发一个RESTAPI,它将被不同组织中的许多客户机使用。更具体地说,组织中的客户端应用程序将连接到RESTAPI以交换信息。多个用户可以使用此客户端应用程序。客户端应用程序应以不与用户交互的方式处理身份验证

考虑到以下情况,Azure Active Directory如何实现这一点:

  • 我只想为每个组织而不是该组织中的每个用户创建一个广告用户帐户
  • 客户端应用程序的用户不应该知道他正在与我的API对话,因此他不应该进行身份验证
  • 客户端应用程序应使用提供给组织的AD帐户进行身份验证
  • 当通过RESTAPI接收到传入调用时,我应该能够识别调用方
  • 此处概述的示例:永远不要完全涵盖此场景:

  • 在守护进程示例中,没有用户交互,但是我应该为每个组织创建一个密钥(secret)。这似乎很难处理

  • 在其他场景中,始终存在用户交互

  • 仅在.NET中支持使用用户名和密码进行身份验证,而无需用户交互:


  • 如果您能给我指引正确的方向,我们将不胜感激

    我认为这个问题误解了守护进程模型。在AAD中,使用单个密钥创建单个应用程序,然后为每个组织创建服务主体。您只需要一个密钥-您可以通过查看访问令牌中的tid声明来识别调用组织。

    您可以分享有关此方法的更多详细信息吗?似乎@Will_B正在谈论可以从Azure门户中的任何注册应用程序配置的API访问密钥。不过,我不知道以后如何在OAuth中使用它们,我也很感兴趣。问题中提到的守护进程示例描述了如何在OAuth中使用它们。