simpleSAML远程被动登录

时间:2018-10-30 15:55:36

标签: php saml adfs simplesamlphp

我的一位客户要求我通过SAML 2协议使用ADFS身份验证为其开发混合应用程序。为了做到这一点,我确实在Debian 9上安装了simpleSAMLphp(http://simplesamlphp.org)框架,该框架基本上是php SAML集成。我正确地在我的服务和他们的身份提供者之间建立了信任。

所以我在这里尝试在php中构建一个API,该API基本上可以处理所有会话,无论平台使用什么平台。我一直在密切关注他们的文档,但我坚持的主题有些棘手,但我没有设法找到合适的答案。

文档希望我使用功能requireAuth()来测试我的用户是否已通过身份验证,如果未通过验证,则它返回IdP登录页面。所有这些都完成了,这样我就可以解析身份验证返回的属性,该属性基本上就是服务器发出的令牌。

<?php
require_once('/var/simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');

$as->requireAuth();
$attributes = $as->getAttributes();
print_r($attributes);
?>

但是这种行为并不真正适合像我这样的API。因为我希望通过我的API管理会话。

我想做的是以下事情:

  • 用户以自定义格式输入其凭据(邮件和密码)
  • 我们将凭据发送到我的API,API会发送请求并解析其答案
  • 根据响应显示或隐藏内容

所以我的问题是,这可能吗?如果是,是否可以通过POST / GET请求或XML或类似方法来管理PHP中的ADFS身份验证?

衷心感谢那些花时间回答我的请求的人。

今天愉快。

1 个答案:

答案 0 :(得分:0)

好吧,您可以将saml设置为SP并启用它的登录功能。

示例

1: user opens the aplications and choose to login is with saml.
2: he gets the saml sp that is configured with you application. he choose the company he wants to login as then he logs in.
3 if the login is approved you can redirect him back to your application and log him autmatic in.

我以前曾用过这种方法(saml as sp),而且效果很好。

祝你好运