OAuth2.0的使用案例

Rob*_*pta 1 authentication oauth go multi-tenant oauth-2.0

我正在建设一个muli-tenant saas(software as a service) architecture.我必须authentication system为系统构建.

根据我的研究,我认为我需要构建基于身份验证系统OAuth2.0和持有者令牌JWT tokens.

在阅读了很多关于如何构建OAuth2.0服务器的OAuth2.0之后,我仍然didn't understand对我full concept of OAuth是否需要它感到困惑,或者我需要一些其他的身份验证系统.

我的系统需要的是我们将向SDK所有客户提供一个并且每个客户都将拥有Application Ida secret key使用SDK客户端将连接到他们在我们系统中的应用程序.

application ID将客户他的申请目前映射在我们的系统和client secret key将要验证客户端application.Do里面我还需要基于OAuth2.0的构建认证系统或者我可以建立基于我们需要自己的身份验证系统?

OAUTH2.0有什么用例,何时我们不需要它来实现?

Von*_*onC 9

首先,如OAuth身份验证中明确指出的那样

OAuth 2.0不是身份验证协议.

在访问应用程序的用户的上下文中的认证告诉应用程序当前用户是谁以及他们是否存在.完整的身份验证协议可能还会告诉您有关此用户的许多属性,例如唯一标识符,电子邮件地址以及当应用程序显示"早上好"时要调用它们的内容.

但是,OAuth没有告诉应用程序.
OAuth对用户一无所知,也没有说用户如何证明他们的存在,或者即使他们仍在那里.
就OAuth客户端而言,它要求提供令牌,获得令牌,并最终使用该令牌访问某些API.它不知道谁授权该应用程序或者根本没有用户.

使用OAuth的用户身份验证标准:OpenID Connect,与OAuth2兼容.

OpenID Connect ID令牌是一个签名的JSON Web令牌(JWT),它与常规OAuth访问令牌一起提供给客户端应用程序.
ID令牌包含一组关于认证会话的声明,包括用户的标识符(子),发出令牌的身份提供者的标识符(iss),以及为其创建该令牌的客户端的标识符(澳元).

在Go中,您可以查看coreos/dex具有可插拔连接器的OpenID Connect身份(OIDC)和OAuth 2.0提供程序.