Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
C# 有人能解释OAuth吗?_C#_Android_Security_Rest_Oauth - Fatal编程技术网

C# 有人能解释OAuth吗?

C# 有人能解释OAuth吗?,c#,android,security,rest,oauth,C#,Android,Security,Rest,Oauth,我在上读过一些关于它的文章,这显然是“一种发布受保护数据并与之交互的简单方法” 我认为这正是我所需要的,可以通过REST web服务提供一种安全的方式从android/iphone应用程序访问数据,但我不知道它到底是什么 那么,简单地说,它到底做了什么?有没有(真正)简单的例子可以让我效仿,最好是用c语言实现一些可以从智能手机应用程序访问的东西?来自Craig Stuntz提供的链接: 开放ID为您提供一个登录多个站点的功能。每次您需要登录Zooomr(一个使用开放ID的站点)时,您将被重定向到

我在上读过一些关于它的文章,这显然是“一种发布受保护数据并与之交互的简单方法”

我认为这正是我所需要的,可以通过REST web服务提供一种安全的方式从android/iphone应用程序访问数据,但我不知道它到底是什么


那么,简单地说,它到底做了什么?有没有(真正)简单的例子可以让我效仿,最好是用c语言实现一些可以从智能手机应用程序访问的东西?

来自Craig Stuntz提供的链接:

开放ID为您提供一个登录多个站点的功能。每次您需要登录Zooomr(一个使用开放ID的站点)时,您将被重定向到您登录的开放ID站点,然后返回ZooomrOAuth允许您授权一个网站(消费者)从另一个网站(提供商)访问您的数据。例如,您希望授权打印提供商(称之为Moo)从照片存储库中抓取您的照片(称之为Flickr)。Moo会将你重定向到Flickr,Flickr会问你,“Moo想下载你的Flickr照片,酷吗?”,然后返回Moo打印你的照片


是一个很好的C#库,用于开放ID和OAuth。

OAuth是应用程序保存登录数据的另一种方法,而根本不存储真实数据

当您登录到某个页面时,通常会有用户名和个人密码,或者任何其他类型的登录凭据。现在,如果您希望应用程序能够通过该登录进行操作,则需要向该应用程序提供您的原始登录数据。这意味着您在应用程序中同时输入用户名和密码。到目前为止这还不错,但问题是,如果您想通过该应用程序保持登录状态,它需要存储您的凭据。但为了能够将正确的登录数据发送到实际页面,它需要以原始形式存储这些数据(只需进行一些加密或其他操作)。因此,如果有人知道数据如何存储在应用程序中,他们可以提取您的原始登录凭据

这是一个安全问题,也是OAuth的用武之地。使用OAuth,每个应用程序都由使用者密钥和使用者秘密标识。两者都是客户端独有的,通常没有用户能够看到它们(尤其是秘密)。现在,当您希望允许您的应用程序访问该页面时,可以启动OAuth授权过程。您只需登录到页面并明确允许该特殊应用程序(由使用者密钥标识)访问。如果您这样做,应用程序将收到另一个密钥对,即访问令牌和访问密钥。该密钥对仅适用于您的帐户,并且仅在由确切的应用程序使用时有效(由消费者密钥标识,并由消费者密码保护为原始应用程序)。现在,应用程序需要存储的全部是访问密钥对(以及已经存储的消费者密钥对),它将能够访问页面,而不会看到您的原始登录数据

这样,没有人能够获得您的实际登录详细信息,也没有其他人(或其他应用程序)能够使用生成的访问凭据访问页面。如果您不希望应用程序仍然具有访问权限,可以轻松地撤销访问密钥对,这样应用程序就不能再使用它了


所以OAuth只是一种保护真实登录数据的方法。除此之外,它没有添加任何其他级别的安全性或其他内容,只是为了保护您的数据。

它与OpenID类似,只是不同而已。这篇文章很好地解释了这一点:如果调用OAuth“简单”,他们应该尝试HTTP基本身份验证。这是对OAuth的精彩解释。我为像我这样的傻瓜找到的另一个很好的解释是