我正在尝试使用SAML保护资源。有三个参与者在起作用:身份提供者(IDP,在我的控制范围之外)、服务提供者(SP,我碰巧在使用spring security saml,但这个问题并不特定于此),以及受保护的资源(PR,SP之外服务中的某个受保护endpoint)。
我需要支持两种场景:
对于场景1应该如何工作,有足够的指导,因为根据我所看到的,这是使用SAML的标准方法。虽然场景2似乎不太标准,但我还没有找到任何关于如何处理它的明确文档。
在场景1中,流程似乎是标准的:
我不太清楚的是场景2,我的想法如下:
我的问题是:
访问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.