シングルサインオン(SSO)は、現在市場に出回っている認証/ディレクトリ・サービスの機能です。
ユーザは一同サインインすると、複数の別々のアプリケーションで認証を受けることができるようになります。
多くの組織がWebAuthでSSOを提供しています。
WebAuthはApacheのリバースプロキシを使用して、安全なトランスペアレントな認証システムを提供します。
PaperCut社はオックスフォード大学の協力でPaperCutにこのSSO設定のサポートを追加しました。
注記: この記事で説明する設定方法は、WebAuthのSSOソリューションとApacheのリバースプロキシの設定の両方に経験のある技術者を想定しています。
Apache WebAuthモジュールはLinux上でApacheを実行する必要があります。
動作
①. AさんのブラウザはApacheのリバースプロキシである papercut.example.com をヒットします。
②. Apache用WebAuth拡張機能は、Aさんのセッション・キーのためにcookieを検証します。
③. Aさんが認証されていない場合、続行が許可される前に認証サーバへリダイレクトされます。
④. Aさんが認証された場合、リバースプロキシはAさんに代わって本物のPaperCutサーバ(real-papercut.example.com) へリクエストを送信します。
このリクエストは通常のHTTPリクエストのように見えますが、AさんのIDを含むHTTPヘッダが追加されています。
ほとんどの場合、これはAさんのユーザ名です。しかしリンクされたディレクトリ・サービスが受け付ける他の形式のIDである可能性もあります。
⑤. リクエストがPaperCutサーバに到達すると、PaperCutはリクエストが指定されたSSOプロキシから送信されたことを認識し、
識別用のHTTPヘッダを探そうとします。
⑥. HTTPヘッダの内容を見つけると、PaperCutはAさんの転送されたリクエストを認証済みとして扱います。
AさんはPaperCutにアクセスするために、再認証する必要はありません。
プロキシはその後のすべてのリクエストと一緒にAさんの識別子をパッケージ化し続けるためです。
設定方法
上記例のpapercut.example.com のように、
リクエストのパブリック・フェイス側に設定された(Linuxサーバ上で実行されている) Apache Webサーバが必要です。
Webサーバには mod_proxy がインストールされている必要があります。
Apacheサイトの設定で、新しいバーチャル・ホストを追加してください。
これはプロキシがリクエストをどのサーバへ転送するか、ユーザのIDをどのHTTPヘッダに入れるかを定義します。
|
<VirtualHost *:80> ServerName papercut.example.com SSLEngine on SSLProxyEngine on ProxyRequests off <Location / > AuthType WebAuth require valid-user ProxyPass
https://real-papercut.example:9192/ ProxyPassReverse
https://real-papercut.example:9192/ RequestHeader set
"SSO-USER" "%{WEBAUTH_USER}e" </Location> </VirtualHost> |
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。