Bouncrは認証・認可の機能を備えたリバースプロキシです。
HTTPとHTTPSをサポートします。HTTPSはTLS 1.2のみのサポートです。
Bouncrの管理ページで、転送するバックエンドのアプリケーションと、その中を区分けしたレルムとを登録できます。 この設定にしたがって、Bouncrが受けたリクエストを、バックエンドのアプリケーションに転送します。
認証は以下のタイプをサポートしています。
- パスワード認証
- 2要素認証
- 外部のLDAP
- 外部のOAuth2プロバイダ
- SSLクライアント認証
Bouncrでは、任意のグループを作成することができます。 このグループに対して、ロールを割り当てることができます。
Bouncrへのサインイン直後のダッシュボードで、直近のアクティビティと現在Bouncrでサインイン中のセッションの一覧が表示されます。 そこで不審なセッションはその場で削除することができます。
監査権限をもったユーザは、不正なアクセスがないかを監査できます。
Bouncr自体の権限は、"CREATE_USER" "CREATE_ANY_USER" のように、たいていANYの付くものとそうでないものがあります。 ANYはどんなユーザでも変更でき、
以降、便宜的にANY権限をもつユーザをシステム管理者、そうでない管理権限を単に管理者と呼びます。
管理者によるユーザの登録/変更/削除/ロックができます。
以下の項目を決めることができます。
- 許容するパスワードの文字列・文字長
- アカウントロックするまでの連続失敗回数
- パスワードの有効期限
管理者によるグループの登録/変更/削除ができます。 グループにユーザを追加できます。
システム管理者以外は、自分の所属するグループに属しているユーザしか見えないため、それ以外のユーザをグループに加えることはできません。 そこで招待コードを発行し、それを追加したいユーザに送り、その人がジョインのアクションをとることによって、グループに加わることができます。
管理者によるアプリケーションの登録/変更/削除ができます。
管理者によるロール・権限の登録/変更/削除ができます。
Bouncrで管理しているアカウントを使って、別のシステムで認証できるよう、BouncrがIdPとして動作することも可能です。
Bouncrで認証・認可後、バックエンドのアプリケーションへは、以下のようなHTTPヘッダが付いたリクエストが転送されます。
X-Bouncr-Id: kawasima
X-Bouncr-Permissions: READ_COMMENTS,WRITE_COMMENTS
したがって、ここから認証済みのIDと持っている権限をもとに、認可をおこなうだけです。