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 Id
并a secret key
使用SDK客户端将连接到他们在我们系统中的应用程序.
在application ID
将客户他的申请目前映射在我们的系统和client secret key
将要验证客户端application.Do里面我还需要基于OAuth2.0的构建认证系统或者我可以建立基于我们需要自己的身份验证系统?
OAUTH2.0有什么用例,何时我们不需要它来实现?
首先,如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提供程序.