OAuth2 Proxy情報
OAuth2 Proxyとは
OAuth2 Proxy(オーオーストゥプロキシー)は、アプリケーションの前段で認証と認可を外部に委譲するためのリバースプロキシーサーバーで、Go言語で実装されています。OAuth2 Proxyは、OAuth(認可の標準プロトコル)の「クライアント」やOpenID Connect(認証の標準プロトコル)の「Relying Party」として機能することで、これらのプロトコルに対応したサーバー(Keycloakなど)やサービス(Googleなど)にアプリケーションの認証と認可を委譲します。
OAuth2 Proxyの構成例として、以下のようなものが公式サイトに挙げられています。
このようにユーザー(図のブラウザーの部分)からのアプリケーション(図のsecured upstreamの部分)へのリクエストを受信して、認証と認可を要求するために、ユーザーをOAuthの「認可サーバー」やOpenID Connectの「OpenID Provider」(図のAuth Providerの部分)にリダイレクトします。
OAuth2 Proxyは、1つのバイナリーファイルのみで構成されるため、インストール作業が不要です。圧縮ファイルをダウンロードして解凍し、起動オプションとともにコマンドを実行するだけで、起動します。以下のコマンドは、アプリケーションや認可サーバーのURLなどの各種設定を設定ファイルにまとめて、起動した場合のコマンド例です。
$ ./oauth2-proxy --config=oauth2-proxy.cfg
ここで使用されるoauth2-proxy.cfgには、以下のようなキー=値の形式で設定が記述されます。設定ファイル以外にも、コマンド引数や環境変数から設定を変更することが可能です。
http_address = "127.0.0.1:4180"
redirect_url = "https://app.nri.co.jp/oauth2/callback"
upstreams = ["http://127.0.0.1:8080/"]
client_id = "oauth2-proxy-client"
client_secret = "rWzdm6gmNeATCkbaOtBg4tl4h4Oj031u"
oidc_issuer_url = "https://keycloak.nri.co.jp:8080/realms/sales"
provider = "keycloak-oidc"
正常に構成できると、アプリケーションへのアクセスの前に認証を外部に委譲するための、次のようなログイン画面が表示されます。
同様の機能を提供する製品
OAuth2 Proxyと同様に、アプリケーションの前段で認証と認可を外部に委譲するためのリバースプロキシーサーバーのOSSは他にもあります。Apacheモジュールの1つであるmod_auth_openidcが有名です。また、OSSではないですが、昨今のクラウドのロードバランサーでは、OIDC連携の機能が提供されているものが多いです。
OAuth2 Proxyのライセンス
OAuth2 Proxyのライセンスは、MITライセンスを採用しています。このライセンスの条件の下でソフトウェアのコピーや配布、ソースコードの自由な改変も認められています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。