Один из моих клиентов попросил меня разработать гибридное приложение для них, используя аутентификацию 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.
Я хочу сделать следующее:
- Пользователь вводит свои учетные данные (почта и пароль) в пользовательской форме
- Мы отправляем учетные данные моему API, которые отправляют запрос и анализируют его ответ
- Показать или скрыть содержимое на основе ответа
Итак, мой вопрос заключается в следующем, возможно ли это? И если да, есть ли способ для меня управлять аутентификацией ADFS в PHP через запрос POST / GET, или XML, или что-то вроде этого?
Я искренне благодарен тем, кто найдет время, чтобы ответить на мою просьбу.
Хорошего дня.