我正在尝试在我的Web API应用程序中支持JWT承载令牌(JSON Web令牌),我迷路了.
我看到对.NET Core和OWIN应用程序的支持.
我目前正在IIS中托管我的应用程序.
如何在我的应用程序中实现此身份验证模块?有什么办法可以使用<authentication>类似于我使用表单/ Windows身份验证的方式配置吗?
这个话题令我难以置信.我是HTTP应用程序的新手,但需要开发一个消费来自某个地方的JSON数据的iPhone客户端.我选择了MS的Web API,因为它似乎很容易,但是当涉及到对用户进行身份验证时,事情变得非常令人沮丧.
令我惊讶的是,在几个小时的Google搜索后Authorize,我无法找到一个明确的示例,说明如何从登录屏幕向下验证用户,直到使用我的ApiController方法中的属性.
这不是一个问题,而是一个如何准确执行此操作的示例请求.我看过以下几页:
尽管这些解释了如何处理未经授权的请求,但这些请求并没有明确地表明类似于某种类似的LoginController东西,要求用户凭据并验证它们.
有谁愿意写一个很好的简单例子或指出我正确的方向,拜托?
谢谢.
使用新的ASP.NET Web API测试版.我似乎无法获得建议的用户身份验证方法.建议的方法似乎是,将[Authorize]过滤器添加到API控制器.例如:
[Authorize]
public IEnumerable<Item> Get()
{
return itemsService.GetItems();
}
Run Code Online (Sandbox Code Playgroud)
但这并不像预期的那样有效.请求资源时,您将被重定向到登录表单.哪个不适合RESTful webapi.
我该怎么办呢?它在未来的版本中会有不同的工作吗?或者我应该回到实现我自己的动作过滤器?
我有兴趣为web.api创建API密钥,并允许客户端使用API密钥与API进行通信,而不是web.api提供的授权.
我希望多个客户端能够与web.api进行通信.我可以使用api密钥而不是创建用户名和密码,并允许客户端与客户端通信.
有没有这样的内置功能?
如果有人想实施它,你会怎么回事呢?
为REST apis实施身份验证的最佳实践是什么?
使用BASIC auth + SSL或类似http://tools.ietf.org/html/draft-hammer-http-token-auth-01?
是否有可用的现有解决方案(适用于.NET/WebApi)?
简短问题: 我在.NET中使用Web API服务,并且只使用HTML和AngularJS创建了一个站点.
如何仅通过我的网络授权我的服务?
我正在寻找一个似乎很常见的问题的安全答案,但事实并非如此.我在后期阅读了很多答案,想法和各种事情,但我找不到解决方案.
让我们假设我有一个来自MS的Web Api服务(最新的服务).所以我必须使用需要消耗它的应用程序.我们来定义两个场景.
场景1:
在同一个IIS中,我有一个ASP.NET MVC 3/4,其特点是所有MVC工作都在客户端,由AngularJS制作,因此App直接从JavaScript指向Web Api服务.
场景2:
我有一个第三方应用程序直接指向Web Api服务,并且位于其他网络/站点/任何但相关的任何内容.
所以,我的问题是:
如何验证两个系统,以便Web Api服务提供对两个系统的访问(我不在乎是否相同),并且不向例如具有REST客户端的人提供访问权限,并且登录到具有用户/通行证授权的网站?我希望这两个例子都能说明我感兴趣的观点.
请在下面评论您需要以更好的方式改进此问题!
顺便说一句,不,不能使用混淆.我想像一个令人耳目一新的令牌,但我无法想象.
我正在设计一个JSON Web API,并希望通过唯一ID来区分客户端,以便监控使用情况并阻止恶意/行为不端的客户端.API不是封装在JavaScript库中,也不是Web应用程序独有的,任何客户端类型都可以使用它(桌面,电话等).
问题是,Web应用程序(官方网站)也是API本身的客户端,因此必须公开其API密钥.因此,某些用户可以从页面上的JavaScript中提取密钥并使用它,而不是生成自己的密钥.
是否有可能以某种更好/更聪明的设计选择来某种方式缓解这个问题,或者我是否必须忍受这样一个事实:任何恶意使用API的人都可以利用这个?
我可以100%控制前端应用程序(EmberJS)和后端服务器(Go),因此可以建议任何更改.
注意:问题不在于身份验证或安全性本身,而是如何要求第三方用户另外使用API密钥(!)进行身份验证!
我对WCF样本真的不感兴趣.我发现的DotNetOpenAuth实现也不完整或假设为WCF.我发现Thinkitecture.IdentityServer.45不是轻量级的,不适合构建我的新WebAPI项目.我甚至发现Oauth2DotNet项目几乎没有真正的信息.
微软已发布了一些 Oauth/OpenID相关项目,但我甚至找不到适合这些项目的文档.
我的项目:创建一个新站点,为使用.NET 4.5和ASP.NET WebAPI的授权移动应用程序提供"REST样式"API服务.由于这些应用程序不一定必须代表用户行事,我们认为"双腿"Oauth是可以接受的,因为我们希望能够在特定应用程序退出时关闭并拒绝访问我们的API.手.
在所有这些中,我花了一周时间尝试使基本实现工作,但甚至无法识别各种令牌类型以及构成令牌本身的内容.这真的不应该那么困难,我发现缺乏有关主题的基本信息非常令人沮丧.是的,这些规格已经公布,但是它们没有被提炼出来并准备好实施.
我希望扩展到与WepAPI的Authenticate属性正确集成的理想解决方案,可能作为ActionFilter/AuthorizationFilter,这样我就可以在尝试授权访问一个或多个优雅的REST-ful API方法之前识别和验证远程应用程序.
哪里是"入门"?
我将使用MembershipReboot 进行我的asp.net web api身份验证,我应该实现X509证书.
msdn中有一篇关于如何:使用X.509证书保护服务的文章,该文章适用于使用ServiceHost类的WCF服务.那么问题是如何在asp.net web api服务中实现这一目标?可能吗?
我在这里看过一些帖子,但似乎找不到合适的答案,希望有人可以提供帮助.
我见过你可以添加
[认证]
mvc控制器的属性.这在人们可以登录的网站情况下是合理的,但我有一个与Web服务通信的iOS应用程序.我想限制只访问我的应用程序.
我认为所需的"步骤"是:
如何利用mvc框架完成这个或类似的工作?
(PS:看到喜欢的帖子这却是非常不现实添加此逻辑每一段代码的动作,也什么样的"挑战"我会创造?)
我为我的(android)移动应用程序构建了一个Restful Web API,现在我正在尝试保护对API的访问.我正在阅读这个主题大约一个星期,我得到了整个范围 - 从那些说不可能获得Restful API的人到那些说Https(SSL)就足够了的人.
在这里,我不想开始讨论.我已经解决了OAuth或OAuth2并不重要(据我所知,OAuth似乎是更好的选择,但在Microsoft教程中他们使用OAuth 2,所以我在这里很困惑),是的,我知道他们完全不同,但我对搜索感到非常沮丧,我会接受(我必须承认,我更容易这样做).正如我所说,我正在寻找大约一个星期,我得到的只是概念(很多都是).你发送一些数据 - 可怕的开始 - 通常用户名/密码到服务器,你的数据正在被处理,你得到一个令牌 - 魔法停止 - .在SO上有很多关于这个主题的问题,但大多数答案都是不准确的(不幸的是不可用).例如,我得到了这个如何保护WEB API,很好的答案,但没有真正使用它们,或者这个实现Web API与OAuth和单页应用程序.我也从微软教程中得到了一些例子,但是代码中有很多开销,关于OAuth的部分不太清楚(这很不幸,因为整个例子应该是关于OAuth的).我可以发布大量声称可以谈论这个话题的链接,但实际上它们没有任何帮助.
我正在寻找的是一个简单,非常简单的ASP.NET OAuth(2)实现示例.如果我可以将它与fiddler一起使用,在标题中提供用户名/密码并使用grant_type: xxx我获取令牌(允许的用户名/密码可以在项目内部进行硬编码,那么就不需要Entity框架了.实现或后端的任何数据库).如果有人能够解释我如何使用这个令牌来授权用户(我得到它我必须提供带有[Authorize]属性的Controller函数,但是这个令牌检查是如何以及在哪里完成的呢?)也会很棒.但请不要发布任何有关OAuth的理论,我不需要,我在这里寻找Asp.Net Web Api中OAuth的实际实现
谢谢
我一直在努力解决如何简化我们当前/未来WebAPI的WebAPI /身份验证.我是新手,但我会尽力解释.我们从一个WebAPI开始,并设置ASP.Net Identity来处理身份验证等.然后我们设置另一个,很快它将是30.

