OpenID Connectへ認証を行い、プロキシ先へAuthorizationヘッダーにBearerトークンを付与してプロキシ転送を行う。
OAuth2: Authorization Code Flowに基づくOpenID Connect
サポートしているファイル拡張子
- .yaml
- .yml
- .toml
- .json
設定ファイル内に環境変数を設定することも可能です。
設定ファイルについてはファイル監視を行い、変更が入り次第設定を読込
ルーティング設定等々の再設定が行われます。
ssl証明書ファイルに関しても、ファイル監視を行っているため
再起動なしで再設定が可能です。
| キー | タイプ | 内容 | required |
|---|---|---|---|
| port | number | プロキシサーバーのポート番号 | true |
| ssl_certificate | string | .crtファイル | false |
| ssl_certificate_key | string | .keyファイル | false |
| logging | object | Logging | true |
| servers | array | Servers | true |
| キー | タイプ | 内容 | required |
|---|---|---|---|
| level | string | ログの出力レベルが設定出来ます。(debug, info, warn, error, criticalのどれかを設定) | true |
| filename | string | 出力先ファイル名を設定(絶対パス) | false |
| prefix | string | ログ出力時にprefixが設定される | false |
| キー | タイプ | 内容 | required |
|---|---|---|---|
| session_name | string | cookieセッション名 | true |
| server_name | string | バーチャルホスト名 | true |
| login | string | プロキシサーバー上のログインURLを設定 | true |
| callback | string | プロキシサーバー上のコールバックURL | true |
| logout | string | プロキシサーバー上のログアウトURL | true |
| logging | object | Logging | true |
| oidc | object | OIDC | true |
| locations | array | Location | true |
| logging | object | Logging | true |
| cache | object | Cache | true |
| キー | タイプ | 内容 | required |
|---|---|---|---|
| scopes | array | oidcスコープ | true |
| provider | string | プロバイダURL | true |
| client_id | string | IDPクライアントキー | true |
| client_secret | string | IDPクライアントシークレットキー | true |
| redirect_url | string | リダイレクトURL | true |
| logout | string | IDPのログアウト先URL | true |
| キー | タイプ | 内容 | required |
|---|---|---|---|
| proxy_pass | string | 転送先URL | true |
| urls | array | URL | true |
| キー | タイプ | 内容 | required |
|---|---|---|---|
| path | string | 転送先URLパス | true |
| token | string | 転送先パスへ転送するトークンを設定(id_token, access_token) | true |
| キー | タイプ | 内容 | required |
|---|---|---|---|
| name | string | 使用するキャッシュプラグイン名 | true |
| codecs | array | Cookieセッションを暗号化するためのキー文字列 | true |
| cache_time | number | キャッシュを保持しておく時間 | true |
| endpoints | array | キャッシュサーバーへの接続先エンドポイント | true(etcd) |
| username | string | キャッシュサーバーへの接続ユーザー名 | false |
| password | string | キャッシュサーバーへの接続パスワード | false |
port: 8080
ssl_certificate: ssl/sever.crt
ssl_certificate_key: ssl/sever.key
logging:
level: debug or info or warn or warning(warn) or error or err(error) or critical or dev(debug) or prod(info)
filename: ""
prefix: ""
servers:
- oidc:
scopes:
- email
- openid
- offline_access
- profile
provider: https://keycloak/
client_id: xxx
client_secret: xxx
redirect_url: http://localhost:8080/oauth2/callback
logout: https://keycloak/logout?returnTo=http://localhost:8080/oauth2/login
login: /oauth2/login
callback: /oauth2/callback
logout: /oauth2/logout
locations:
- proxy_pass: http://localhost
urls:
- path: /
token: id_token
logging:
level: debug or info or warn or warning(warn) or error or err(error) or critical or dev(debug) or prod(info)
filename: ""
prefix: ""
session_name: ""
server_name: virtual sever name
cache:
name: memory
codecs: []
endpoints: []
cache_time: 30
username: ""
password: ""