标签: saml

SAML令牌是否缓存/存储在浏览器的任何位置?

场景:
1)浏览器(用户)从服务提供商(SP)请求资源.
2)SP重定向(使用SAML请求)到身份提供商(IdP).
3)自首次登录以来,用户向(IdP)提供他/她的有效凭证.
4)然后IdP将浏览器(包含SAML令牌的SAML响应)重定向到SP页面.

我有两个问题:

A.在步骤4中,浏览器是否存储或缓存SAML响应和/或SAML令牌?

B.如果是,那么什么样的东西(属性?超时?协议?)阻止我获取存储的SAML令牌.然后将其复制到另一台计算机(使用新会话)并使用该令牌登录到同一个SP?

saml saml-2.0

22
推荐指数
2
解决办法
3万
查看次数

使用Java和SAML 2.0的Web SSO

我想编写一个Web应用程序,它使用由身份提供者发布的SAML 2.0令牌进行身份验证.据我所知,根据这个问题,PHP世界中有一个可行的解决方案,使用simpleSAMLphp.

Java世界中是否存在等效方法?常见的servlet容器或应用程序服务器是否有开箱即用的解决方案和/或教程?

java saml single-sign-on

21
推荐指数
3
解决办法
6万
查看次数

在PHP中验证SAML响应中的数字签名与证书

我是SSL证书的新手.对我到目前为止所做的事情有点谨慎.我正在创建一个使用SSO来验证使用PHP 5.4的用户的应用程序.我拥有:党提供的证书(.pfx).在POST变量中加密SAML.

解密的xml几乎与SAML类似:为什么签名中的证书?

我需要验证响应是来自经过验证的提供者.我在google搜索时已经知道我需要.pem而不是.pfx,所以我已经使用ssl命令将.pfx文件转换为.pem了.我使用了http://www.php.net/manual/es/function.openssl-verify.php#62526中的代码.这是我的代码.

$encxml=$_POST['SAMLResponse'];
$xml = new SimpleXMLElement(base64_decode($encxml)); 
$signature = ((string)$xml->Signature->SignatureValue);
var_dump($signature);


//do I need to do something with this X509Certificate value embedded in xml??
$cert = ((string)$xml->Signature->KeyInfo->X509Data->X509Certificate);
var_dump($cert);

