ONLYOFFICE SPとShibboleth IdPの設定
はじめに
シングルサインオン(SSO)は、ユーザーが一度だけサインインすることで、再認証なしに複数のアプリケーションやサービスにアクセスできる技術です。
例えば、ウェブポータルがフォーラム、チャット、ブログなどの大規模な独立したセクションを含む場合、ユーザーは一つのサービスで認証手続きを行うことで、複数回の資格情報入力なしに他のすべてのサービスに自動的にアクセスできます。
SSOは常に、アイデンティティプロバイダーとサービスプロバイダー(以下「IdP」と「SP」と呼びます)の2つのアプリケーションの共同作業によって保証されます。ONLYOFFICE SSOはSPのみを実装しています。IdPとしては多くの異なるプロバイダーが機能できますが、この記事ではShibbolethの実装を考慮します。
ONLYOFFICEデスクトップエディターをONLYOFFICE Workspaceに接続する際にSSOを使用したい場合は、コントロールパネルでプライベートルームを無効にしてください。
SSO設定のためのONLYOFFICE Workspaceの準備
- Docker用のONLYOFFICE Workspace v. 11.0.0またはSSOサポートを含むそれ以降のバージョンをインストールします。
- ドメイン名を追加します。例:
myportal-address.com。 - ポータルでコントロールパネル > HTTPSに移動し、トラフィック暗号化のためにletsencrypt証明書を作成して適用します(ポータルでHTTPSを有効にするため)。
Shibboleth IdPの作成
要件
-
Shibboleth IDPをデプロイするには、クリーンなCentOS 7のホストマシンが必要です。
-
IDPのために、時間が正しく設定され、時間同期サービスがホストマシンにインストールされている必要があります:
timedatectl statusyum install ntpsystemctl enable ntpd.servicentpdate time.apple.com -
マシンに
unzipパッケージがインストールされている必要があります:yum install unzip -
DockerとDocker Composeがマシンにインストールされている必要があります。
-
マシンにドメイン名が関連付けられている必要があります(例:
your-idp-domain.com)
Shibboleth IdPの作成
Shibboleth IDPを作成、設定、開始するには、install.shスクリプトをダウンロードして実行します。
スクリプトの内容:
- githubからShibboleth Idpイメージとコンテナを作成するためのdockerファイルをダウンロードします。
- 設定ファイルのデフォルトドメイン
idptestbed.eduをスクリプト実行時に指定したドメインに変更します。 - 指定されたONLYOFFICE SPドメインへのSAMLプロトコルによるアクセスを追加します。
- Shibboleth IDPからユーザー情報を発行するために必要な属性をONLYOFFICE SPに指定します(属性マッピング設定)。
- LDAPを作成し、発行用のユーザーを作成します。
- ONLYOFFICE SPからShibboleth IDPへのメタデータの動的読み込みを有効にします。
- 必要に応じてShibboleth SLOを有効にします。
-
install.shスクリプトをダウンロードします:
curl -L https://raw.githubusercontent.com/ONLYOFFICE/helpcenter-scripts/master/workspace/control-panel-sso-shibboleth/install.sh -o install.sh -
スクリプトを実行可能にします:
chmod +x install.sh -
スクリプトを実行し、パラメータを自分のものに置き換えます:
./install.sh -id your-idp-domain.com -sd myportal-address.com --no_sloスクリプトのパラメータ:
- -id - Shibboleth IDPの現在のマシンのドメイン名。
- -sd - ONLYOFFICE SPがデプロイされているドメイン名。
- --no_slo - Shibboleth IDPでのシングルログアウトを無効にします(オプションのパラメータ)。
-
スクリプトを実行した後、Shibboleth IDPが開始されるのを待ちます。
-
Shibboleth IDPが正しく開始されたことを確認するには、ブラウザで
https://your-idp-domain.com/idp/shibbolethリンクを開きます。XMLファイルが表示されるはずです。 -
https://{your_idp_domain}/idp/shibbolethリンク(例:https://your-idp-domain.com/idp/shibboleth)をコピーし、管理者としてONLYOFFICEポータルにサインインします。コントロールパネル > SSOページを開きます。
ONLYOFFICE SPの設定
-
ONLYOFFICEのコントロールパネルに管理者としてサインインしていることを確認し、左サイドバーのポータル設定セクションでSSOタブをクリックします。
注記ONLYOFFICEポータルでは、組織のエンタープライズIdPを1つだけ登録できます。

