2017-10-18 150 views
0

你好,我想配置apache2服务器未经授权的用户重定向到我的供应商登录页面,如googlegluu和等。我使用mod_auth_openidc和下面的代码片断我default-ssl.conf文件动态查询参数授权请求

<IfModule mod_ssl.c> 
    <VirtualHost _default_:8443> 
     OIDCProviderMetadataURL https://<my_provider>/.well-known/openid-configuration 
     OIDCClientID <client_code> 
     OIDCClientSecret <client_secret> 
     OIDCRedirectURI https://<my_site>:8443/cgi-bin/ 
     #OIDCAuthRequestParams acr_values=auth_request_params 
     OIDCResponseType code 
     OIDCScope "openid profile email" 
     OIDCSSLValidateServer Off 
     OIDCCryptoPassphrase 123456 
     OIDCPassClaimsAs environment 
     OIDCClaimPrefix USERINFO_ 
     OIDCPassIDTokenAs payload 
     <Location "/"> 
      Require valid-user 
      AuthType openid-connect 
     </Location> 


     ServerAdmin [email protected] 

     DocumentRoot /var/www/html 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

     SSLEngine on 

     SSLCertificateFile /etc/apache2/ssl/apache.crt 
     SSLCertificateKeyFile /etc/apache2/ssl/apache.key 

     <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
       SSLOptions +StdEnvVars 
     </FilesMatch> 
     <Directory /usr/lib/cgi-bin> 
       SSLOptions +StdEnvVars 
     </Directory> 
    </VirtualHost> 
</IfModule> 

现在有了这个配置,一切都很好。当我进入我的网站时,apache将我重定向到OP登录页面。我有3种身份验证机制,我的提供商决定哪个登录页面必须加载取决于acr_values以及来自请求的ui_locales param的显示语言。为此,我应该将此参数传递给auth requset url。但用mod_auth_openidc我做不到。我可以静态设置OIDCAuthRequestParams,但这并不能解决我的问题,因为登录机制和语言取决于用户的选择。

我看了this documentation并使用下面的链接。但它不起作用。我不知道可能是我误解了一些东西。

[my_site] target_link_uri = [my_site /的mypage.html] & ISS = [my_provider] & auth_request_params = [url编码的查询字符串]

是不是错了?我怎样才能通过动态acr_valuesui_locales这样Apache产生这些查询的身份验证请求参数

回答

0

您可以明确地通过重定向的OIDCRedirectURI确实触发认证请求,并提供auth_request_params参数与target_link_uriiss在一起。例如。

https://<my_site>:8443/cgi-bin/?target_link_uri=[my_site/mypage.html]&iss=[my_provider]&auth_request_params=acr_values%3Dsome_acr%26ui_locales%3Den 

当你使用它与单一供应商欧确实需要使用相对较新的mod_auth_openidc> = 2.3.0

版本