IdentityServer客户端机密可以防御哪些类型的攻击?

问题描述 投票:0回答:2

我正在尝试了解客户秘密的目的。是否阻止某人创建伪装成我的服务器的假服务器?如果没有,那是什么?它可以防止其他任何攻击吗?

client-server identityserver4 identityserver3
2个回答
0
投票

有时您有一些由客户端调用的ApiResources,流中没有任何用户。例如,使用instagram的api获取instagram的帖子。现在instagram希望控制客户端的行为,因此在任何api调用之前都应授权客户端使用instagram。在这种情况下,您需要为每个客户端定义一些秘密以识别它们。这是客户秘密使用的一个例子。


0
投票

客户端机密用于标识需要访问令牌才能代表用户访问资源的应用程序。只有在身份验证服务中注册的客户端才能请求访问。不仅需要用户身份验证,而且客户端应用程序也必须合法。否则,有人可能会冒充客户端应用程序。

这种类型的客户端授权只能由机密客户端(OAuth2 Client Types)使用。

机密-能够维护其机密性的客户凭据(例如,在具有以下内容的安全服务器上实现的客户端限制访问客户端凭据),或者能够安全使用其他方式进行客户端身份验证。

公共-无法维护其机密性的客户凭据(例如,在客户端使用的设备上执行的客户端资源所有者,例如已安装的本机应用程序或网站基于浏览器的应用程序),并且无法使用安全客户端通过任何其他方式进行身份验证。

当与不能保证此机密性(即隐式)的客户端一起使用流时,无法验证客户端的身份。在那些情况下,可以通过重定向URI进行验证。作为一项附加措施,它应限制刷新令牌的暴露。]​​>

出于安全考虑,不再正式建议使用隐式流,对此类型的客户端的建议是授权码+ PKCE

扩展名。 See OBBA document

为了对基于浏览器的应用程序中的用户进行授权,当前最佳做法是:>

o在PKCE中使用OAuth 2.0授权代码流扩展

o要求OAuth 2.0状态参数

o建议完全匹配重定向URI,并要求重定向URI的主机名与应用程序的URL的主机名匹配从

o不要在前通道中返回访问令牌

© www.soinside.com 2019 - 2024. All rights reserved.