社内LAN側に設置のSSO/シングルサイオンに未対応のID/パスワード入力を要求するWebサーバーに、IDaaSなどの代理入力機能を使って社外からアクセスする方法です。オンプレミスの社内WebアプリへのアクセスにIDaaS/idPと連携が出来ます。
外部のIDaaSからLAN内のWebサーバへのアクセスには、代理入力やSAML-SP機能を有して中継できるリバースプロキシ/Reverse Proxyを利用します。
SMAL/SSOに対応していないアプリケーションにも、代理入力を利用することでシングルサインオンと同様にターゲットのWebアプリケーションにログインが出来ます。冗長化での運用もできます。
idPの認証とは別に、リバースプロキシ上でもSSLクライアント認証などを設定することが可能で社内LAN側のWebへのアクセスをセキュアにすることが出来ます。
社内Webへのアクセスに際して、VPNやモバイル端末用の閉域網は不要です。ブラウザのみでアクセスができます。
動作要件
- IDaaS/idP側では、フォームベース認証やBASIC認証の代理入力機能をサポートしていること
- リバースプロキシ側では、idPからの代理入力やSAML-SP機能を有してターゲットのWebサーバーへ中継出来ること
idPなど
フォームベース認証やBASIC認証の代理入力機能を有しているidP/IDaaSとしては
- TrustLogin
- CloudGate UNO
- onelogin
- okta
- Azure AD
などがあります。
フォームベース認証の代理入力
フォームベース認証の代理入力は、idP側に登録したID/Passwdを他システムのログインフォームに代理入力することでログインする仕組みになります。
BASIC認証の代理入力
BASIC認証の代理入力はID/PasswdをHTTPヘッダに記載しサーバーに送信することでログインする仕組みになります。
SSOや代理入力対応のリバースプロキシ
リバースプロキシとしては、ID/パスワードの代理入力の中継に加えてSAML2.0のSP機能やリバースプロキシ独自でのSSLクライアント認証やワンタイムパスワード認証をサポートしている 「Powered BLUE Reverse Proxy for SSO/IDaaS」を利用します。
アプリケーション 例
Formbase認証のWebとしては、今回 Roundcube / Webmail とownCloud / オンラインストレージへアクセスします
ターゲット Web
roundcube https:// t-own.mubit.jp/webmail
owncloud https:// t-own.mubit.jp/owncloud
ネットワーク構成
idP -->> (Reverse Proxy ) t-ca.mubit.jp/webmail -->>(Target Web) t-own.mubit.jp/webmail
idP -->> (Reverse Proxy ) t-ca.mubit.jp/owncloud -->>(Target Wb) t-own.mubit.jp/owncloud
idP
今回はフォームベース認証やBASIC認証をidP側でサポートしているTrustLoginを利用します
またフォームベース認証やBASIC認証の入力機構であるTrustLoginの拡張機能を、事前にご利用のブラウザへ組込必要があります
TrustLoginで、拡張機能に現在対応のブラウザは
- マイページ Chrome・Firefox・Internet Explorer 11
- 管理ページ Chrome
※Safari、Edgeには順次対応予定
※TrustLoginの各ブラウザへの拡張機能のインストール方法は、TrustLoginのサイトを参照のこと
リバースプロキシの設定
Powered BLUE Reveese Proxy for SSO/IDaaSの設定をします
https://t-ca.mubit.jp
仮想サイト作成
リバースプロキシを運用する仮想サイトを構築します
例 https://t-ca.mubit.jp
Webサーバの有効化
Webサーバーを有効にする にチェックを入れます
仮想サイトのSSL化
SSLのサーバー証明書としては
- サイトのSSL自己証明
- パブリックなSSLサーバー証明書
- Let’s EncryptでのSSLサーバー証明書
に対応しています。
WebサイトのSSL自己証明の場合
SSLを有効にする にチェックを入れます
パブリックなSSLサーバー証明書の場合
必要情報を記載して「署名リクエストの作成」ボタンで作成したテキストを、SSLサーバー証明書を発行する機関へ送付します。
- 「署名リクエストの作成」でファイルを保存
- 作成された「署名リクエスト」 ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付
- 公的機関で発行された、サーバー証明書を 「インポート」 します
- 中間証明書のインポートにも対応しています
SSLサーバー証明書が発行されたら「インポート」ボタン操作でSSLサーバー証明書をインポートします
Let’s Encryptの場合
フリープラグイン機能を利用して、Let’s Encryptプログラムをインポートします
FreeSSLを選択
インストールボタンをクリック
Let’s Encryptインストール後に 有効にする にチェックを入れます
リバースプロキシの設定
太字部分を設定します
https://t-ca.mubit.jp/owncloud/ ——->> https://t-own.mubit.jp/owncloud/
https://t-ca.mubit.jp/webmail/ ——->> https://t-own.mubit.jp/webmail/
TrustLogin の設定
社内WEBシステムやテンプレートにないアプリを登録する(独自アプリ登録の利用方法)
※ この機能はChrome版、Firefox版の拡張機能のみでご利用いただけます。Internet Explorer 11をお使いの場合は、Chrome、Firefoxでご対応ください。
① トラスト・ログインの管理ページの「設定 > トラスト・ログイン機能制限」メニューで「独自アプリ登録」を有効化します。
管理者のみ、メンバーのみ、両方の有効化をすることができます。(上段の2個)
「編集ボタン」を押さないと、パラメータが変更できないので注意
編集終了後は「保存ボタン」を押す
② アプリ登録をするログインページをブラウザで開き、拡張機能の左上にある「+」マークをクリックします。
※ 管理ページでの設定が有効になると「+」マークが表示されます。設定が無効な場合や権限がないメンバーでログインしていた場合はマークが表示されません。
③ ログインページ内の入力フォームのいずれかをクリックします。
注意 登録するWebアプリのログインページにアクセスした状態で「+」マークを押す必要あり
例 https://t-ca.mubit.jp/webmail/ のログインページにアクセスして、ユーザー名にカーソルを合わせた状態で ブラウザ右上のTrustLogin のマークをクリックして 「+」をクリック
roundcube のユーザー名のログインにカーソルを合わせてクリック
次にブラウザ右上の TrustLogin のロゴマーク をクリック
アプリの利用範囲
自分用 もしくは 自社用
アプリ名
例 Roundcube Webmail ログイン
アカウント test-user
パスワード xxxxxxx
などを入力して保存する
代理入力でアクセスした際に
ユーザー名 / パスワード は入力されるが
リターンキーまでは入力出来ていない為に、ターゲットのWebへ自動でログインが出来ないケースがあります
修正方法は、
再度 ユーザー名 / パスワード を登録して保存しなおすことでリターンキーまで入力されて、ターゲットのWebへのダイレクトログインが出来ます
アクセス
roundcubeへのログイン
自動代理入力
idP/TrustLoginによる フォームベース認証のroundcube Web メールへリバースプロキシ経由でのID/パスワード の自動代理入力
自動ログイン
roundcubeへの自動ログイン
owncloudの設定
ownCloudもroundcubeと同様にテンプレートを作成して アカウント / パスワードやアプリの表示名などを設定します
ownCloudへのアクセス
TrustLoginのownCloudをクリック
owncloudへの自動代理入力
idP/TrustLoginによる フォームベース認証のownCloudサイトへリバースプロキシ経由でのID/パスワード の自動代理入力
ownCloudへの自動ログイン
リバースプロキシでの独自認証
idPへのアクセス認証とは別に、自社で運用するリバースプロキシ上に独自にSSLクライアント認証を設定することが出来ます。社内LAN側のサーバーへのアクセスに際して、自社独自のアクセス基準などがある場合には、idPの認証とは別に自社の管理下で運用するリバースプロキシへのアクセスコントロールを設定出来るSSLクライアント認証は有効です。
リバースプロキシでのSSLクライアント認証の構築手順&設定 例
- Private CAを構築
- t-ca.mubit.jp のWebサイトに SSLクライアント認証を設定
- SSLクライアント認証後にリバースプロキシでターゲットのWebサイトへの転送
Private CA
リバースプロキシ上にPrivate CAを構築します
SSLクライアント証明書発行
SSLクライアント証明書を発行して、ユーザーへ配布します
SSLクライアント認証
リバースプロキシへアクセス時のSSLクライアント認証の有効化
サイト全体にSSLクライアント認証を有効に設定
https://t-ca.mubit.jp
リバースプロキシのディレクトリ毎のSSLクライアント認証のオン・オフ設定も出来ます
SSLクライアント認証を有効に設定
https://t-ca.mubit.jp/xxxx
SSLクライアント認証を無効に設定
https://t-ca.mubit.jp/yyyy
SSLクライアント認証時のアクセスコントロール
有効なSSLクライアント証明書を有している場合でも、リバースプロキシへのアクセスコントロールを設定出来ます
●組織や部門でのアクセス制限
●曜日や時間帯でのアクセス制限
●特定ユーザーでのアクセス制限
●端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止
グループウエアへのアクセス例
SSLクライアント証明書 〇 SSLクライアント証明書 ✕
ログの出力先などの指定
SSLクライアント認証のログ出力先
冗長構成
- シングルAZ + ロードバランサー構成
マルチAZ
異なるアベイラビリティゾーンでの運用により耐障害性の向上
- ゾーンA / 東日本データセンター
- ゾーンB / 西日本データセンター
終わりに
デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの お問い合わせフォーム からご連絡ください。