将对某些Azure功能的访问权限限制为AD组的成员

时间:2018-09-08 00:39:19

标签: azure-functions

最近在我的客户端域中试用Azure Functions,我已经成功部署了一个,并从.NET控制台应用程序中调用了它。

我想将对功能的访问限制为属于AD组成员的内部用户。我意识到这可能不是功能的含义,所以请不要犹豫表达您的保留意见。

尽管花了很多时间进行搜索,但我只能实现激活AppService身份验证,如here在“配置身份验证和授权”部分所述。

然后,我的控制台应用程序开始失败,响应内容为代码401未经授权,并且响应内容中显示“您无权查看此目录或页面”-到目前为止很好...我当时以为我可以告诉Azure要求成员身份在一个AD组中调用功能,如WCF,但是如何?我无法管理客户端的Azure Active Directory,所以也许我无法到达可以建立此关联的位置(尽可能)。

这是我调用该函数的代码:

    private static async void CallMyTypedFunctionAsync()
    {
        var functionAddress = "https://[...].azurewebsites.net/api/MyTypedFunction";
        var requestDto = new DataContracts.MyTypedFunctionReqest { X = 6, Y = 7 };

        HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, functionAddress)
        {
            Content = new StringContent(JsonConvert.SerializeObject(requestDto), Encoding.UTF8, "application/json")
        };

        var httpClient = new HttpClient();
        var response = await httpClient.SendAsync(message);
        var responseContent = await response.Content.ReadAsStringAsync();

        if (response.StatusCode == System.Net.HttpStatusCode.OK)
        {
            var responseDto = JsonConvert.DeserializeObject<DataContracts.MyTypedFunctionResponse>(responseContent);
            Console.WriteLine("CallMyTypedFunctionAsync's result: {0}", responseDto.Z); // 42
        }
        else
            Console.WriteLine("CallMyTypedFunctionAsync has failed. {0}: {1}", response.StatusCode, responseContent);
    }

1 个答案:

答案 0 :(得分:1)

正如Thomas所提到的,您需要将AD同步到Azure AD目录。 如何做,您可以参考Integrate your on-premises directories with Azure Active Directory

关于如何访问受Azure AD保护的Azure功能,请参考“功能”部分中的“使用身份验证” Azure Functions and App Service Authentication