使用Docker创建Apache的OpenID反向代理
简介
使用Apache在OpenID的反向代理中创建步骤。使用docker-compose创建环境。在此页面上,我们将提供将OpenID身份验证应用于prometheus,alertmanager和grafana的示例。
相关文章
-
- [目次] Prometheusで監視システムを作る with Docker
- Apache2.4でLDAP認証用のリバースプロキシを作る with Docker
目录结构
.
├── docker-compose.yaml
├── .env
├── conf
│ └── openidc.conf
└── Dockerfile
Docker-compose 组合
Prometheus、Alertmanager和Grafana的容器仅限制来自127.0.0.1的访问。
version: '3.2'
services:
openid-rproxy:
container_name: openid-rproxy
build:
context: ./
dockerfile: Dockerfile
env_file:
- .env
ports:
- "80:80"
restart: always
prometheus:
ports:
- 127.0.0.1:9090:9090
# 省略
alertmanager:
ports:
- 127.0.0.1:9093:9093
# 省略
grafana:
ports:
- 127.0.0.1:3000:3000
# 省略
请参考以下关于 Prometheus、Alertmanager 和 Grafana 的内容。
参考:prometheus、alertmanager 和 grafana 的 docker-compose.yaml 文件
Dockerfile的中文释义是什么?
安装mod-auth-openidc到Apache,并创建环境。
FROM httpd:2.4
RUN apt-get update -y
RUN mkdir /usr/local/apache2/conf/include/ && echo 'Include conf/include/*.conf ' >> /usr/local/apache2/conf/httpd.conf
RUN apt-get install -y libapache2-mod-auth-openidc
COPY ./conf/*.conf /usr/local/apache2/conf/include/
.env 文件。
写入OpenID的配置值。
# OIDCClientID
OPENID_CLIENT_ID=
# OIDCRedirectURI
OPENID_REDIRECT_URL=
# OIDCClientSecret
OPENID_CLIENT_SECRET=
# Require claim
OPENID_ROLE_NAME=
# OIDCCryptoPassphrase
# python -c 'import os,base64; print base64.urlsafe_b64encode(os.urandom(16))' などで発行する
OPENID_PASS_PHRASE=
conf / openidc.conf
创建Apache的conf文件。
LoadModule auth_openidc_module /usr/lib/apache2/modules/mod_auth_openidc.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost *:80>
LogLevel info
OIDCClientID ${OPENID_CLIENT_ID}
OIDCClientSecret ${OPENID_CLIENT_SECRET}
OIDCRedirectURI ${OPENID_REDIRECT_URL}
OIDCCryptoPassphrase ${OPENID_PASS_PHRASE}
# 適宜変更
OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration
OIDCProviderTokenEndpointAuth client_secret_basic
# 適宜変更
OIDCScope "openid profile email"
OIDCSSLValidateServer Off
OIDCResponseType "code"
# 適宜変更
OIDCOAuthRemoteUserClaim username
OIDCCookieSameSite On
# セッション有効期間の秒数。デフォルトは28800秒(8時間)。
# OIDCSessionMaxDuration 28800
# 無操作タイムアウトの秒数。デフォルトは300秒。
OIDCSessionInactivityTimeout 28800
<Location />
AuthType openid-connect
Require valid-user
Require claim ${OPENID_ROLE_NAME}
</Location>
ProxyRequests Off
# proxyするホスト
# prometheus, alertmanager, grafanaの3つを、サブディレクトリでアクセスできるようにする例
ProxyPass /prometheus http://prometheus:9090/prometheus
ProxyPassReverse /prometheus http://prometheus:9090/prometheus
ProxyPass /alertmanager http://alertmanager:9093/alertmanager
ProxyPassReverse /alertmanager http://alertmanager:9093/alertmanager
# grafanaは末尾に/grafanaが不要
ProxyPass /grafana http://grafana:3000
ProxyPassReverse /grafana http://grafana:3000
</VirtualHost>
启动
$ docker-compose up -d --build
请提供更多上下文来帮助我准确地为您提供对话或句子的汉语翻译。
- mod_auth_openidcによりApache HTTP ServerをOpenID Connect Relying Partyにする — Google編