-
シングルサインオン認証を有効にするスイッチャーを使用してSSOを有効にし、Shibboleth IdPへのリンクをIdpメタデータXMLのURLフィールドに貼り付けます。
-
上向き矢印のボタンを押してIdPメタデータをロードします。ONLYOFFICE SP設定フォームがShibboleth IdPからのデータで自動的に入力されます。
install.shスクリプトを実行する際に
--no_sloパラメータを指定してSLOを無効にしたため、IdPシングルログアウトエンドポイントURLフィールドは空になります。 -
IdPメタデータがロードされると、IdP公開証明書セクションに2つの証明書が追加されます。また、次のテキストを含むポップアップウィンドウが表示されます:「複数のIdp検証証明書はサポートされていません。プライマリ証明書のみを残してください」。
リストの2番目の証明書を削除し、最初の証明書のみを残す必要があります。これはプライマリ証明書です。設定を保存するには、2番目の証明書の横にある削除リンクを使用して削除してください。
-
カスタムログインボタンキャプションフィールドには、デフォルトのテキスト(シングルサインオン)の代わりに任意のテキストを入力できます。このテキストは、ONLYOFFICE認証ページでシングルサインオンサービスを使用してポータルにログインするためのボタンに表示されます。
-
次に、SP証明書セクションで自己署名証明書を作成するか、他の証明書を追加する必要があります。
重要!使用目的リストで署名と暗号化オプションを選択してください。Shibboleth IdPは、install.shスクリプトでデジタル署名と暗号化されたデータを確認するように自動的に設定されています。

ほぼ同じ結果が得られるはずです:

-
属性マッピングセクションで、Shibboleth IdPから返されるユーザー属性に対して、ONLYOFFICE Peopleモジュールのフィールドの対応を設定します。
フィールド 属性 名 urn:oid:2.5.4.42姓 urn:oid:2.5.4.4メール urn:oid:0.9.2342.19200300.100.1.3所在地 urn:oid:2.5.4.7役職 urn:oid:2.5.4.12電話 urn:oid:0.9.2342.19200300.100.1.41
詳細設定セクションで、デフォルトの認証ページを非表示にし、SSOサービスに自動的にリダイレクトするために認証ページを非表示オプションをチェックすることができます。
重要デフォルトの認証ページを復元する必要がある場合(IDPサーバーが故障した場合にポータルにアクセスできるようにするため)、ブラウザのアドレスバーでポータルのドメイン名の後に
/Auth.aspx?skipssoredirect=trueキーを追加することができます。 -
保存ボタンをクリックします。
-
ONLYOFFICE SPメタデータセクションが開かれるはずです。
-
設定が公開されていることを確認するために、SPメタデータXMLをダウンロードボタンをクリックします。XMLファイルの内容が表示されるはずです。

このXMLファイルは通常、Shibboleth IDPを設定するために使用されますが、install.shスクリプトが
DynamicHTTPMetadataProviderを有効にしているため、その必要はありません(Shibboleth IDPは最初のログイン要求時にこのXMLファイルをダウンロードします)。
Shibboleth IdPとONLYOFFICE SPの動作確認
install.shスクリプトは、Shibboleth IdPとONLYOFFICE SPの動作をテストするために使用できる4人のユーザーを作成しました。
| メール | ユーザー名 | パスワード | コメント |
|---|---|---|---|
student1@{your_idp_domain} | student1 | password | 標準 |
student2@{your_idp_domain} | student2 | password | givenNameなし |
student3@{your_idp_domain} | student3 | password | ウムラウト付き |
staff1@{your_idp_domain} | staff1 | password | 必須フィールドのみ |
SP側でのONLYOFFICEへのログイン
-
ONLYOFFICE認証ページにアクセスします(例:
https://myportal-address.com/Auth.aspx)。 -
シングルサインオンボタンをクリックします(ONLYOFFICE SPの設定時に独自のテキストを指定した場合、キャプションが異なる場合があります)。ボタンがない場合は、SSOが有効になっていないことを意味します。

-
すべてのSPおよびIdPパラメータが正しく設定されている場合、Shibboleth IdPのログインフォームにリダイレクトされます:
-
Shibboleth IdPアカウントのユーザー名とパスワードを入力します(ユーザー名:
student1、パスワード:password)し、ログインを記憶しないボックスをチェックします。 -
資格情報が正しければ、新しいウィンドウが開きます。承認ボタンをクリックして、サービスへの情報提供を許可します。

-
すべてが正しければ、ポータルのメインページにリダイレクトされます。ユーザーが存在しない場合は自動的に作成され、IdPで変更された場合はデータが更新されます。

SSO認証で追加されたユーザーのプロファイル
SSO認証を使用して作成されたユーザープロファイルの編集は制限されています。IdPから受け取ったユーザープロファイルフィールド(名、姓、メール、役職、所在地)は編集できません。これらのフィールドはIdPアカウントからのみ編集可能です。
以下の図は、SSOユーザーのアクションメニューを示しています:

以下の図は、編集のために開かれたSSOユーザープロファイルを示しています:

SSO認証を使用して作成されたユーザーは、ポータル管理者用のユーザーリストでSSOアイコンでマークされています:

Shibboleth IdPからログアウトするには(ログイン時にログインを記憶しないボックスをチェックしていない場合)、次のようなリンクにアクセスしてください:https://{shibboleth-idp-domain}/idp/profile/Logout