当前位置: 首页 > 知识库问答 >
问题:

受SAML保护的资源

柳业
2023-03-14

我正在尝试使用SAML保护资源。有三个参与者在起作用:身份提供者(IDP,在我的控制范围之外)、服务提供者(SP,我碰巧在使用spring security saml,但这个问题并不特定于此),以及受保护的资源(PR,SP之外服务中的某个受保护endpoint)。

我需要支持两种场景:

  1. 用户第一次尝试访问PR,没有任何会话

对于场景1应该如何工作,有足够的指导,因为根据我所看到的,这是使用SAML的标准方法。虽然场景2似乎不太标准,但我还没有找到任何关于如何处理它的明确文档。

在场景1中,流程似乎是标准的:

  • 用户尝试访问PR

我不太清楚的是场景2,我的想法如下:

  • 用户尝试使用前一场景中提供的令牌访问PR
  • PR使用SP检查令牌的有效性
  • SP确定令牌是否有效(如何做到这一点?SAML标准中似乎没有任何内容可用于检查会话是否处于活动状态)
  • PR允许根据SP的响应访问资源

我的问题是:

  • 我对场景2的理解是否正确?这就是SAML的用途吗
  • 我如何与IDP检查会话的有效性
  • PR是否必须在每次请求时检查会话的有效性?由于SAML不需要过期(如OAuth访问令牌),因此似乎没有任何方法可以缓存用户的会话

共有1个答案

赏开宇
2023-03-14

访问PR有两个条件。

  1. PR在需要续订之前的指定时间内创建的有效应用程序会话

PR可以认为,只要SAML令牌有效,那么应用程序会话就有效。或者它可以决定每10分钟创建一个新会话,这意味着重定向到IdP以获取新的SAML令牌,新的应用程序会话将基于该令牌。这取决于所保护的资源。在敏感资源(可能是医疗数据)中,应相应地管理会话。

就SAML令牌有效性而言,IdP使用示例中所示的响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/条件/不早于响应/代码>在设定的时间段内发布令牌。还可以使用响应/授权声明/会话NONONOROAFTER来检查有效性。这是:

获取或设置由主题标识的主体与发出此语句的SAML机构之间的会话必须被视为结束的时间瞬间

从这里开始。这有效地限制了PR会话,因为IdP在此之后“拒绝”用户。e、 g.公共步入式访问请求需要一小时的PR访问权。NotOnOrAfter指的是断言,而SessionNotOnOrAfter指的是用户。根据策略等,IdP可能不会对用户进行身份验证。

如果PR需要更新应用程序会话,它可以要求SP验证SAML令牌,这可能涉及确定NotOnOrAfter是否已经过去。如果是,那么SP将再次与IdP启动该过程以获取新的SAML令牌。如果IdP正在处理敏感的PR,它可能会在有限的时间内释放属性,这取决于在其末尾授予访问权限的方式。

 类似资料:
  • 通过向资源服务器出示访问令牌,客户端访问受保护资源。资源服务器必须验证访问令牌,并确保它没有过期且其范围涵盖了请求的资源。资源服务器用于验证访问令牌的方法(以及任何错误响应)超出了本规范的范围,但一般包括资源服务器和授权服务器之间的互动或协调。 客户端使用访问令牌与资源服务器进行证认的方法依赖于授权服务器颁发的访问令牌的类型。通常,它涉及到使用具有所采用的访问令牌类型的规范定义的身份验证方案(如R

  • 我已经通过复制我计划连接的Idp的509条目生成了testIdp.cer文件。然后,我通过执行以下命令创建了JKS文件 执行时,它要求输入我已提供密码的密码。对于问题“信任此证书?[no]:“,我给出了”y“作为输入。消息显示为“证书已添加到密钥库”。 然后,我在securityContext.xml中配置了以下详细信息: 但是当我运行应用程序时,在服务器启动和加载应用程序的主页时,我得到了以下两

  • 从quarkus集装箱码头,我可以使用以下命令访问keycloak服务器 返回200状态;但无法访问受保护的资源。 我在这里做错了什么?

  • 客户端向资源服务器提供访问令牌以访问受保护资源。 资源服务器必须验证并验证访问令牌是否有效且未过期。 发送凭据有两种标准方式 - Bearer Token - 访问令牌只能作为授权HTTP头中的后备选项放在POST请求正文或GET URL参数中。 它们包含在授权标题中,如下所示 - Authorization: Bearer [token-value] 例如 - GET/resource/1 H

  • 我正在将spring-saml2-sample应用程序集成到我自己的应用程序中。我的服务提供商连接到Shibboleth IDP。我正在使用Spring Security SAML应用程序附带的samlkeystore.jks中提供的私有证书测试SP。我使用以下命令在密钥库中注册了IDP签名公钥:keytool-importcert-alias idpsignkey-keypass passwor

  • 6xx受保护 600 Series,Repliesregardingconfidentialityandintegrity 631 Integrityprotectedreply. 632 Confidentialityandintegrityprotectedreply. 633 Confidentialityprotectedreply.