我想保护我的Azure WebApi与第三方供应商(FB,G+.我只需要一封有效的电子邮件)。在web项目中,它似乎将与Jwt中间件结合使用,但我想知道是否也可以只使用Azure来完成同样的任务。
Azure认证让我有点困惑--它似乎没有给我的Asp.Net Web应用提供任何东西。我仍然需要配置Startup.cs中的所有中间件,如果完全关闭身份验证,应用程序仍然可以正常工作。
我可以做Auth0做的同样的事情--基于来自FB或G+的访问令牌来发布自己的Jwt令牌--但希望避免这种情况。
请你指出正确的方向好吗?
发布于 2016-02-12 21:40:10
你有几个选择:
App服务认证
应用程序服务身份验证不需要应用程序内部的任何代码,因为应用程序服务有一个网关来检查请求的授权。根据设置的不同,您可以保护整个站点,也可以保护单个资源(通过在MVC/WebAPI中的端点上使用[Authorize]属性)。
使用最新的版本,您可以根据站点控制授权,包括通过导航用户到<yoursiteurl>/.auth/login/<provider>手动触发登录。通过使用defualt,可以启用令牌存储,以便向<yoursiteurl>/.auth/me发出请求并从提供程序获得信息。
中间件认证
这是在单页ASP.NET模板中进行授权的默认方式。中间件身份验证使用OAuth/OpenId来保护资源。此选项在应用层而不是网关上执行。如果您使用的是ASP.NET标识(来自单页项目模板),则人员登录的电子邮件将自动存储在“用户”表中。以上链接中的教程提供了许多关于如何使其工作的详细信息。
确保在这两种情况下都使用[Authorize]属性触发授权。
希望这能帮助你朝着正确的方向开始。
https://stackoverflow.com/questions/35328950
复制相似问题