Как настроить вход пользователей в интрасеть из windows dekstop для многих веб-приложений? (ADFS 3.0, SAML 2.0, SSO)

Проект, который я сейчас работаю, это Single-Sign-on (SSO) через ADFS 3.0 с использованием SAML Token (SimpleSAMLphp).

У меня есть следующие настройки:

  • Windows Server 2012 R2 с AD и ADFS 3.0 в качестве поставщика удостоверений
  • Веб-сервер Ubuntu. Тест-веб-приложение (PHP) установило SimpleSAMLphp как Serviceprovider
  • Клиент Windows 10

Текущее состояние:

  • Пользователь входит в Windows, используя свои учетные данные.

  • Пользователь открывает браузер и входит в веб-приложение. Веб-приложение будет перенаправлено на страницу входа в ADFS.

  • Войдите в систему, используя те же учетные данные, которые использовались при аутентификации Windows.

  • Вернитесь на страницу test-webapp, и пользователь должен пройти аутентификацию.

Все отлично работает, но как мне реализовать настоящий SSO? Как настроить пользователей внутренней сети, которые регистрируют свои окна dekstop и затем открывают браузер (IE, Firefox и Chrome), переходят на веб-сайт без повторного ввода учетных данных на странице ADFS. Другими словами, встроенная проверка подлинности Windows (WIA).

Кто-нибудь еще делал это с этой настройкой раньше? Было бы неплохо поделиться опытом и решениями. Большое спасибо 🙂

0

Решение

Вы должны настроить браузер, чтобы справиться с этим.

Только IE делает это по умолчанию.

Хороший набор правил Вот. Примечание — страница вниз — более одной статьи.

0

Другие решения

Вам нужно знать о концепции, эта статья полезна для вас ..
Аутентификация OAUTH2 с помощью ADFS 3.0

И если вам нужно, как прочитать токен JWT с PHP, используйте этот код:

function readToken($jwt_access_token){
$separator = '.';
if (2 !== substr_count($jwt_access_token, $separator)) {
throw new Exception("Incorrect access token format");
}
list($header, $payload, $signature) = explode($separator, $jwt_access_token);
$decoded_signature = base64_decode(str_replace(array('-', '_'), array('+', '/'), $signature));
// The header and payload are signed together
$payload_to_verify = utf8_decode($header . $separator . $payload);
// output the JWT Access Token payload
return base64_decode($payload);
}
0

По вопросам рекламы [email protected]