您好,我想配置apache2
服务器以将未经授权的用户重定向到我的提供商登录页面,例如google
,gluu
等等。我正在使用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 webmaster@localhost
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>
现在有了这个配置,一切都OK了。当我进入我的站点时,apache 将我重定向到 OP 登录页面。我有 3 种身份验证机制,我的提供商决定必须加载哪个登录页面,这取决于请求中的参数acr_values
和显示语言。ui_locales
为此,我应该将此参数传递给 auth requset url。但mod_auth_openidc
我做不到。我可以OIDCAuthRequestParams
静态设置,但这不能解决我的问题,因为登录机制和语言取决于用户的选择。
我阅读了此文档并使用以下链接。但它不起作用。我不知道可能是我误解了什么。
[my_site]?target_link_uri=[my_site/mypage.html]&iss=[my_provider]&auth_request_params=[urlencoded-query-string]
那是错的吗?如何传递动态acr_values
,ui_locales
以便 apache 使用这些查询参数生成身份验证请求