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

时间:2016-08-11 14:39:01

标签: oauth-2.0 azure-active-directory

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

如何通过Azure Active Directory实现这一目标,并考虑到:

  1. 我只想为每个组织创建一个AD用户帐户,而不是该组织中的每个用户。
  2. 客户端应用程序的用户不应该知道他正在与我的API通信,因此他不应该进行身份验证。
  3. 客户端应用程序应使用提供给组织的AD帐户进行身份验证。
  4. 当通过REST API收到来电时,我应该能够识别主叫方。
  5. 此处列出的示例:https://azure.microsoft.com/nl-nl/documentation/articles/active-directory-code-samples/从未完全覆盖此方案:

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

    2. 在其他情况下,始终存在用户互动。

    3. 仅在.NET中支持使用用户名和密码进行身份验证而无需用户交互:http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/

    4. 任何向我指出正确方向的指导都将受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

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

相关问题