如何管理两个身份验证系统:有状态和无状态(缓存)

Posted

技术标签:

【中文标题】如何管理两个身份验证系统:有状态和无状态(缓存)【英文标题】:How to manage two authentications systems: with and without state (cache) 【发布时间】:2019-09-21 22:26:48 【问题描述】:

我有一个使用 Symfony 3 的 HTTP API。 我正在使用 GuardAuthenticator,以便我们可以使用登录名和密码调用 API,并将无状态(安全属性)设置为 false。

今天我添加了另一种身份验证方式,即使用来自外部 IDP 的 jwt。在这种情况下,我希望将 statless 设置为 true(用户必须在每次调用时提供 jwt)。

请问您有什么想法吗? :)

    api:
        pattern: ^/api/
        stateless: false
        guard:
            authenticators:
                - api.security.guard_authenticator
        switch_user: true
        anonymous: ~

【问题讨论】:

【参考方案1】:

在我的 API 中,我有一个 Basic Auth + Token 系统。为此,我在 pre_auth 中检查了 BasicAuth。

我猜如果你将 stateless 传递给 true,你将不得不实现类似的东西。

【讨论】:

以上是关于如何管理两个身份验证系统:有状态和无状态(缓存)的主要内容,如果未能解决你的问题,请参考以下文章

如何创建具有多个状态的身份验证管理器

Laravel 4:基于身份验证状态的单个 URI 的两个不同视图页面

Spring Security 和无状态的 Restful 服务

如何从iOS ADAL身份验证LogOut?

有状态对象和无状态对象

63)PHP,登录验证