首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring,OAuth2自定义Auth服务器

Spring,OAuth2自定义Auth服务器
EN

Stack Overflow用户
提问于 2021-11-18 04:30:54
回答 1查看 292关注 0票数 0

在我的一些空闲时间里,我试图尝试进入完全堆栈开发领域,我只是对我目前对OAuth2的理解有一些一般性的问题。我是非常绿色的东西,但我看了一些Udemy视频,以获得一个基本的理解。

不管怎样..。我正在做的这个项目,我计划拥有一个定制的授权服务器、一个资源服务器和一个客户端(很可能是SPA)。此授权服务器将只允许授权代码(可能带有PKCE扩展)授予类型。这就引出了我的第一个一般性问题。

直观地,我假设密码授予类型就足够了。正如我已经做了越来越多的阅读,它看起来这个赠款流动不是要走的路。据我所知,使用此流程将要求客户端提供某种形式,以便用户可以登录。这样做可以让客户端访问用户凭据,这大大违背了OAuth2的目的之一。但是,我不确定这是否与我正在开发的内容有关,因为我正在创建授权服务器。我知道通过使用这个授权流,我不是在验证客户端。有人能解释一下这是怎么回事吗?还有什么是我遗漏的吗?我所读到的一切都阻止了我使用这个授权流,这也是我最终决定使用授权代码(w/ PKCE)流的主要原因。

所以..。假设我遵循这个流程,我的客户应该提供一个登录按钮。按此登录按钮将重新引导客户端到网页,在该网页上,资源所有者可以授权客户端并提供用户凭据。然后我的授权服务器将验证这些用户凭据。我计划将用户凭据存储在运行auth服务器的VM上的数据库中。我不打算允许用户注册一个帐户。相反,我将在这个数据库中为我的团队成员提供一个静态的帐户凭据列表。所以我想在创建数据库时,我要插入这些帐户吗?如果是,我如何允许这些用户更改他们的密码?我想我在想,最初这些帐户将被分配一个电子邮件,用户名和随机密码,我可以与他们沟通。但是,我希望用户可以选择将这个随机密码更改为更熟悉的密码。我目前不知道如何在OAuth2实现中执行这样的操作。我是否只是在客户端提供了一种在用户登录时更改密码的方法?如果是这样的话,这是否在某种程度上违背了使用OAuth2的目的,因为我的客户现在已经知道用户凭据了吗?但是,如果我要这样做的话,这是否只是作为对auth服务器上REST的POST请求来实现以更新密码呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-18 14:42:51

首先,我将使用免费云提供程序作为授权服务器。请看我的以下教程,它使用授权代码流+ PKCE:

此示例使用白兰地,这是入门的一个快速选项。它将使您能够创建用户-然后将提示他们在第一次登录时更改密码。

重要的一点是:

  • 在应用程序中编写基于简单标准的代码,并花时间学习推荐的流程和设计模式
  • 一旦编写了代码,以后如果需要的话,您应该能够切换到另一个授权服务器
  • 避免构建自己的授权服务器,而使用专家提供的授权服务器

对于资源服务器,您应该只需要Spring (我上面的API使用Node.js)。如果您想要一个易于遵循的Spring资源服务器示例,请参见这一个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70014597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档