你好我想配置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>
现在有了这个配置,一切都很好。当我进入我的网站apache重定向我到OP登录页面。我有3种身份验证机制,我的提供商决定哪个登录页面必须加载取决于acr_values
和来自请求的ui_locales
参数的显示语言。要做到这一点,我应该通过这个参数到授权请求的网址。但是mod_auth_openidc
我做不到。我可以静态设置OIDCAuthRequestParams
,但这并不能解决我的问题,因为登录机制和语言取决于用户的选择。
我阅读了这个文档并使用下面的链接。但它不起作用。我不知道,也许我误解了什么。
[my_网站]?target_link_uri=[my_site/mypage.html]&iss=[my_provider]&auth_request_params=[urlencoded-query-string]
这样不对吗如何传递动态acr_values
和ui_locales
,以便apache使用这些查询参数生成auth请求
1条答案
按热度按时间vsikbqxv1#
您可以通过重定向
OIDCRedirectURI
并提供auth_request_params
参数以及target_link_uri
和iss
来显式触发身份验证请求。例如:当你使用一个提供者时,你需要使用一个相对较新版本的mod_auth_openidc >= 2.3.0