【问题标题】:Is it possible to have SAML 2.0 Authentication and JWT Authentication in a single Application?是否可以在单个应用程序中拥有 SAML 2.0 身份验证和 JWT 身份验证?
【发布时间】:2019-10-21 14:42:26
【问题描述】:

我们的应用程序目前有自己的使用 JWT 的身份验证过程。

我们希望使用 SAML 2.0 (Azure AD) 仅为我们的应用程序中的特定用户角色添加 SSO(单点登录)登录。

是否可以在同一个 Spring-Boot 应用程序中拥有 2 个单独的身份验证协议?

【问题讨论】:

    标签: spring-boot spring-security jwt saml-2.0


    【解决方案1】:

    是的。这是可能的。

    这个想法是您可以注册许多AuthenticationProvider,其中每个AuthenticationProvider 负责一种特定类型的身份验证机制(即一种用于 JWT,一种用于 Azure AD)。

    Spring Security 然后会一一循环遍历这些AuthenticationProvider 来检查哪一个可以成功验证请求。一旦发现AuthenticationProvider 可以成功进行身份验证,它将停止循环。

    这意味着在您的每个AuthenticationProvider 中,您可以获取当前请求用户的角色信息,然后检查他是否具有该身份验证机制所需的角色。如果他没有所需的角色,只需抛出AuthenticationException

    【讨论】:

    • 感谢您的确认!我现在必须搜索 AuthenticationProvider 以及如何在我们的系统中实现它。
    • @NekoTamago。欢迎您并祝您旅途愉快:D
    猜你喜欢
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    相关资源
    最近更新 更多