【问题标题】:Azure AD Authentication in dotnet core 2 API and daemon applicationdotnet core 2 API 和守护程序应用程序中的 Azure AD 身份验证
【发布时间】:2018-05-06 04:58:32
【问题描述】:

我正在努力确定使用 Azure Active Directory 对我的 dotnet 核心 Web API 进行身份验证的最佳途径。

情况如下:

  • 在 Azure Active Directory 中创建的应用程序,Web API 对用户进行身份验证。它有多个与之关联的应用程序角色。
  • 需要向 Web API 进行身份验证的守护程序应用程序。

解决身份验证情况的最佳解决方案是什么?很难找到关于如何实际解决这个问题的明确文档。

感谢您的建议和帮助!

【问题讨论】:

    标签: azure .net-core asp.net-web-api2 azure-active-directory


    【解决方案1】:

    您的守护程序应用程序需要使用应用程序权限(成员类型 = 应用程序的应用程序角色)来调用 API。 您可以在此处查看如何定义它们:https://joonasw.net/view/defining-permissions-and-roles-in-aad

    例如,这是清单中的样子:

    {
      "appRoles": [
      {
        "allowedMemberTypes": [
          "Application"
        ],
        "displayName": "Read all todo items",
        "id": "f8d39977-e31e-460b-b92c-9bef51d14f98",
        "isEnabled": true,
        "description": "Allow the application to read all todo items as itself.",
        "value": "Todo.Read.All"
      }
      ]
    }
    

    然后您将应用权限分配给您的守护程序应用。

    之后,使用来自守护程序应用程序的客户端凭据进行身份验证就很简单了。 以 ADAL.NET 为例,您将使用 ClientCredential + API 的资源 URI 获取令牌。 您可以从 API 的应用注册中找到 URI(属性刀片,应用 ID URI)。

    然后,您可以将生成的访问令牌附加到 HTTP 请求,API 可以从 appid 声明中找到调用应用程序是谁,并从 roles 声明它们拥有哪些应用程序权限。

    【讨论】:

    • 好的,这是有道理的。这意味着我将有一个应用程序作为 API,一个应用程序作为可以访问 API 的守护程序?这两个应用程序都应该是 Azure AD 中的注册应用程序,那么正确吗?谢谢!
    • 好的 - 谢谢!在哪里将应用程序添加到应用程序角色?我只看到在“企业应用程序的刀片”下添加用户的能力。
    • 这些是应用程序权限,尽管它们在后台被称为角色。您必须通过应用注册的所需权限刀片要求访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 2020-11-23
    • 2022-10-25
    • 1970-01-01
    相关资源
    最近更新 更多