WCF错误。无法找到一个令牌认证器
我需要通过SSL消费WCF服务,而该请求需要用一个证书签名,并且需要用另一张证书验证响应. 执行代码时会遇到此错误: 找不到'system.indentitymodel.tokens.x509securitytoken'的令牌身份验证者.该类型的令牌无法根据当前的安全设置接受. 根据WCF跟踪,它在试图验证响应签名时失败了,因为我可以看到服务器的响应. 这是我的WCF服务设置:
8 2024-04-21
编程技术问答社区
在Web API中基于令牌的认证,没有任何用户界面
我正在ASP.NET Web API中开发REST API.我的API只能通过基于非浏览器的客户端访问.我需要为我的API实施安全性,因此我决定使用基于令牌的身份验证.我对基于令牌的身份验证有一个公平的理解,并且已经阅读了一些教程,但是它们都有一些用户界面的登录.我不需要任何UI登录,因为客户端将通过HTTP帖子传递登录详细信息,该帖子将从我们的数据库中授权.如何在我的API中实现基于令牌的身份验证?请注意 - 我的API将以高频访问,因此我还必须照顾性能. 请让我知道我是否可以更好地解释. 解决方案 我认为MVC和Web API之间的区别存在一些混乱.简而言之,对于MVC,您可以使用登录表单并使用cookie创建会话.对于Web API,没有会话.这就是为什么要使用令牌. 您不需要登录表单.令牌端点就是您所需要的.就像Win所述一样 以下是一些客户端C#代码可以获取令牌: //using System; //using System.Collect
2 2024-04-10
编程技术问答社区
使用Azure AD B2C对Web App和Web API进行基于令牌的认证
方案: Web应用程序和Web API都需要对服务器端进行身份验证并保护. 要求: Web应用程序为浏览器的内容提供服务,浏览器应直接调用Web API(即浏览器到API). 问题: 是否可以使用令牌对Web应用程序和API进行身份验证? 任何样本代码或明确的方向都将不胜感激. 通常,使用cookie对Web应用程序进行身份验证,并使用代币对API进行身份验证.有一些可用的示例项目 更新1 应用程序在应用程序控制器中保存TokenValidationParameters,并使用bootstrapContext.Token bootstrapContext.Token抓取服务器到服务器通信的抓取. 根据@dsstrockis,我正在尝试在验证结束后不久(不在应用程序对中)中获取id_token. 我在OpenIdConnectAuthenticationOptions.Notifications类中使用SecurityTokenValidated在
Django TokenAuthentication缺少'授权'http头
我正在尝试将Tokenauthentication与我的观点之一一起使用. 如 - 指导/身份验证/,我添加了我从登录名中收到的令牌,称为HTTP标头:我发送的请求中的"授权". 问题在于,在我的Unitests中,身份验证失败. 查看Tokenauthentication类,我看到正在检查的标题是" http_authorization"而不是"授权" 我正在使用的视图: class DeviceCreate(generics.CreateAPIView): model = Device serializer_class = DeviceSerializer authentication_classes = (TokenAuthentication,) permission_classes = (IsAuthenticated,) 将标题更改为" http_authorization"似乎有效,但是有些问题. 我错过了什么吗
18 2024-03-20
编程技术问答社区
django(rest_framework)中的令牌认证不工作
标题几乎说明了一切.我正在尝试使用令牌进行身份验证.我从Django数据库中获取信息到我的Flutter应用程序.我已经成功地从REST_FRAMEWORK中检索了我的令牌,并将其添加到了其余请求的标题中.我在Django打印了这些标题,这导致了 { 'Content-Length': '0', 'Content-Type': 'text/plain', 'User-Agent': 'Dart/2.5 (dart:io)', 'Accept-Encoding': 'gzip', 'Authorization': 'Token 10cf58e1402b8e48c1a455aaff7f7bcf53e24231', 'Host': '192.168.0.110:8000' } 但是,结果是带有登录表单的网页,而不是我要求的其余数据.我想念什么? settings.py ... REST_FRAMEWORK = { 'DEFAULT
12 2024-03-20
编程技术问答社区
实施令牌认证
我必须遵循哪些步骤才能在我的网页中实现令牌身份验证? 任何摘要或链接都将不胜感激. 我想实现类似于Facebook或Google,首次客户端loggin并接收令牌,然后在下一个操作中使用它. 我也阅读了有关Oauth的信息,但我不想从第三方访问我的申请. 感谢您的漫长回应,对我来说似乎很清楚,我需要阅读更多有关此的信息. 我想要的是知道"步骤"来实现使用令牌身份验证的基本Web应用程序.那就是用户登录一次,然后可以做出一些操作:添加内容,编辑等. 我知道我的意思是类似于会话,在该会话中,服务器在HTML标题上添加了Session_ID,然后确定了以后的请求并与该会话关联.我阅读会议的方式不好,因此我想在去OAuth之前实现类似的系统或Facebook.可能我说的是类似于Oauth的东西(我的读物不多),但witj两腿而不是三足. 解决方案 您应该考虑自己的要求,选择适当的协议和某些实现它的不错的软件. 真的很难没有更多细节: 您是在谈论一
12 2024-03-20
编程技术问答社区
从DRF的token字符串中获取用户对象?
我有一个令牌字符串,来自 >. 我需要获取相应的用户对象.我该怎么做? 解决方案 from rest_framework.authtoken.models import Token user = Token.objects.get(key='token string').user 其他解决方案 如果您直接从Token类中调用用户对象,如 @aliva的解决方案中所示,您将获得一个原始的部分Django用户,而只有数据库中的字段.如果您需要获取真实的用户对象,例如它的计算属性,您可以做到这一点: from rest_framework.authtoken.models import Token user_id = Token.objects.get(key=request.auth.key).user_id user = User.objects.get(id=user_id) 其他解决方案 这是 The default authorization tok
如何在Flask中实现令牌认证?
我试图允许用户使用来自单独的Web服务的帐户登录我的烧瓶应用程序.我可以联系此Web服务的API并获得安全令牌.我如何使用此代币来验证用户,以便他们可以访问限制视图? 我不需要将用户保存到自己的数据库中.我只想对它们进行认证.我相信这可以使用烧瓶 - 安全性和@Auth_Token_Required Decorator完成,但是文档不是很详细,我不确定如何实现. 编辑: 这是一个代码示例: @main.route("/login", methods=["GET", "POST"]) def login(): payload = {"User": "john", "Password": "password123"} url = "http://webserviceexample/api/login" headers = {'content-type': 'application/json'}) #login to web serv
16 2024-03-19
编程技术问答社区
django rest框架-令牌认证注销
我已经根据 django Rest Framework文档实现了令牌身份验证. 表格我阅读的内容,drf的令牌身份验证非常简单 - 每个用户一个令牌,令牌不过期,并且适用于始终使用(我对吗?). P> 我知道那里有更好的实践,但是现在DRF代币身份验证对我来说很好. 我的问题是 - 使用正常DRF令牌身份验证的注销的最佳实践是什么? 我的意思是,当用户注销时,我应该从客户端删除令牌吗?然后登录再次获得令牌?我应该删除令牌并生成新的吗? 有经验的人吗? 解决方案 这是我用来注销的简单视图: from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView class Logout(APIView): def get(self, request, format=None)
使用JWT令牌认证时,是否真的需要刷新令牌?
我正在引用另一篇文章,该帖子使用JWT讨论使用刷新令牌. jwt(json web令牌)自动延长 我有一个非常常见的架构的应用程序,我的客户端(Web和移动)与REST API对话,然后与服务层和数据层进行对话. 我了解JWT令牌身份验证,但是我对如何使用刷新令牌有些困惑. 我希望我的JWT身份验证具有以下属性: JWT令牌的到期2小时. 客户每小时都会刷新令牌. 如果用户令牌未刷新(用户不活动,应用程序不打开)并且有效,则他们需要在想要恢复时登录. 我看到很多人声称使用刷新象征的概念使这一更好的体验使它成为更好的体验,但是,我认为这并不是这样的好处.似乎不得不管理它. 我的问题如下: 如果我要使用刷新令牌,那么在该代币上进行良好实践的长期到期仍然是有益的吗? 如果我要使用刷新令牌,是否会使用USERID和/或JWT令牌来持续存在? 当我每1小时更新我的​​令牌时,这是如何工作的?我是否要创建一个端点,以吸引我的JWT令牌或
8 2024-03-19
编程技术问答社区
什么是基于令牌的认证?
我想了解基于令牌的身份验证的含义.我搜索了互联网,但找不到任何可以理解的东西. 解决方案 我认为这很好地解释了 基于令牌的身份验证系统是 简单的.允许用户输入他们的 用户名和密码为了 获得一个令牌,使他们能够 获取特定资源 - 没有 使用其用户名和密码. 一旦获得令牌, 用户可以提供令牌 - 哪个 提供对特定资源的访问 一段时间 - 到遥控器 网站. 换句话说:添加一个间接级别以进行身份​​验证 - 而不必用每个受保护资源的用户名和密码进行身份验证,用户以这种方式对以这种方式进行认证(在有限的持续时间内),获得时间限制作为回报,并在会议期间使用该令牌进行进一步的身份验证. 优点很多 - 例如,用户可以将令牌传递给他们,一旦获得了它,就可以将其传递给其他一些自动化系统,他们愿意在有限的时间和有限的资源中信任这些系统,但会不愿意信任他们的用户名和密码(即,允许他们允许他们访问的每个资源,永远或至少在更改密码之前). 如果还不清楚,请编辑您的问题,以澄清您的100%
74 2024-03-19
编程技术问答社区
从Angular JS中使用Web API Token认证时,请求错误(400)。
我想将Angular JS作为客户端建立Web API代币身份验证.我对Web API内的代币身份验证的概念非常陌生. 我不想使用ASP.NET身份默认表来添加或身份验证用户.我有自己的数据库和一张名为" lomoseeeaccess"表的表,其中包含applyEnumber作为用户ID和密码.我想根据该表中的值对用户进行身份验证,然后要授予令牌,以便他们获得后续呼叫的授权.我已经使用了所有必需的OWIN和ASP.NET参考来实现结果.这是我的不同组件的代码: - global.asax public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { // AreaRegistration.RegisterAllAreas(); GlobalConfig
如何在Asp.Net Web API 2中用Owin OAuth2修改令牌端点响应体
我想从令牌端点响应中修改响应主体. 我试图用MessageHandler拦截/token 请求,但它不起作用. 我能够通过覆盖OAuthAuthorizationServerProvider.TokenEndpoint方法来添加一些其他信息,但我无法创建自己的响应主体. 有没有办法拦截/soken 请求? 编辑 我发现了如何从令牌端点响应中删除响应主体内容,例如:HttpContext.Current.Response.SuppressContent = true; 似乎是实现目标的正确方法,但是现在,当我使用context.AdditionalResponseParameters.Add()方法添加我的自定义信息时,SuppressContent阻止任何更改. 现在我有这样的东西: // Removing the body from the token endpoint response HttpContext.Current.Respo
2 2024-03-16
编程技术问答社区
angular js返回用户自动登录
我通过令牌具有身份验证系统.用户使用电子邮件和密码登录,并将令牌返回并保存在cookie中.现在,如果用户关闭浏览器或选项卡并返回站点,则用户在cookie中的令牌进行身份验证,但是,可以使用几毫秒,并且如果他们返回到安全站点(例如其用户配置文件) ,并且该应用程序不够快,无法加载初始用户数据并将其标记为登录,然后将它们重定向到登录页面. 我的第一个想法只是将用户数据放在每个请求的响应中,而该请求是有效的,但这将创建许多不必要的数据流量. 有更好的解决方案吗? 解决方案 使用路线上的解决方案等待直到加载用户信息.因此,是重定向登录页面还是允许路由访问取决于加载用户处理程序的处理程序.例如: function requiresLogin(){ return ["$auth",function($auth){ return $auth.verifiedUser(); }]; } $routeProvider.when("...",{ ...., resolve:{
4 2024-02-25
编程技术问答社区
在基于令牌的认证中使用Refesh令牌是否安全?
我正在建立一个基于令牌的身份验证(使用Angular客户端使用Passport/JWT的Node.js). 用户输入他的凭据后,他将获得一个访问令牌,他在标题内的每个请求中都会发送(标题:载体令牌).​​ 我不想每当他的访问令到期时提示登录请求(关于每天我猜), 我听说过 refresh tokens .刷新令牌永远不会到期(或很少到期)并能够无限期续订. 我不明白几件事,我可能会缺少一些东西: 长期/永不过期的刷新令牌如何破坏生命的安全性 访问令牌. cookie可以偷走并被使用直到到期为止.代币的生活很短,所以他们更加安全, 但是,如果我提供长期刷新的令牌,我将失去使用令牌的优势. 注意:我知道刷新令牌是在初始登录处发送的,因此不能在每个请求中欺骗,但是如果它们以初始请求欺骗,它们很脆弱. 解决方案 刷新令牌与访问令牌不同:访问令牌仅呈现给资源服务器,刷新令牌仅呈现给授权服务器.访问令牌可以是独立的,因此它不需要对授权服务器的昂贵调用来检查其有
64 2024-01-09
编程技术问答社区
JSON网络签名(JWS)和JSON网络令牌(JWT)之间有什么区别?
我一直在编码 Java中的Restful 在Java中的服务.这就是我到目前为止所理解的: 使用 JSON Web令牌(JWT)具有三个部分:标题,有效负载和秘密(客户端和服务器之间共享). 我理解了这个概念,并在阅读有关JWT的同时偶然发现了 JSON Web签名(JWS) JWS也是一个编码实体,类似于JWT具有标头,有效载荷和共享秘密. 这两个概念(即JWT和JWS)有什么区别?如果它们在技术上相似,那么他们的实施? 有什么区别 这是我第一次使用基于令牌的身份验证,因此我可能完全误解了这个概念. p.s.:我在浏览示例时了解了JWS,该示例浏览了示例,请/p> 解决方案 JWT实际上使用 jws进行签名.来自规范的摘要的摘要: JSON Web令牌(JWT)是一种紧凑的URL安全手段 声称要在两党之间转移. JWT中的主张是 编码为JavaScript对象符号(JSON)对象,该对象被用作 JSON Web签名(JWS)结构的有效载荷或 JSON
28 2023-08-10
编程技术问答社区
令牌认证在Django Rest框架上不工作
我有一个Django应用程序,我将其用于会话中的API和令牌身份验证.我有REST_FRAMEWORK和REST_FRAMEWORK.AUTHTOKEN在我的已安装应用程序中.我已经迁移了数据库,可以为Django管理员中的用户创建令牌.我知道所有这些都可以使用,因为我正在访问REST_FRAMEWORK.AUTH_TOKEN的getair_auth_token视图,用于在用户数据在发布请求中提交并接收回来时返回令牌.当我尝试在我的应用程序中对视图集有tokenauthentication的视图函数提出get请求时,它会不断返回. {"detail":"Authentication credentials were not provided."} 设置文件 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes',
76 2023-04-17
编程技术问答社区
使用令牌认证的Java HTTP请求
我正在尝试向我运行的本地服务器提出GET请求.我在返回正确的数据时遇到了麻烦,我看到了"未经授权"的响应.鉴于字符串"令牌"是正确的. ,任何人都可以发现这个问题. protected Object doInBackground(Void... params) { try { String url = "http://192.168.0.59:8000/events/"; URL object = new URL(url); HttpURLConnection con = (HttpURLConnection) object.openConnection(); con.setDoOutput(true); con.setDoInput(true); con.setRequestMethod("GET");
36 2022-12-29
编程技术问答社区
Django TokenAuthentication缺少'授权'http头
我试图将Tokenauthentication与我的观点之一一起使用. 如 - 指导/身份验证/,我添加了我从登录名中收到的令牌,称为HTTP标头:我发送的请求中的"授权". 问题是在我的Unitests中,身份验证失败. 查看Tokenauthentication类,我看到正在检查的标题是" http_authorization"而不是"授权" 我正在使用的视图: class DeviceCreate(generics.CreateAPIView): model = Device serializer_class = DeviceSerializer authentication_classes = (TokenAuthentication,) permission_classes = (IsAuthenticated,) 将标题更改为" http_authorization"似乎有效,但是有些问题. 我错过了什么吗?
44 2022-08-27
编程技术问答社区