Один из моих клиентов попросил меня разработать гибридное приложение для них, используя аутентификацию ADFS через протокол SAML 2. Для этого я установил на свой Debian 9 фреймворк simpleSAMLphp (http://simplesamlphp.org), который в основном является интеграцией php SAML. Я правильно создал доверие между моей службой и их поставщиком удостоверений.
Итак, я пытаюсь создать API в php, который в основном обрабатывал бы все мои сессии независимо от используемой платформы. Я внимательно следил за их документацией и застрял на какой-то хитрой теме, и мне не удалось найти подходящий ответ на нее.
Документация требует, чтобы я использовал функцию 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.
Что я хочу сделать, это следующее:
Итак, мой вопрос заключается в следующем, это возможно? И если да, есть ли способ для меня управлять аутентификацией ADFS в PHP через запрос POST / GET, или XML, или что-то вроде этого?
Я искренне благодарен за тех, кто найдет время, чтобы ответить на мою просьбу.
Хорошего дня.
ну, вы можете установить свой 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 как sp), и он отлично работает.
Удачи
Других решений пока нет …