AD FS IdP
はじめに
シングルサインオン(SSO)は、ユーザーが一度サインインするだけで、再認証なしに複数のアプリケーションやサービスにアクセスできる技術です。
例えば、ウェブポータルにフォーラム、チャット、ブログなどの大規模な独立したセクションが含まれている場合、ユーザーはそのうちの一つのサービスで認証手続きを行うことで、複数回の資格情報入力なしに他のすべてのサービスに自動的にアクセスできます。
SSOは常に2つのアプリケーションの共同動作によって確保されます:アイデンティティプロバイダーとサービスプロバイダー(それぞれ「IdP」と「SP」とも呼ばれます)。ONLYOFFICE SSO は SPのみ を実装しています。多くの異なるプロバイダーがIdPとして機能できますが、この記事では Active Directory Federation Services(AD FS)の実装について説明します。
SSO設定のためのAD FSの準備
-
すべての公式アップデートとパッチを含む最新のAD DS(Active Directory Domain Service)バージョンをインストールします。
-
すべての公式アップデートとパッチを含む最新のAD FSバージョンをインストールします。
注記AD FSをゼロからデプロイするには、次の手順を使用できます。
-
AD FSメタデータへのリンクが公開されていることを確認します。これを行うには、
-
サーバーマネージャーでツール -> AD FS管理を開きます。
-
AD FS \ サービス \ エンドポイントに移動します。
-
テーブル内のフェデレーションメタデータタイプの行を見つけます。IdPメタデータへのリンクは次のスキームに基づいて構築されます:
https://{ad-fs-domain}/{path-to-FederationMetadata.xml}または、次の PowerShell コマンドを使用できます:
PS C:\Users\Administrator> (Get-ADFSEndpoint | Where {$_.Protocol -eq "FederationMetadata" -or $_.Protocol -eq "Federation Metadata"}).FullUrl.ToString()結果として、次のようなリンクが得られるはずです:
https://myportal-address.com/FederationMetadata/2007-06/FederationMetadata.xml -
AD FSが正しく開始されたことを確認するには、受け取ったリンクをウェブブラウザで開きます。xmlが表示されるかダウンロードされるはずです。

メタデータxmlへのリンクをコピーします:次のステップで必要になります。ONLYOFFICE Appsに管理者としてサインインしていることを確認してください。設定 -> 統合 -> シングルサインオンページを開きます。
-
ONLYOFFICE SPの設定
-

シングルサインオン認証を有効にするスイッチを使用してSSOを有効にし、AD FSからコピーしたリンクをIdpメタデータXMLのURLフィールドに貼り付けます。

-
上向き矢印のボタンを押してIdPメタデータをロードします。ONLYOFFICE SP設定フォームはAD FS IdPからのデータで自動的に入力されます。

-
NameIDフォーマットセレクターで、次の値を選択します:urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress。
-
IdP公開証明書 \ 詳細設定セクションで、ログアウト応答の署名を確認オプションのチェックを外します。これはAD FSがデフォルトで必要としないためです。

-
次に、SP証明書セクションに証明書を追加する必要があります。自己署名証明書を生成するか、他の証明書を追加できます。
重要新しい証明書ウィンドウで、使用目的セレクターを署名と暗号化オプションに切り替えます。これは、AD FS IdPがデジタル署名を確認しデータを暗号化するように自動的に設定されているためです。

-
SP証明書 \ 詳細設定で、ログアウト応答の署名オプションのチェックを外します。これはAD FSがデフォルトで必要としないためです。

-
属性マッピングフォームを調整する必要はありません。これらのパラメータは後でAD FS IdPで設定します。
-
保存ボタンをクリックします。
-
ONLYOFFICE SPメタデータセクションが開かれるはずです。

-
SPメタデータXMLをダウンロードボタンをクリックして、設定が公開されていることを確認します。XMLファイルの内容が表示されます。

-
SP Entity ID(メタデータXMLへのリンク) フィールドからONLYOFFICE SPメタデータへのリンクをコピーし、AD FSがインストールされているマシンに移動します。
AD FS IdPの設定
-
サーバーマネージャーでツール→AD FS管理を開きます。

-
AD FS管理パネルで、信頼関係 > 依存パーティの信頼を選択します。右側の 依存パーティの信頼の追加... オプションをクリックします。依存パーティの信頼ウィザードが開きます。

-
ウィザードウィンドウで、オンラインまたはローカルネットワークで公開された依存パーティのデータをインポートするラジオボタンを選択し、先ほどコピーしたONLYOFFICE SPメタデータへのリンクを フェデレーションメタデータアドレス(ホスト名またはURL) フィールドに貼り付け、次へボタンをクリックします。

-
表示名フィールドに任意の名前を指定し、次へボタンをクリックします。

-
全員を許可するオプションを選択し、次へボタンをクリックします。

-
結果の設定を確認し、次へボタンをクリックします。

-
デフォルトのオプションを変更せずに、閉じるボタンをクリックします。

-
新しいウィンドウが開きます。クレーム発行ポリシーの編集タブで、 ルールの追加... ボタンをクリックします。

-
クレームルールテンプレートリストからLDAP属性をクレームとして送信オプションを選択し、次へボタンをクリックします。

-
クレームルール名フィールドに任意の名前を入力します。属性ストアリストからActive Directoryオプションを選択し、以下の表に従ってLDAP属性を送信クレームタイプにマッピングフォームを記入します。準備ができたら、完了をクリックします。
LDAP属性(追加するには選択または入力) 送信クレームタイプ(追加するには選択または入力) Given-Name givenName Surname sn E-Mail-Addresses mail 
-
クレームルールの編集ウィンドウで、再度 ルールの追加... ボタンをクリックし、クレームの変換オプションをクレームルールテンプレートリストから選択し、次へボタンをクリックします。

-
クレームルール名フィールドに任意の名前を入力し、リストから次のオプションを選択します。
- 受信クレームタイプ: mail,
- 送信クレームタイプ: Name ID,
- 送信名IDフォーマット: Email

準備ができたら、完了ボタンをクリックします。
-
AD FSからのログアウトがうまくいかない場合、カスタムクレームルールを追加することをお勧めします。
{portal-domain}をSPドメインに置き換え、{ad-fs-domain}をIdPドメインに変更します:c:[Type == "mail"]=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/namequalifier"] = "http://{ad-fs-domain}/adfs/services/trust", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/spnamequalifier"] = "https://{portal-domain}/sso/metadata");
-
OKボタンをクリックします。
-
作成した信頼パーティのプロパティを開き、詳細設定タブに切り替えます。
セキュアハッシュアルゴリズムリストからSHA-1オプションを選択します。
