我的一位客户要求我通过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管理会话。
我想做的是以下事情:
所以我的问题是,这可能吗?如果是,是否可以通过POST / GET请求或XML或类似方法来管理PHP中的ADFS身份验证?
衷心感谢那些花时间回答我的请求的人。
今天愉快。
答案 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),而且效果很好。
祝你好运