Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 钥匙斗篷中的自定义oidc_Spring_Oauth 2.0_Keycloak_Openid Connect - Fatal编程技术网

Spring 钥匙斗篷中的自定义oidc

Spring 钥匙斗篷中的自定义oidc,spring,oauth-2.0,keycloak,openid-connect,Spring,Oauth 2.0,Keycloak,Openid Connect,我有一个基于spring的应用程序,它对客户端应用程序进行身份验证和授权(基于oauth2)。我现在想使用KeyClope来管理我的授权,但我想保留我的spring代码。基本上,我想使用我现有的身份验证代码作为KeyClope中的外部身份提供程序 我正在考虑在客户端应用程序中添加更改,以便它从我现有的oauth代码(进行身份验证)中接收令牌,然后将该令牌与KeyClope交换(用于会话和授权管理)。我该怎么做?在KeyClope中需要进行哪些配置 我在这里读到了keydove中的令牌交换,但是我

我有一个基于spring的应用程序,它对客户端应用程序进行身份验证和授权(基于oauth2)。我现在想使用KeyClope来管理我的授权,但我想保留我的spring代码。基本上,我想使用我现有的身份验证代码作为KeyClope中的外部身份提供程序

我正在考虑在客户端应用程序中添加更改,以便它从我现有的oauth代码(进行身份验证)中接收令牌,然后将该令牌与KeyClope交换(用于会话和授权管理)。我该怎么做?在KeyClope中需要进行哪些配置

我在这里读到了keydove中的令牌交换,但是我不清楚我需要从现有的身份验证代码发送什么样的令牌。

以下是OAuth2角色通常的传播方式:

  • 密钥斗篷是授权服务器
  • Spring服务是资源服务器
  • 前端是客户端
  • 用户是资源所有者
我怀疑您是否希望您的Spring服务也成为“授权服务器”(服务用户身份)。如果是这样,我认为你不应该这样做

KeyClope(或任何其他OpenID提供程序)应该是唯一的授权服务器。Spring和客户端都应该配置为这样使用它

为了编写不同的代码,keydape负责用户登录并发送带有用户ID(主题)和权限(角色或其他)的令牌。体系结构中的其他层(客户端和资源服务器)从令牌获取用户信息,并应用相关的安全检查(spring安全注释、角度保护等)


我发布了一个涉及Spring资源服务器和Angular(带Ionic)客户端与KeyClope OpenID授权服务器对话的示例。您在浏览时可能会发现一些灵感。

谢谢您的回答。我现有的身份验证代码具有基于sms的身份验证,我希望保留该代码。KeyClope不提供基于sms的身份验证。因此,我想使用我现有的身份验证代码进行身份验证,然后使用keydape.1进行会话管理。用于双因素身份验证的SMS非常弱。2.您可以通过SMS找到KeyClope的自定义身份验证程序。3.您可能能够在KeyClope的自定义验证器中使用代码。但老实说,只需使用他们提供的现成的双因素身份验证(我与Google authenticator一起使用)