是否可以在单个应用程序中同时使用 SAML 2.0 身份验证和 JWT 身份验证?
Is it possible to have SAML 2.0 Authentication and JWT Authentication in a single Application?
我们的应用程序目前有自己的使用 JWT 的身份验证过程。
我们只想为我们使用 SAML 2.0 (Azure AD) 的应用程序中的特定用户角色添加 SSO(单点登录)登录。
是否可以在同一个 Spring- 启动应用程序中使用 2 个单独的身份验证协议?
是的。有可能。
想法是您可以注册许多 AuthenticationProvider
,其中每个 AuthenticationProvider
负责一种特定类型的身份验证机制(即一个用于 JWT,一个用于 Azure AD)。
Spring 安全然后将逐一循环这些 AuthenticationProvider
以检查哪一个可以成功验证请求。一旦发现 AuthenticationProvider
可以成功验证,它将停止循环。
这意味着在您的每个 AuthenticationProvider
中,您可以获得当前请求的用户的角色信息,然后检查他是否具有该身份验证机制所需的角色。如果他没有所需的角色,只需抛出 AuthenticationException
。
我们的应用程序目前有自己的使用 JWT 的身份验证过程。
我们只想为我们使用 SAML 2.0 (Azure AD) 的应用程序中的特定用户角色添加 SSO(单点登录)登录。
是否可以在同一个 Spring- 启动应用程序中使用 2 个单独的身份验证协议?
是的。有可能。
想法是您可以注册许多 AuthenticationProvider
,其中每个 AuthenticationProvider
负责一种特定类型的身份验证机制(即一个用于 JWT,一个用于 Azure AD)。
Spring 安全然后将逐一循环这些 AuthenticationProvider
以检查哪一个可以成功验证请求。一旦发现 AuthenticationProvider
可以成功验证,它将停止循环。
这意味着在您的每个 AuthenticationProvider
中,您可以获得当前请求的用户的角色信息,然后检查他是否具有该身份验证机制所需的角色。如果他没有所需的角色,只需抛出 AuthenticationException
。