【问题标题】:Use authentication of App service for authorization of Function App使用 App 服务的鉴权对 Function App 进行授权
【发布时间】:2019-08-23 11:24:20
【问题描述】:

在 Azure 中,我有一个与 Function App 通信的 Web 应用程序服务。我在 Web 应用程序上有 Azure AD 身份验证。我想确保函数应用仅由经过身份验证的用户调用。

作为一种选择,我在考虑是否可以将一些令牌或任何数据从 Web 应用程序传递到函数应用程序,以验证用户。

如果没有,请分享任何其他方法。

注意:Web 应用使用 Angular,Function App 使用 Java。

【问题讨论】:

  • 您需要测试 Thread.CurrentPrincipal.Identity.IsAuthenticated 属性,以确保调用函数应用的用户或应用程序经过身份验证。
  • 函数应用程序是在java中。我已在问题中更新了此信息。如果有人在前端进行了身份验证,然后我从前端调用函数应用程序(API),函数应用程序如何知道某人是否已通过身份验证?要让 Function App 知道这一点,需要做什么?
  • 在 SO 上有另一个线程可以解决这个问题 - stackoverflow.com/questions/56430002/…

标签: azure azure-active-directory azure-web-app-service azure-functions


【解决方案1】:

如果您的 azure 函数身份验证级别是匿名的或还需要函数密钥,我们可以使用访问令牌直接访问您的 Azure 函数 API。详细步骤如下。

  1. 为 Azure Function 配置 Azure AD。请参考https://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings#auth
  2. 获取访问令牌
Method : POST
URL:  https://login.microsoftonline.com/your directory ID/oauth2/token 

Header:  
        Content-Type : application/x-www-form-urlencoded
Body
       "grant_type ": "client_credentials",
        "client_id": "the app id of the Azure AD application you project Azure function",
        "client_secret": ":the app secret of the Azure AD application you project Azure function",
        "resource": "the app id of the Azure AD application you project Azure function"

  1. 调用 Azure 函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-26
    • 2012-10-13
    • 2014-06-21
    • 2018-06-17
    • 1970-01-01
    • 2021-03-18
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多