这里的问题很明显 - 对于每个新的WebAPI,我们必须插入另一个MS Identity Authorization层.在某些情况下,只有一个庞大的WebAPI可以工作,但在这种情况下,这些是完全独立的产品(加上其糟糕的设计).
所以我们想拍摄这样的东西:

但我很难弄清楚每个WebAPI如何获取用户信息,以便我可以检查角色等.
我读过的WebAPI认证的许多职位,如:这个 这个和这个,但它似乎一切我觉得有保护该单一的WebAPI做,我们知道该怎么做了.感觉我们需要的是针对WebAPI的SSO方法.我们似乎需要像外部身份验证方法(如Facebook,Twitter等),但使用我们自己的后端数据库 - 我只是不知道正确的术语.
所以我转向专家寻求帮助,让我朝着正确的方向前进:
我可以在幕后一起破解它,但感觉有一个明显的答案,我失踪了.
是否有内置的方法在每个WebAPI和Authentication API之间设置"Trust"来执行以下操作:

这是我们目前的方向:

如果我能够在正确的方向上获得一般性的推动,那么我会很高兴.我只是不想重新发明轮子.
哦,在我忘记之前,我们在IIS上使用asp.net 4.5,WebAPI 2,Identity 2
谢谢你的任何指示.
asp.net-web-api ×10
c# ×6
asp.net ×5
security ×4
web-services ×3
oauth ×2
rest ×2
angularjs ×1
api ×1
api-design ×1
api-key ×1
asp.net-mvc ×1
jwt ×1
oauth-2.0 ×1