Hou*_*iki 2 spring-security oauth-2.0 spring-security-oauth2
我想知道授权服务器如何与资源服务器共享令牌(访问令牌),如果它们位于单独的应用程序中?
我正在使用 Spring OAuth 2.0/授权代码授予类型。
我恰好有一个很棒的视频可以向您解释一切。花一个小时在上面。这是值得你花时间的。我保证。
一些定义
Client- 需要访问服务器上的API的应用程序Resource Server- 托管受保护 API 的应用程序Authorization Server- 发行令牌的应用程序,用于断言客户端的身份场景很简单
假设有一个名为 的应用程序Photo Storage。这个应用程序所做的就是让我们上传照片、下载照片、更新照片和删除照片。
照片存储是一个资源服务器。
调用移动应用程序Photo Editor,它知道如何编辑照片。照片编辑器是客户
现在,照片编辑器希望您能够登录,以便它可以访问照片存储应用程序上的照片。但照片存储不知道照片编辑器(也不需要)。但是照片存储需要有人为照片编辑器提供担保,为此,我们有一个授权服务器。
看起来像这样
Photo Editor Photo Storage Authorization Server
Get Token ------------authorization_code (https)----------->
Download Photo ----token(https)---->
Edit Photo (local)
Upload Photo -----token(https)----->
Run Code Online (Sandbox Code Playgroud)
这是这样做的好处:
客户端(照片编辑器)通过 HTTP 请求从授权服务器下载令牌。令牌本身是一个字符串。可以编码为 JSON(JSON Web Token,JWT),也可以是唯一的任意字符串。
当客户端需要访问资源服务器时,它将调用资源服务器上的 HTTP API 并将令牌作为请求的一部分发送到 HTTP 标头中)
GET /photo/download/1 HTTP/1.1
Authorization: Bearer dsadsadsadasdasdasda.....
Run Code Online (Sandbox Code Playgroud)
资源服务器将在内部或联系授权服务器验证令牌,并根据结果允许或拒绝来自客户端的调用。
我希望这有帮助。正如我所说,视频将通过示例更详细地解释这一点。
TL;DR 对您问题的回答是,令牌只是一个字符串,它作为 HTTP 请求的一部分发送。这些应用程序都可以位于不同的服务器上(客户端 -> 智能手机、资源服务器 -> Amazon AWS 服务器、授权服务器 -> Google 云服务器)
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |