SimplesamlPHP无限重定向
我会将SimplesamlPHP无限重定向,php,saml,simplesamlphp,Php,Saml,Simplesamlphp,我会将simplesamlphp安装到本地主机,作为3个不同的虚拟主机 1. http://idp-saml.com 2. http://sp-saml.com 3. http://api-saml.com 当我尝试使用sp saml.com连接idp saml.com时,它工作正常 现在,我想将它与我自己的应用程序集成api saml.com 为此,我将遵循以下步骤: 在“authsources.php”上创建“authsource”到sp saml.com。 “sp1”=>数组( “sa
simplesamlphp
安装到本地主机,作为3个不同的虚拟主机
1. http://idp-saml.com
2. http://sp-saml.com
3. http://api-saml.com
当我尝试使用sp saml.com
连接idp saml.com
时,它工作正常
现在,我想将它与我自己的应用程序集成api saml.com
为此,我将遵循以下步骤:
sp saml.com
。
“sp1”=>数组(
“saml:SP”,
“privatekey”=>“sp saml.pem”,
'证书'=>'sp saml.crt',
'entityID'=>'http://api-saml.com',
'idp'=>'http://idp-saml.com',
)
Federation
页面,单击“SP1”元数据并复制SAML2.0元数据XML
idp saml.com
打开metadata converter.php
并解析saml2.0元数据XML
shib13 sp remote
和saml20 sp remote
复制到metadata\shib13 sp remote.php
和metadata\saml20 sp remote.php
上的idp saml.com
虚拟主机,我可以看到api saml.com
下的federation
选项卡下的saml2.0 sp元数据(受信任)
部分api saml.com
目录,创建index.php
并添加以下代码require_once('sp-saml/lib/_autoload.php')代码>
现在,尝试访问http://api-saml.com
它会转到idp saml.com
并询问我的登录凭据。添加凭据后,它不会将我重定向回api saml.com
,其行为类似于无限重定向。你可以看到
您的应用程序和authsource SP元数据应位于同一域上。您的步骤1和2应该从http://api-saml.com/simplesaml/...
而不是来自与应用程序不同的域
SP元数据包含有关授权的断言消费者服务(ACS)URL的信息,您正在生成并加载到IdP中的元数据仅将下面的路径列为合法返回URL。当您尝试从其他域使用authsource时,IdP会看到未经授权的返回url,忽略它,而是使用元数据中您不需要的子域。我同意您的意见,但现在我想在同一台服务器上再创建两个子域beta.api saml.com
&alpha.api saml.com
,那么我将怎么做?我需要在这两个子域上安装simplesaml
,还是有其他方法?
$saml_auth = new SimpleSAML_Auth_Simple('sp1');
if ($saml_auth->isAuthenticated()) {
$attributes = $saml_auth->getAttributes();
var_dump($attributes);
}
else {
$saml_auth->requireAuth();
}