Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
.net OAuth作为内部身份验证?_.net_Authentication_Oauth_Oauth 2.0_Asp.net Web Api - Fatal编程技术网

.net OAuth作为内部身份验证?

.net OAuth作为内部身份验证?,.net,authentication,oauth,oauth-2.0,asp.net-web-api,.net,Authentication,Oauth,Oauth 2.0,Asp.net Web Api,我正在构建一个.NETMVCWebAPI,我已经谈到了身份验证部分。 我认为OAuth几乎是一个给定的身份验证选项,但在我读到它的地方,他们都在谈论使用Facebook、Google或其他第三方帐户登录。这不是我现在想要的。 我的问题很简单:我可以对我自己的数据库用户使用OAuth吗?或者OAuth是我在自己的身份验证之上插入的东西,然后连接到我自己的db用户吗?如果使用OAuth意味着你不必为用户存储实际的凭据。OAuth提供商将负责为用户进行身份验证你 是的,您需要在自己的身份验证基础上插入

我正在构建一个.NETMVCWebAPI,我已经谈到了身份验证部分。 我认为OAuth几乎是一个给定的身份验证选项,但在我读到它的地方,他们都在谈论使用Facebook、Google或其他第三方帐户登录。这不是我现在想要的。
我的问题很简单:我可以对我自己的数据库用户使用OAuth吗?或者OAuth是我在自己的身份验证之上插入的东西,然后连接到我自己的db用户吗?

如果使用
OAuth
意味着你不必为用户存储实际的凭据。OAuth提供商将负责为用户进行身份验证你

是的,您需要在自己的身份验证基础上插入
OAuth


用户将被重定向到提供商的站点进行身份验证,您只需要存储从OAuth提供程序返回的访问令牌和访问机密/刷新令牌,具体取决于您使用的是
OAuth 1.0/1.0a
还是
OAuth 2.0
。这些令牌可用于进一步访问。

OAuth解决了一个web应用程序试图代表用户访问另一个web应用程序的问题而无需共享凭据

我可以对自己的数据库用户使用OAuth吗

答案是肯定的

在这种情况下,您就是提供商(就像facebook或谷歌)。您的.NETMVCWebAPI充当资源服务器,您必须构建一个Web应用程序来充当授权服务器。您的客户端应用程序或其他第三方应用程序可以将用户重定向到这些应用程序,以执行身份验证并颁发访问令牌。如果您需要向第三方应用程序提供API,而无需共享凭据,则应使用此选项构建自己的资源服务器和授权服务器


如果您的所有应用程序都是内部应用程序,那么您不应该关心共享凭据,使用普通身份验证或OAuth也可以。

因此,如果我选择使用OAuth,我必须构建授权服务器?有关于如何做到这一点的好教程吗?我看过DotNetOpenAuth,但我认为文档很差。@Johan Ketels:是的,如果您不关心在所有应用程序都是内部应用程序时共享凭据,那么使用普通身份验证就足够了。另一个选择是使用现有的OAuth,比如facebook或google。关于教程,我读了这本书。希望能有帮助。