我想对尝试使用我的 SS Web 服务的用户进行身份验证。我找到了示例代码并遵循了 PLURALSIGHT 教程,但我想知道在第一次连接期间使用的用户/密码是否被加密或网络上的某些东西?
在这个时候,我们曾经用证书来保护我们的 WCF,但那是一个真正的痛苦!同时在每个 WS 上传递用户/密码是安全故障。
SS 如何管理认证参数的安全性?我可以这样使用它而不用担心可能的安全故障吗?
我想对尝试使用我的 SS Web 服务的用户进行身份验证。我找到了示例代码并遵循了 PLURALSIGHT 教程,但我想知道在第一次连接期间使用的用户/密码是否被加密或网络上的某些东西?
在这个时候,我们曾经用证书来保护我们的 WCF,但那是一个真正的痛苦!同时在每个 WS 上传递用户/密码是安全故障。
SS 如何管理认证参数的安全性?我可以这样使用它而不用担心可能的安全故障吗?
ServiceStack只是一个标准的 ASP.NET 或 HttpListener Web 应用程序。在任何 Web 应用程序中加密 HTTP 流量的标准方法是通过 https 调用您的服务。HTTPS 在您的 ServiceStack 服务(即 Web 应用程序层)之外启用/配置,因此在启用 SSL 时,ServiceStack 本身不需要任何特别注意。
在 ServiceStack 上设置 HTTPS 与任何其他 IIS/ASP.NET 或 HttpListener 应用程序相同。在这两种情况下,HTTPS 都是在 Web服务器/主机级别(例如 IIS)而不是在您的 Web 应用程序(例如 ServiceStack)中启用的传输层安全 (TLS)协议。因此,在寻求如何启用 SSL 时,您应该查看如何在 WebServer 主机级别启用它,例如 IIS、Nginx、HttpListener 等(而不是 ServiceStack)。
例如,如果您将 ServiceStack 托管在 ASP.NET 主机中,那么在 Google 上简单地搜索 IIS SSL将提供大量的说明和类似这样的演练。如果您将 ServiceStack 托管在自托管 HTTP 侦听器中,请改为查看此答案。
凭证将以纯文本形式发送,您需要为身份验证流量配置 SSL。
如果您的服务正在企业环境中使用并且您有 AD,则可以考虑使用 WSHttpSecurity 绑定和绑定配置集以使用 Windows 凭据。这可以消除证书的使用。如果你的服务是跨企业的,而且你没有AD,你就得做证书
如果您使用的是 Windows 凭据类型,这里有一个示例配置
<security mode="Transport">
<message clientCredentialType="Windows" />
</security>