Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 仅允许从我自己的应用程序访问我的REST API?_Windows_Restful Authentication - Fatal编程技术网

Windows 仅允许从我自己的应用程序访问我的REST API?

Windows 仅允许从我自己的应用程序访问我的REST API?,windows,restful-authentication,Windows,Restful Authentication,我们有一个Windows应用程序,它托管了一个WebBrowser控件,可以访问REST API。我们希望限制只能通过Windows应用程序本身访问API(例如,无法在浏览器中访问API等) 我们如何才能做到这一点?不必公开任何类型的凭证(例如,如果我们使用HTTP Basic auth,则可以通过反向工程应用程序本身查看用户名和密码),最安全的方法是什么 非常感谢 编辑:我们计划免费分发应用程序,因此我们无法控制连接的来源。将REST接口限制为仅接受127.0.0.1(主页)的连接,然后仅使用

我们有一个Windows应用程序,它托管了一个WebBrowser控件,可以访问REST API。我们希望限制只能通过Windows应用程序本身访问API(例如,无法在浏览器中访问API等)

我们如何才能做到这一点?不必公开任何类型的凭证(例如,如果我们使用HTTP Basic auth,则可以通过反向工程应用程序本身查看用户名和密码),最安全的方法是什么

非常感谢


编辑:我们计划免费分发应用程序,因此我们无法控制连接的来源。

将REST接口限制为仅接受127.0.0.1(主页)的连接,然后仅使用URL或在URL中从您的REST消费应用程序进行连接(如果您使用计算机的外部IP或DNS名称,它将被视为远程连接并被拒绝访问)


您可以通过web服务器设置或REST api的代码来实现这一点。在一个项目中,我们发布了一个iPhone应用程序,该应用程序也连接到了我的团队开发的REST api,我遇到了类似的情况

为了安全起见,我们使用了一种有点像三条腿的方案。应用程序需要使用用户凭据对一个仅负责验证和生成访问令牌的独立服务进行验证。一旦应用程序收到有效的访问令牌,对api的后续请求需要在授权hea中发送此令牌德


你也可以做类似的事情。如果你提出一个认证方案来验证你的应用程序是否为有效的API使用者,你可以使用HTTPS上的basic auth来获取令牌,然后只有通过使用这些令牌,使用者才能访问API的其余部分。

我们计划分发应用程序,因此我们无法控制连接的位置操作将从.127.0.0.1开始。1是机器内部网络接口的通用IP-任何计算机(Linux、Unix、Windows、Mac)了解localhost和127.0.0.1。如果您正在分发,那么您需要将该限制编码到REST API中,这样您就不必依赖最终用户web服务器配置。您能详细说明一下吗?我不太明白“侦听”是如何实现的在localhost上可以提供帮助吗?我是服务提供商,并且正在分发应用程序来访问服务,而无需任何类型的用户注册过程。在REST代码中-无论使用何种语言,您都需要检查连接客户端的IP地址。通过拒绝IP 127.0.0.1以外的所有连接,只有来自与e REST API可以连接。因此流量永远不会通过网络。该应用程序将作为免费应用程序在互联网上分发,每个人都可以下载和使用。令牌是否会随着时间的推移而改变,还是对同一用户保持不变?如果它保持不变,iphone用户就不能在应用程序之外以任何其他方式使用它?不是吗令牌对每个用户都是唯一的,每个用户都有一个生存期,验证令牌是否在允许的生存期内是验证过程的一部分,以及生成令牌时指定的其他两个字段。令牌在返回之前也在服务器上加密。我们所做的不同之处在于我们的使用情况r凭据,并不特别限于我们的iphone应用程序。您需要想出一种类似的方法,但验证您的应用程序还是验证用户。一种方法是向应用程序颁发证书,并将其用于客户端验证。您对这个问题有过满意的回答吗?