//Or I need
$fp = fopen("xyz.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
print_r($priv_key);
$ok = openssl_verify($xml, $signature, $priv_key);
Run Code Online (Sandbox Code Playgroud)

所以我应该忽略嵌入在xml中的X509Certificate还是我需要检查它... openssl_verify会不会足够?我是在正确的道路上吗?请任何指导将不胜感激.

php ssl saml ssl-certificate

21
推荐指数
1
解决办法
3988
查看次数

使用python登录SAML/Shibboleth认证服务器

我正在尝试通过python登录我大学的服务器,但我完全不确定如何生成适当的HTTP POST,创建密钥和证书,以及我可能不熟悉的其他部分需要符合SAML规范.我可以用我的浏览器登录就好了,但我希望能够使用python登录和访问服务器内的其他内容.

作为参考,这是该网站

我已经尝试使用mechanize登录(选择表单,填充字段,通过mechanize.Broswer.submit()点击提交按钮控件等)无济于事; 登录站点每次都会回来.

在这一点上,我愿意用最适合该任务的语言实现解决方案.基本上,我想以编程方式登录SAML经过身份验证的服务器.

python login saml shibboleth saml-2.0

20
推荐指数
3
解决办法
2万
查看次数

在SubjectConfirmationData和Conditions以及SessionNotOnOrAfter中的NotOnOrAfter

在SAML2规范中,断言中有几个地方可以指定生命周期.

  • <SubjectConfirmationData>元素包含一个NotOnOrAfter属性.
  • <Conditions>元素包含一个NotOnOrAfter属性.
  • <AuthnStatement>元素包含一个SessionNotOnOrAfter属性.

他们每个人的意义是什么?它们如何相互关联?

具体来说,当......时必须检查哪一个

  • ...使用Web SSO消耗传入的Saml2Response
  • ...在SP中建立应用程序会话
  • ...刷新(扩展)SP中的应用程序会话
  • ...将声明转发给Web服务,代表主题行事(如@Thuan所述)
  • ...向idp发出一个注销请求,以确保idp仍然知道会话?

每个NotOnOrAfter都在SAML2核心规范中描述.我在这里列出了我能找到的描述这些属性的部分.

SubjectConfirmationData/@ NotOnOrAfter

无法再确认主题的时刻.时间值以UTC编码,如第1.3.3节所述.

请注意,可选的NotBefore和NotOnOrAfter属性指定的时间段(如果存在)应该落在元素的NotBefore和NotOnOrAfter属性指定的整个断言有效期内.如果两个属性都存在,则NotBefore的值必须小于(早于)NotOnOrAfter的值.

条件/ @ NotOnOrAfter

指定断言到期的时刻.时间值以UTC编码,如第1.3.3节所述.

NotBefore和NotOnOrAfter属性在其使用的配置文件的上下文中指定断言有效性的时间限制.他们不保证声明中的陈述在整个有效期内是正确或准确的.NotBefore属性指定有效期间隔开始的时刻.NotOnOrAfter属性指定有效期间隔结束的时刻.如果省略NotBefore或NotOnOrAfter的值,则认为它未指定.如果未指定NotBefore属性(并且如果提供的所有其他条件评估为有效),则断言对于NotOnOrAfter属性指定的时间点之前的任何时间的条件都是有效的.如果未指定NotOnOrAfter属性(并且如果提供的所有其他条件都评估为有效),则断言对于NotBefore属性指定的时间段内的条件是有效的,没有到期.如果两个属性都未指定(并且如果提供的任何其他条件评估为有效),则断言在任何时候都与条件有效.

如果两个属性都存在,则NotBefore的值必须小于(早于)NotOnOrAfter的值.

AuthnStatement/@ SessionNotOnOrAfter

指示与封闭断言派生的主题的会话的上限.时间值以UTC编码,如第1.3.3节所述.此属性与断言中可能存在的NotOnOrAfter条件属性之间没有必需的关系.它留给配置文件根据此属性为依赖方提供特定的处理规则.

saml saml-2.0

20
推荐指数
2
解决办法
1万
查看次数

是否建议签名和加密SAML并使用SSL?

如果我使用我的私钥对其进行签名并通过SSL发送,是否有必要加密SAML请求?或者更好的做法是使用我的私钥对其进行签名,使用身份提供程序公钥对其进行加密并通过SSL进行传输?

encryption ssl sign saml x509

19
推荐指数
1
解决办法
3万
查看次数

如何从 Saml2aws cli 会话注销或强制登录

我已经安装了 saml2aws& awscli,以连接 OKTA 系统之一。

我在配置中做了一些更改,想要重新加载新的,但在如何从会话中注销方面遇到了困难

saml amazon-web-services aws-cli

19
推荐指数
1
解决办法
2万
查看次数

了解Shibboleth和SAML

我有一个Drupal网站,我正在为客户服务.我被要求使用单点登录使用SAML2(我将成为服务提供商,我的客户将是身份提供商).

到目前为止我发现的最好的事情是

SimpleSAMLPHP https://ow.feide.no/simplesamlphp:drupal

要么

Shibboleth - http://drupal.org/project/shib_auth

通过查看这些文档,看起来Shibboleth模块可能会更进一步,但我不确定您是否可以将Shibboleth连接到SAML.你能?或者您是否需要连接到Shibboleth身份提供商?

SimpleSAML模块看起来不错,除了它似乎需要memcache,我宁愿不使用它.

谢谢!

security saml shibboleth single-sign-on

18
推荐指数
1
解决办法
1万
查看次数

SAML 2.0:如何配置断言使用者服务URL

我正在实现一个使用Okta作为身份提供者的SAML 2.0服务提供者.我想配置断言使用者服务(ACS)URL,以便我的服务提供者应用程序中的SAML 2.0反映在断言中.

但是,我注意到Okta身份提供程序改为发送在Okta配置中配置的SSO端点,并忽略实际发送的ACS.此外,我得到一个错误,也许SP的ACS与那里的元数据不匹配.

如果ACS URL不是向IDP发送短ID以使其反映在断言中的正确方法,则可以使用其他机制来实现此目的.

例:

SP应用程序发送的SAML 2.0 SAMLRequest是:

assertion_consumer_service_url:https://host.com:port/saml/consume?ENTITYID = N&MYNAME =用户名

Identity Provider上的配置具有元数据:

单点登录URL:https://host.com:port/saml/consume?entityId = N

请注意,myName从一个请求更改为下一个请求,因为这是我们验证响应的name_id与发送的原始用户名相匹配的方式.

此外,如果服务提供商有办法让身份提供商断言SP管理的名称(例如用户名),那么这对我们的需求就可以了.如何指定这个?

谢谢

saml single-sign-on

18
推荐指数
1
解决办法
5万
查看次数

如何使用ManifoldCF或nutch抓取具有SAML身份验证的网站?

我试图抓取网站,更具体地Google Site使用ManifoldCF具有SAML认证和索引抓取的数据到Apache Solr实现.但是当我抓取URL时,它会让我302重定向到登录页面然后说RESPONSECODENOTINDEXABLE.

我不确定我是否正确认证.在manifoldCF中,我们有HTTP basic身份验证选项NTLM authenticationSession-based访问凭证身份验证方法.我使用的Session based身份验证方法更像是基于表单的身份验证而不是SAML身份验证.

有没有人使用带有SAML身份验证的manifoldCF来抓取网站?如果没有manifoldCF,有人能够通过Apache Nutch实现这一点,因为我担心,它也只提供HTTP基本DigestNTLM身份验证.

任何见解都会有所帮助.如果有人认为可以轻松完成,可以提供有关该问题的更多信息.基本上,当我抓取https://sites.google.com/a/my-sub-domain.com时,它会重定向到SSO登录页面,并且抓取工具拒绝抓取任何更多,从而产生302错误.这是一个基于内联网的网站.

solr nutch saml full-text-indexing manifoldcf

18
推荐指数
1
解决办法
907
查看次数