使用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編
广告
将在 10 秒后关闭
bannerAds