【注記】この記事はPaperCutを管理しているエンドユーザの記事を翻訳しています。
PaperCut MFを使用しているあるエンドユーザは、彼らの開発環境でShibboleth3のネイティブIISモジュールを使用し、
IIS8.0 でIDPとしてAzure ADと統合することに成功しました。
この記事では彼らが実施した設定手順を記載します。
IISのインストール
1. サーバーマネージャーを起動する
2. 「サーバの役割と機能」を選択
3. 「役割」から「Webサーバー(IIS)」を選択
4. 「機能」はスキップ
5. [インストール]をクリック
Shibbolethのインストール
1. Shibboleth3をダウンロード(https://shibboleth.net/downloads/service-provider/latest/win64/)
2. ダウンロードしたインストーラを実行
3. インストールパスをプログラムドライブのルートに変更 (例: D:\shibboleth-sp)
4. 「Install IIS 7 Module」に必ずチェックを入れてください。
5. その他はデフォルトのまま
6. Shibbolethデーモンサービスの名前を適合するように変更してください。
<path to="" installation="">\shibboleth-sp\sbin64\shibd.exe -remove shibd_Default
<path to="" installation="">\shibboleth-sp\sbin64\shibd.exe -install shibd
7. Iisresetを実行した後、「http://localhost/Shibboleth.sso/Status」に移動し、
サービスが正常に動作しているかを確認してください。
Shibbolethの設定
1. 「D:\shibboleth-sp\etc\shibboleth\」にある「shibboleth2.xml」と
「attribute-map.xml」をアプリケーションの必要に応じて変更してください。
2. 着信リクエストのホスト名とポートをIISサイトにマップするためにISAPI要素を構成する必要があります。
<isapi normalizerequest="true" safeheadernames="true">
<site id="1" name="papercut.example.com" scheme="https" port="443"/>
</isapi>
3. アプリケーションの様々な箇所を保護するためにRequestMapper要素を構成する必要があります。
<requestmapper type="Native">
<requestmap>
<host name="papercut.example.org">
<path name="user" authtype="shibboleth" requiresession="true"/>
<path name="admin" authtype="shibboleth" requiresession="true"/>
<path name="app" authtype="shibboleth" requiresession="true"/>
</host>
</requestmap>
</requestmapper>
4. ApplicationDefaults要素にエンティティIDを設定し、REMOTE_USER属性に「ppcuser」を追加します。
<applicationdefaults entityid="http://papercut.example.com/shibboleth"
remote_user="eppn persistent-id targeted-id uid ppcuser" ...="">
5. サーバへのプロキシアクセスは、ApplicationDefaults/Sessions 要素で、
handlerSSLを「false」に設定し、cookiePropsを「https」に設定します。
6. attribute-map.xml の「ppcuser」属性にusernameのマッピングを追加します。
<attribute id="ppcuser" name="http://schemas.xmlsoap.org/..."/>
アプリケーションプロキシの設定
1. 「Application Request Routing(以下ARR)」を有効化します。
(新しいIISネイティブモジュールを使用する場合、この手順は不要の可能性があります。)
A) ARRパッケージをダウンロードしてインストール(https://www.iis.net/downloads/microsoft/application-request-routing)
B) IISマネージャーを開きます。
C) 「サーバー名」-「Application Request Routing」を選択
D) 右側のメニューから「Server Proxy Settings」を選択
E) 「Enable Proxy」にチェックをつけてください。
2. 「Proxy Rewrites」を設定してください。
1. IISマネージャーからアプリケーションに関連付けられたサイトへ移動してください。
2. 右側のメニューから「Add Rules…」をクリック
3. Shibbolethルール
Shibbolethリクエストをキャプチャするため、「Blank Rule」テンプレートを使用してInboundRuleを作成します。
Requested URL: Matches the pattern(パターンに合わせる)
Using: Regular expressions(正規表現)
Patern: Shibboleth.sso/.*
Ignore case: チェックを入れる
Action Type: None
Stop processing of subsequent rules: チェックを入れる
4. PaperCut Application Proxy Rule
アプリケーションへプロキシバックするための別の空白のInboundRuleを作成します。
Requested URL: Matches the pattern(パターンに合わせる)
Using: Regular expressions(正規表現)
Pattern: (.*)
Ignore case: チェックを入れる
Action Type: Rewrite
Rewrite URL: http://localhost:9191/{R:1}
Stop processing of subsequent rules: チェックを入れる
サービスの再起動
1. Shibbolethを再起動後、IISを再起動すると、設定が正しく読み込まれます。
Restart-Service shibd; iisreset
Azure ADの設定
1. 「portal.azure.com」へアクセスしてください。
2. <Azure Active Directory> - < Enterprise Applications > - <New Application > - < Non-Gallery Application >を選択してください。
3. 「アプリケーション名」を選択してください。
4. < Single sign-on > - <SAML>へ移動してください。
A) 「http://disq.us/url?url=http%3A%2F%2Fyour-app- server.example.com
%2FShibboleth.sso%2FMetadata%3AGYwrQmJRloFVFUc0-bWmWBuGnLw&cuid=732743」へ移動し
Shibbolethのメタデータを取得してください。
B) [Upload Metadata File]ボタンを使用して、サービスプロバイダのメタデータファイルをアップロードしてください。
C) アトリビュートとクレームをマッピングしてください。
D) 保存してください。
5. プロパティへ移動してください。
A) User assignment required = No
すべてのユーザがアプリケーションへログインできるようにする場合、設定してください。
「ユーザとグループ」機能を使用すると、より詳細な権限を設定することができます。
B) 保存してください。
6. このサービスのIdP エンティティ IDをコピーし、「ApplicationDefaults/Sessions/SSO」要素に貼り付けてください。
<sso entityid="https://sts.windows.net/c82354df-7b36-4646-8e6a-064160399dcd/">
SAML2
</sso>
7. このサービスのIdPメタデータURLをコピーし、
「ApplicationDefaults/Sessions/MetadataProvider」要素に貼り付けてください。
<metadataprovider type="XML" url="https://login.microsoftonline.com/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/federationmetadata/2007-06/federationmetadata.xml?appid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
プロキシの設定
PaperCutアプリケーションのプロキシにNGINXを使用しているため、若干の差異はあるかもしれません。
1. NGINX設定を構成します。
server {
listen 443 ssl;
server_name papercut.example.com;
ssl_certificate certs/papercut.crt;
ssl_certificate_key certs/papercut.key;
location / {
include /etc/nginx/mime.types;
client_max_body_size 1024M;
proxy_pass http://papercut-pd-upstream;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Scheme $scheme;
}
}
2. 「papercut.example.com」をNGINXサーバをポイントするようにDNSを設定してください。
3. プロキシを正しく動作させるため、「<papercut root="">/server/server.properties」にこのプロパティを追加/変更する必要があるかもしれません。
server.csrf-check.validate-request-origin=N
PaperCutの設定
1. PaperCutアプリケーション開いてください。
(プロキシ設定がまだの場合、アプリケーションサーバ上かブラウザを起動し「http://localhost:9191/admin」にアクセスしてください。)
2. <オプション> - <拡張> へ移動してください。
3. 「Webシングルサインオン (SSO)」エリアを表示し、次のように設定してください。
Webシングルサインオンの有効化: チェックを入れる
プルダウン:WebAuth
WebAuth HTTP ヘッダ・キー:Ppcuser
許可された WebAuth IP アドレス:127.0.0.1,0:0:0:0:0:0:0:1
管理者ログイン:SSOを使用して直接アクセス (任意)
ユーザ・ログイン:SSOを使用して直接アクセス (必須)
その他のログイン:標準(ユーザ名とパスワード)
確認ページに 「ユーザの切り替え」リンクを表示:任意
ログアウト時にユーザが移動するURLを入力:任意(ダイレクト先URL入力は必須)
追加情報
https://shibboleth.atlassian.net/wiki/spaces/SP3/pages/2065335545/Install+on+Windows
https://shibboleth.atlassian.net/wiki/spaces/SP3/pages/2065335360/IIS

0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。