保护来自 Azure 函数的 WCF (asmx) 调用

Posted

技术标签:

【中文标题】保护来自 Azure 函数的 WCF (asmx) 调用【英文标题】:Securing WCF (asmx) Call From Azure Function 【发布时间】:2021-09-24 17:55:16 【问题描述】:

目前,代码从 Azure Function 调用 WCF 方法,一切正常。

现在的任务是 WCF 没有安全性。我需要保护 WCF,然后让客户端(Azure 函数)实现相同的安全性。

客户端和主机的语言都是 C#。

问题是; Azure Functions 没有要在终结点和安全性中添加的配置文件。我尝试通过代码添加它;

PortalServicesSoapClient psSoapClient = new PortalServicesSoapClient(new 
PortalServicesSoapClient.EndpointConfiguration(), url);
                
psSoapClient.ClientCredentials.UserName.UserName = "MyUsername";
psSoapClient.ClientCredentials.UserName.Password = "MyPassword";

到主机.asmx

public class AuthHeader : SoapHeader

    public string UserName;
    public string Password;

导致 AuthHeader 为空。

使用 Postman 进行测试确实成功传递了用户名和密码,但不是来自 Azure 函数。

邮递员的部分脚本

<soap12:Header>
    <AuthHeader xmlns="http://tempuri.org/">
        <UserName>MyUsername</UserName>
        <Password>MyPassword</Password>
    </AuthHeader>
</soap12:Header>

【问题讨论】:

【参考方案1】:

通常,Azure 函数是公共的。您部署它们,并且端点可通过函数上的地址公开使用。

因此您可以设置功能级别访问权限。这意味着您需要传递访问密钥。 还有一些其他方法可以保护 Azure Functions。您可以参考以下链接:

https://docs.microsoft.com/en-us/azure/azure-functions/security-concepts

谢谢。

【讨论】:

谢谢,但我已确保该功能;通过访问密钥。尝试保护从 Azure 函数对 WCF 的调用。 WCF 安全是问题所在。 如果此解决方案有其他问题,您可以阅读文档并尝试其他方式。

以上是关于保护来自 Azure 函数的 WCF (asmx) 调用的主要内容,如果未能解决你的问题,请参考以下文章

asmx 到 WCF 或 Web API

为啥我的受 AAD 保护的 Azure 函数在使用来自 UWP 应用的访问令牌调用时返回 401?

是否可以创建 WCF 服务端点来处理来自 Azure 服务总线的死信?

来自 WCF REST 服务的 Azure 缓存间歇性响应时间

Fiddler 不捕获 WCF 流量但捕获 ASMX 很好

iOS 应用程序的 WCF 或 Web 服务 (.asmx)?