Apache 使用mod_auth_openidc对自定义web应用程序进行身份验证

Apache 使用mod_auth_openidc对自定义web应用程序进行身份验证,apache,mod-proxy,mod-auth-openidc,Apache,Mod Proxy,Mod Auth Openidc,我有一个在Apache2.2上运行的基本web应用程序,没有任何身份验证。网站内容是一个静态网页。我们的小型组织目前正在为所有网站实施mod_auth_openidc。我想在基本静态web应用程序的基础上实现mod_auth_openidc身份验证。我怎样才能做到这一点。我是apache配置和mod_auth_openidc的新手。我在谷歌上搜索了一些文章来实现它,但找不到。我已经在Oauth2服务器上为我的应用程序创建了一个静态帐户。有人能告诉我如何使用mod_auth_openidc和mod

我有一个在Apache2.2上运行的基本web应用程序,没有任何身份验证。网站内容是一个静态网页。我们的小型组织目前正在为所有网站实施mod_auth_openidc。我想在基本静态web应用程序的基础上实现mod_auth_openidc身份验证。我怎样才能做到这一点。我是apache配置和mod_auth_openidc的新手。我在谷歌上搜索了一些文章来实现它,但找不到。我已经在Oauth2服务器上为我的应用程序创建了一个静态帐户。有人能告诉我如何使用mod_auth_openidc和mod_proxy配置为我的静态网页应用程序启用身份验证的正确方向吗

<Location />
   AuthType openid-connect
   Require valid-user
</Location>
OIDCProviderMetadataURL https://example.com/fss/.well-known/openid-configuration
OIDCClientID ExampleCorp_Prod_web01
OIDCClientSecret <client-secret>
OIDCRedirectURI http://<ip>/redirect_uri
OIDCScope "profile openid"
OIDCCryptoPassphrase example@3003
OIDCCookiePath /
ProxyPass /  http://<ip>:8080/ nocanon
ProxyPassReverse / http://<ip>:8080/
ProxyRequests     Off
AllowEncodedSlashes on
<Proxy http://<ip>:8080/*>
</Proxy>
OIDCAuthNHeader X-Forwarded-User
OIDCRemoteUserClaim sub
OIDCClaimPrefix example_
LoadModule auth_openidc_module modules/mod_auth_openidc.so

Github项目页面上的自述文件中有一些示例:。假设静态网页存在于/example上,在您的特定PingFederate示例中,它将类似于:

OIDCProviderMetadataURL https://<pingfederate-host>:9031/.well-known/openid-configuration

OIDCClientID <client-id-as-registered-with-pingfederate>
OIDCClientSecret <client-secret-as-registered-with-pingfederate>

OIDCRedirectURI https://<your-apache-host>/example/redirect_uri/
OIDCCryptoPassphrase <password>
OIDCScope "openid email profile"

<Location /example/>
   AuthType openid-connect
   Require valid-user
</Location>
基于OPs环境的完整工作示例:

Listen 80
User www
Group www
DocumentRoot /opt/local/apache2/htdocs/
ErrorLog "logs/error_log"
LogLevel info
ServerName example.org

LoadModule ssl_module modules/mod_ssl.so
LoadModule authz_user_module   modules/mod_authz_user.so
LoadModule auth_openidc_module modules/mod_auth_openidc.so

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<Location />
   AuthType openid-connect
   Require valid-user
</Location>

OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration
OIDCClientID myclientid
OIDCClientSecret mysecret
OIDCRedirectURI http://example.org/protected/
OIDCScope "profile openid"
OIDCCryptoPassphrase example@3003
OIDCCookiePath /

ProxyPass /  http://192.168.10.1:80/ nocanon
ProxyPassReverse / http://192.168.10.1:80/
ProxyRequests     Off
AllowEncodedSlashes on
<Proxy http://192.168.10.1:8080/*>
</Proxy>

OIDCAuthNHeader X-Forwarded-User
OIDCRemoteUserClaim sub
OIDCClaimPrefix example_

您将针对哪个提供商进行配置?嗨,Hans,我们正在使用pingfederateHi-Hans,感谢您提供的信息。我正在尝试使用openidc登录后的hello world页面。我使用了openidc wiki 10中的一个示例。我使用下面的url来配置带有mod_auth_openidc+mod_proxy+hello world程序的hello world网页。但我看到401授权错误和日志显示oidc_unsolicited_proto_state:无法从状态解析JWT:无效的unsolicited response:[src/jose/apr_JWT.c:177:apr_JWT_base64url_decode_object]:JSON解析JSON加载失败:'['或'{'预期接近'l'l\\\xb4\xe7r\x12\x97\xec\x0e\x1d\xea\xde\x8az\xe5 | \xccb\xf0\xcd\n oidc\u授权\u响应\u匹配\u状态:无法还原状态oidc\u句柄\u授权\u响应:无效授权响应状态,未设置默认SSO URL,发送错误…非常抱歉日志和简短注释混合。我无法创建每个评论的下一行不直接访问重定向uri;这是一个虚荣的URL,仅由模块本身使用哦,不好,谢谢..差不多了…我已经更正了我现在遇到的URL。但是我仍然看到了Authorization错误401,并且我已经设置了loglevel进行调试。但是我现在没有看到任何与oidc相关的错误..但是当我禁用oidc配置模板和httpd重启。我看到hello world回来了。我必须在静态网页上设置任何基本身份验证吗?请建议