在spring Boot app中,我需要实现组合认证-自定义jwt和OAuth提供者(google,facebook等)。我的boot app只作为移动的应用的API工作。所以我的计划是为所有请求生成自定义jwt,但我不知道如何处理OAuth认证并将其转换为我的custon JWT。也许我对它在移动客户端上的工作方式知之甚少。那么,有没有人有优雅简单的解决方案的实现示例?提前感谢!
mdfafbf11#
很可能您要使用的一些“社会”身份提供者不允许您直接使用他们的授权服务器,或者只是不提供JWT(一些只支持令牌内省)。我强烈建议您选择一个能够进行身份联合的OIDC授权服务器来代理所有异构身份提供者。(如Keycloak)或在云中(Auth 0是一个示例,但几乎每个云提供商都有自己的解决方案)。这还将为您提供一个集中的位置来处理您可能需要的其他用户安全数据(喜欢角色)。此授权服务器将是Spring REST API的唯一身份颁发者,您将配置为resource-server。有关详细信息,请参阅this tutorials。对于移动的客户端,我的做法是将用户从应用重定向到授权服务器进行登录(这在系统浏览器中打开),然后设置“深层链接”,以在原生应用中打开授权代码作为响应。结束OAuth2授权代码流的框架(将代码交换为令牌)取决于您用来编写原生应用的框架。
1条答案
按热度按时间mdfafbf11#
很可能您要使用的一些“社会”身份提供者不允许您直接使用他们的授权服务器,或者只是不提供JWT(一些只支持令牌内省)。
我强烈建议您选择一个能够进行身份联合的OIDC授权服务器来代理所有异构身份提供者。(如Keycloak)或在云中(Auth 0是一个示例,但几乎每个云提供商都有自己的解决方案)。这还将为您提供一个集中的位置来处理您可能需要的其他用户安全数据(喜欢角色)。
此授权服务器将是Spring REST API的唯一身份颁发者,您将配置为resource-server。有关详细信息,请参阅this tutorials。
对于移动的客户端,我的做法是将用户从应用重定向到授权服务器进行登录(这在系统浏览器中打开),然后设置“深层链接”,以在原生应用中打开授权代码作为响应。结束OAuth2授权代码流的框架(将代码交换为令牌)取决于您用来编写原生应用的框架。