2015-09-22 3 views
0

У меня есть настройка mod_auth_mellon для внешней аутентификации с использованием SAML 2.0. Я получаю аутентификацию с использованием внешнего IdP, но mod_auth_mellon не заполняет переменные среды, и я не могу получить имя пользователя, чтобы продолжить авторизацию ресурсов, которые я хочу защитить.mod_auth_mellon не заполняет переменные окружения

Рабочий процесс выглядит следующим образом: 1) пользователь пытается получить доступ к /test/info.php пользователя 2) перенаправляется к внешнему IdP 3) аутентификации пользователя от внешнего IdP и перенаправляется на /auth/info.php

конфигурации

Мой Mellon выглядит следующим образом:

<Location /> 
    MellonSPPrivateKeyFile /etc/apache2/mellon-config/http_ec2_54_86_69_246.compute_1.amazonaws.com.key 

    MellonSPCertFile /etc/apache2/mellon-config/http_ec2_54_86_69_246.compute_1.amazonaws.com.cert 
    MellonSPMetadataFile /etc/apache2/mellon-config/http_ec2_54_86_69_246.compute_1.amazonaws.com.xml 

</Location> 
<Location /auth/info.php> 
    MellonEnable "info" 
    MellonSetEnv "email" "email" 
    MellonSetEnv "username" "username" 
    MellonUser "email" 
    MellonSamlResponseDump On 
    MellonSessionDump On 
    MellonVariable "cookie" 

</Location> 
<Location /test/info.php> 
    # This location will trigger an authentication request to the IdP. 
    MellonEnable "auth" 
    AuthType "Mellon" 
    MellonVariable "cookie" 
    MellonSetEnv "email" "email" 
    MellonSetEnv "username" "username" 
    MellonUser "email" 
    MellonSamlResponseDump On 
    MellonSessionDump On 
    MellonEndpointPath /mellon 
    Require valid-user 

</Location> 

в авториз/info.php, я пытаюсь напечатать переменную $ SERVER:

<?php 
    var_dump($_SERVER); 
?> 

Я получаю mellon-cookie, но нигде не могу увидеть значения переменных среды, которые я задал.

Какую конфигурацию мне не хватает?

ответ

0

У меня была эта проблема с использованием apache в качестве обратного прокси для приложения, которое я хотел защитить mod_auth_mellon. Похоже, apache автоматически не пропускает заголовки, созданные внутренними модулями. Я должен был позволить mod_headers и добавить:

RequestHeader set Mellon-NameID %{MELLON_NAME_ID}e 

Это занимает заголовок MELLON_NAME_ID и передает его применения в качестве Mellon-NameID. Вам нужно будет добавить похожие строки для каждого заголовка, который вы хотите передать, например, MELLON_SESSION.

Смежные вопросы