2024年6月7日金曜日

OAuth2 Proxy を Onelogin で使ってみる

OAuth2 Proxy を Onelogin で使ってみる

概要

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 件のコメント:

コメントを投稿