使用Keycloak将Apache mod_auth_openidc设置为资源服务器

时间:2018-04-05 21:00:41

标签: apache jboss wildfly keycloak mod-auth-openidc

我想设置一个非常简单的系统,通过Apache2及其mod_auth_openidc模块授予对静态目录的授权访问权限,使用Keycloak作为OAuth(OpenID Connect)服务器。在浏览了我能找到的所有文档和文章之后,我得到了以下配置。

<VirtualHost *:80>
    DocumentRoot /var/www/html

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    Redirect permanent '/' https://%{HTTP_HOST}
</VirtualHost>


<VirtualHost *:443>
    DocumentRoot /var/www/html

    ProxyPreserveHost On
    ProxyRequests Off
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"
    ProxyPass /auth http://127.0.0.1/auth
    ProxyPassReverse /auth http://127.0.0.1/auth

    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key

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

    OIDCOAuthIntrospectionEndpoint https://127.0.0.1/auth/realms/Localserv/protocol/openid-connect/token/introspect
    OIDCOAuthIntrospectionEndpointParams token_type_hint=access_token
    OIDCOAuthClientID Apache
    OIDCOAuthClientSecret 8947ff67-4a8d-4391-81cf-9b6c168e189d
    OIDCProviderMetadataURL https://127.0.0.1/auth/realms/Localserv/.well-known/openid-configuration
    OIDCRedirectURI https://www.example.com/example/redirect_uri
    OIDCCryptoPassphrase random1234

    <Location /secret/>
        AuthType oauth20
        Require claim iss:https://127.0.0.1/auth/Localserv/master
    </Location>

</VirtualHost>

关于我的设置的更多事实:

  • 我在同一台机器上运行Keycloak服务器,使用Apache作为它的反向代理。您也可以从上面的配置文件中看到。

  • 另外,我想提供简单的普通静态文件,我没有任何可以处理OAuth流的客户端应用程序。所以我希望OAuth客户端流程仅由mod_auth_openidc处理。如果未经授权的用户尝试访问,它应该重定向到登录页面,然后在正确登录时(通过Keycloak OAuth服务器进行身份验证),它应该授予访问权限。

现在我的问题是

  1. 我是否需要设置OIDCRedirectURI指令?如果我这样做,它的价值应该是什么?

  2. 我的要求的整体设置应该是什么。我觉得我没有朝着正确的方向前进,所以任何帮助都会非常感激。

0 个答案:

没有答案