ServiceStack:BasicAuth和Security

时间:2013-01-07 18:17:43

标签: authentication servicestack

我想验证用户尝试使用我的SS网络服务。我找到了示例代码,并按照PLURALSIGHT教程进行了操作,但我想知道在第一次连接时使用的用户/密码是加密的还是网络上的东西?

此时我们曾经用证书确保我们的WCF,但这真的很痛苦!并且同时在每个WS上传递用户/密码是安全故障。

SS如何管理身份验证参数的安全性?我可以像这样使用它而不用担心安全性失败吗?

3 个答案:

答案 0 :(得分:2)

凭据将以纯文本格式发送,并且您应该为身份验证流量配置SSL。

答案 1 :(得分:2)

ServiceStack只是一个标准的ASP.NET或HttpListener Web应用程序。在任何Web应用程序中加密HTTP流量的标准方法是通过https调用您的服务。 HTTPS在ServiceStack服务(即Web应用程序层)之外启用/配置,因此启用SSL时ServiceStack本身不需要特别注意。

在ServiceStack上设置HTTPS与任何其他IIS / ASP.NET或HttpListener应用程序相同。在这两种情况下,HTTPS都是transport layer security (TLS)协议,在WebServer / Host级别(例如IIS)和Web应用程序中的(例如ServiceStack)中启用。因此,在寻求如何启用SSL时,您应该了解如何在WebServer主机级别启用它,例如IIS,Nginx,HttpListener等(而不是ServiceStack)。

E.g。如果您在ASP.NET主机中托管了ServiceStack,那么对IIS SSL on Google的简单搜索将提供大量说明并逐步完成like this one。如果您已在自托管HTTP侦听器中托管ServiceStack see this answer instead

答案 2 :(得分:0)

如果您的服务正在企业环境中使用,并且您有AD,则可以考虑使用绑定配置集的WSHttpSecurity绑定来使用Windows凭据。这可以消除证书的使用。如果您的服务是跨企业的,而您没有AD,则必须提供证书

如果您正在使用Windows凭据类型,请参阅示例配置

<security mode="Transport">
   <message clientCredentialType="Windows" />
</security>