WebAPI-令牌端点和API端点的单独部署

时间:2019-04-12 15:56:03

标签: authentication asp.net-web-api2 token bearer-token

我有两个webapi项目,它们将作为两个不同的网站部署在同一服务器上-server / site1和server / site2。它们都使用令牌认证。我可以在第三个webapi项目中仅部署在服务器/令牌站点上的令牌端点,以便从此处检索到的令牌可用于site1和site2上的身份验证吗?

1 个答案:

答案 0 :(得分:1)

您的问题

  

我有两个webapi项目,它们将作为两个不同的网站部署在同一服务器上-server / site1和server / site2。它们都使用令牌认证。我可以有一个第三个webapi项目,该项目只有部署在服务器/令牌站点

上的令牌端点

我希望部署在同一服务器上,但要使用子域:

  • site1.example.com
  • site2.example.com
  • auth.example.com

这使您可以更轻松地在服务器周围移动内容。

  

以便从此处检索的令牌可用于在site1和site2上进行身份验证?

是的,但是正如我已经提到的,我不会在同一个域中这样做。

因此,您似乎想要实现的是Single Sign On(SSO)

  

单点登录(SSO)是对多个相关但独立的软件系统进行访问控制的属性。   相反,单次注销是一种属性,单次注销操作将终止对多个软件系统的访问。   其他共享身份验证方案(例如OpenID和OpenID Connect)提供了其他服务,这些服务可能要求用户在登录资源期间做出选择,但是如果这些其他服务(例如用户同意)得到授权,则可以配置为单点登录禁用。

因此,要实现SSO,您可以使用OpenID Connect

  

OpenID Connect 1.0是OAuth 2.0协议之上的简单身份层。它允许客户端基于授权服务器执行的身份验证来验证最终用户的身份,并以可互操作且类似于REST的方式获取有关最终​​用户的基本配置文件信息。   OpenID Connect执行许多与OpenID 2.0相同的任务,但是这样做的方式是API友好的,并且可由本机和移动应用程序使用。 OpenID Connect定义了用于可靠签名和加密的可选机制。 OAuth 1.0a和OpenID 2.0的集成需要扩展,而在OpenID Connect中,OAuth 2.0的功能与协议本身集成在一起。

可能的解决方案

我不建议您实施自己的解决方案,而是将其委派给身份验证提供程序,或使用开放源代码包来实施。

似乎您正在使用DOTNET,因此,我建议您阅读this quick start的文档,该文档将指导您在带有某些正式库的新项目中设置SSO。

  

在此快速入门中,您将学习如何使用ASP.NET MVC解决方案以及通过OpenID Connect使用基于Web浏览器的传统应用程序来通过Microsoft实现登录。您将学习如何在ASP.NET应用程序中通过工作和学校帐户启用登录。

或者,您可以使用Azure Active Directory中的SSO。

  

单点登录(SSO)在用户登录Azure Active Directory(Azure AD)中的应用程序时增加了安全性和便利性。本文介绍了单点登录方法,并可以帮助您在配置应用程序时选择最合适的SSO方法。

对于阅读本文但使用其他语言的任何人,请参阅以下SSO包示例:

走额外的里程

一旦您部署了自己的解决方案,我建议您投入大量资金来保护它。对于服务于Web应用程序的API,您可以采用多层防御,从reCaptcha V3开始,然后是Web Application Firewall(WAF),最后如果可以负担得起User Behavior Analytics(UBA)解决方案。如果您想了解和理解为什么对正确保护API至关重要,可以阅读this series的文章,这些文章将教您如何使用API​​密钥,用户访问令牌,HMAC和TLS固定保护API以及如何绕过它们。虽然该系列文章是在移动api的上下文中进行的,但许多文章对于Web api仍然有效。

Google reCAPTCHA V3

  

reCAPTCHA是一项免费服务,可保护您的网站免受垃圾邮件和滥用的侵害。 reCAPTCHA使用高级风险分析引擎和适应性挑战,以防止自动化软件参与您网站上的滥用行为。这样做是为了让您的有效用户轻松通过。

     

...可帮助您检测网站上的滥用流量,而不会引起用户的摩擦。它会根据与您网站的互动情况返回得分,并为您提供更大的灵活性以采取适当的措施。

WAF - Web Application Firewall

  

Web应用程序防火墙(或WAF)过滤,监视和阻止与Web应用程序之间的HTTP通信。 WAF与常规防火墙的区别在于,WAF能够过滤特定Web应用程序的内容,而常规防火墙充当服务器之间的安全门。通过检查HTTP流量,它可以防止源自Web应用程序安全漏洞的攻击,例如SQL注入,跨站点脚本(XSS),文件包含和安全性错误配置。

UBA - User Behavior Analytics

  

Gartner定义的用户行为分析(UBA)是一个有关检测内部威胁,针对性攻击和财务欺诈的网络安全流程。 UBA解决方案着眼于人类行为模式,然后应用算法和统计分析从这些模式中检测出有意义的异常,即表明潜在威胁的异常。 UBA不会跟踪设备或安全事件,而是跟踪系统的用户。像Apache Hadoop这样的大数据平台通过允许它们分析PB级的数据来检测内部威胁和高级持久威胁,正在增强UBA功能。