概要
oauth2-proxy は nginx や traefik などでホスティングした静的ページに対して認証をつけることができるツールです
今回はとりあえず単体で動かしてみました
また今回紹介する設定は localhost で動作させる設定になります
環境
- Ubuntu 22.04
- golang 1.22.3
- oauth2-proxy 7.6
インストール
-
go install github.com/oauth2-proxy/oauth2-proxy/v7@latest
Onelogin のシークレットの取得
こちらの記事を参考に取得します
localhost.cfg
provider = "oidc"
redirect_url = "http://localhost:4180/oauth2/callback"
oidc_issuer_url = "https://xxxxx.onelogin.com/oidc/2"
upstreams = [
"http://0.0.0.0"
]
email_domains = [
"*"
]
client_id = "xxx"
client_secret = "xxx"
pass_access_token = true
cookie_secret = "hTsaC2-8_RVIU4VmTRsC_A=="
cookie_secure = false
skip_provider_button = true
# Note: use the following for testing within a container
http_address = "0.0.0.0:4180"
設定するべき項目は以下です
- oidc_issuer_url -> Onelogin が発行する OAuth 用の URL を入力します
- client_id -> Onelogin で取得したクライアントIDを入力します
- client_secret -> Onelogin で取得したクライアントシークレットを入力します
- cookie_secret -> クッキーを暗号化するための文字列を取得します
cookie_secret は以下のようなコマンドで推測されにくいランダムな文字列を設定することをオススメします
python -c 'import os,base64; print(base64.urlsafe_b64encode(os.urandom(16)))'
認証後は upstreams に指定している URL の情報が表示されます
oauth2-proxy の起動
-
oauth2-proxy --config ./localhost.cfg
これで localhost:4180 にアクセスすると Onelogin の認証画面になります
認証が成功すると upstreams に設定した URL のコンテンツ情報が表示されます
最後に
OAuth2 Proxy を単体で動作させてみました
まずは単体で動作させてどういう挙動になるのか確認したほうが良いかなと思います
次回は nginx と連携してみます
0 件のコメント:
コメントを投稿