TeamViewerシングルサインオン(SSO)は、TeamViewerをIDプロバイダーやユーザーディレクトリと結び付けることで、大企業のユーザー管理の負担を軽減することを目的としています。

この記事は、TeamViewerのEnterprise/Tensorライセンスのお客様に適用されます。

必要条件

TeamViewer シングルサインオンを使用するには、以下が必要です。

  • TeamViewer バージョン 13.2.1080 またはそれ以降
  • SAML 2.0対応のIDプロバイダ(IdP)*
  • Management Console にアクセスし、ドメインを追加するためのTeamViewer アカウント
  • ドメインの所有権を確認するための、ドメインのDNS管理へのアクセス権
  • TeamViewer Tensor ライセンス

TeamViewer 構成

シングルサインオン(SSO)は、該当するドメインのメールアドレスを使用するすべてのTeamViewerアカウントに対して、ドメイン単位で有効化されます。有効化されると、関連するTeamViewerアカウントにサインインするすべてのユーザーは、ドメイン用に設定されたIDプロバイダに誘導されます。

セキュリティおよび悪用防止のため、この機能を有効にする前にドメインの所有権を確認する必要があります。

新しいドメインを追加する

SSOを有効にするには、Management Console にログインし、 会社管理を選択し、シングルサインオンメニューを選択します。ドメインの追加をクリックし、SSOを有効にするドメインを入力します。

また、ID プロバイダのメタデータを提供する必要があります。これには3つのオプションがあります:

  • URL経由: IdP メタデータの URL を指定のフィールドに入力します。
  • XML経由:メタデータXMLを選択してアップロードします。
  • 手動設定:必要な情報をすべて手動で入力します。公開鍵はBase64エンコードされた文字列でなければならないことに注意してください。

完了したら、続行をクリックします。

ここで、SSOから除外したいメールアドレスまたはユーザーグループを選択し、ドメインの追加をクリックします。

カスタム識別子の作成

ドメインの追加後、カスタム識別子を生成することができます。このカスタム識別子は TeamViewer には保存されませんが、SSO の初期設定に使用されます。シングルサインオンが解除され、新しい設定が必要になるため、いかなる時点でもこれを変更してはなりません。任意のランダムな文字列を顧客識別子として使用できます。この文字列は後でIDPの構成に必要になります。カスタム識別子を生成するには、「作成(Generate)」をクリックします。

ドメインの所有権を確認する

ドメインが正常に追加されたら、ドメインの所有権を確認する必要があります。

ドメイン認証が完了するまでは、シングルサインオンは有効になりません。

ドメインを検証するには、検証ページに表示されている値でドメインの新しいTXTレコードを作成してください。

📌 注意: DNSシステムのため、検証プロセスには数時間かかることがあります。

📌 注意: ドメイン管理システムによっては、入力フィールドの説明が異なる場合があります。

新しいTXTレコードを作成したら、検証開始ボタンをクリックして検証プロセスを開始します。

📌 注意: DNSシステムの関係上、認証に数時間かかることがありますのでご注意ください。

💡ヒント: TeamViewer は、検証を開始してから 24 時間、TXT 検証レコードを検索します。24時間以内にTXTレコードが見つからなかった場合、検証は失敗し、ステータスがそれに応じて更新されます。この場合、このダイアログから検証を再開する必要があります。

Active Directory フェデレーションサービス(ADFS)の ID プロバイダの設定

以下の手順では、Active Directory フェデレーションサービス(ADFS)の設定手順について説明します。なお、手順とコマンドは、Windows Server 2016 Standard(バージョン 1607)を実行している環境から作成しています。

設定は基本的に以下の2ステップで構成されます:

1)TeamViewer シングルサインオンサービスのADFS依拠当事者信頼を追加します。この手順では、TeamViewer SSO サービスのメタデータを入力する必要があります。これは、以下のいずれかの方法で実行できます:

  • 自動:メタデータ XML ファイルの URL を入力する必要があります。このファイルはADFSによってダウンロードされ、依拠当事者信頼のすべての必須フィールドが自動的に入力さ れます。ADFSサーバーがインターネットにアクセスできる必要があります。
  • 半自動:自動方式と類似していますが、メタデータへのURLを提供する代わりに、ファイル自体を事前にダウンロードし、XMLファイルとしてADFSに送信します。これは、ADFSサーバーがインターネットにアクセスできない場合に役に立ちます。
  • 手動:上記のいずれの方法も適用できない場合は、メタデータを手動でADFSに入力することができます。

2) 新しい依拠当事者信頼のクレーム発行ポリシーに変換ルールを追加します。

以下のセクションでは、PowerShellコマンドプロンプトとADFS管理グラフィカルユーザーインターフェースを使用した、3つのシナリオに対する構成について説明します。

PowerShellを使用した自動構成

新しいPowerShellコマンドウィンドウを開き、以下のコマンドを入力して、デフォルトのクレーム発行ポリシーを持つ新しい依拠当事者信頼をADFSに追加します:

$customerId = 'Your Generated Customer Identifier'
$claimRules = @'
 @RuleTemplate = "LdapClaims"
 @RuleName = "TeamViewer Login"
 c:[Type ==
 "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
 Issuer == "AD AUTHORITY"]
 => issue(store = "Active Directory", types =
 ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query =
 ";objectGUID,mail;{0}", param = c.Value);
 @RuleName = "TeamViewer Customer ID"
 => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier",
 Value = "
'@ + $customerId + '");'
Add-AdfsRelyingPartyTrust `
 -Name TeamViewer `
 -MetadataUrl https://sso.teamviewer.com/saml/metadata.xml `
 -IssuanceTransformRules $claimRules `
 -AccessControlPolicyName "Permit everyone" `
 -AutoUpdateEnabled $true `
 -MonitoringEnabled $true `
 -Enabled $true

必要に応じて、「-Name」パラメータ値(13行目)を調整します。これは、ADFSグラフィカルユーザーインターフェイスに表示される名前です。また、アクセス制御ポリシーの名前(16行目)はシステムによって異なる場合があります。

すべての設定は、後でPowerShellまたはADFSグラフィカルユーザーインターフェイスで変更することができます。

PowerShellを使った半自動設定

これは、上記の「自動」方法とよく似ています。事前にメタデータXMLファイルをダウンロードし、ADFSサーバーにコピーする必要があります。

メタデータファイルは以下のURLからダウンロードできます:

https://sso.teamviewer.com/saml/metadata.xml

以下のコマンドは、メタデータXMLファイルがPowerShellコマンドプロンプトの現在のディレクトリに "metadata.xml "として存在することを前提としています。

$customerId = 'Your Generated Customer Identifier'
$claimRules = @'
 @RuleTemplate = "LdapClaims"
 @RuleName = "TeamViewer Login"
 c:[Type ==
 "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
 Issuer == "AD AUTHORITY"]
 => issue(store = "Active Directory", types =
 ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query =
 ";objectGUID,mail;{0}", param = c.Value);
 @RuleName = "TeamViewer Customer ID"
 => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier",
 Value = "
'@ + $customerId + '");'
Add-AdfsRelyingPartyTrust `
 -Name TeamViewer `
 -MetadataFile metadata.xml `
 -IssuanceTransformRules $claimRules `
 -AccessControlPolicyName "Permit everyone" `
 -Enabled $true

自動 " 手段と主に異なる点は、"-MetadataUrl" の代わりに "-MetadataFile" パラメータを使用する点です(-MetadataUrl - 14 行目)。 "AutoUpdateEnabled "と"-MonitoringEnabled "パラメーターは、どちらも有効なメタデータURLを指定する必要があるため、省略されています。

Powershellを使用した手動設定

手動構成では、TeamViewer SAML サービスプロバイダの署名/暗号化証明書の公開鍵をダウン ロードして抽出する必要があります。

PowerShellコマンドプロンプトで以下のコマンドを実行し、依拠当事者信頼を手動で追加します:

$customerId = 'Your Generated Customer Identifier'
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(".\sso.teamviewer.com - saml.cer", "")
$claimRules = @'
 @RuleTemplate = "LdapClaims"
 @RuleName = "TeamViewer Login"
 c:[Type ==
 "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
 Issuer == "AD AUTHORITY"]
 => issue(store = "Active Directory", types =
 ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query =
 ";objectGUID,mail;{0}", param = c.Value);
 @RuleName = "TeamViewer Customer ID"
 => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier",
 Value = "
'@ + $customerId + '");'
$samlEndpoints = @(
 (New-AdfsSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri https://sso.teamviewer.com/saml/acs -Index 0),
 (New-AdfsSamlEndpoint -Binding Redirect -Protocol SAMLAssertionConsumer -Uri https://sso.teamviewer.com/saml/acs -Index 1)
)
Add-AdfsRelyingPartyTrust `
 -Name "TeamViewer" `
 -Identifier "https://sso.teamviewer.com/saml/metadata" `
 -RequestSigningCertificate $cert `
 -EncryptionCertificate $cert `
 -SamlEndpoint $samlEndpoints `
 -IssuanceTransformRules $claimRules `
 -AccessControlPolicyName "Permit everyone" `
 -Enabled $true

"Add-AdfsRelyingPartyTrust" PowerShellコマンドレットの公式ドキュメントもご覧ください: https://technet.microsoft.com/en-us/library/ee892322.aspx

ADFS管理ツール(グラフィカル)を使用した半自動設定

1)サーバーマネージャーから ADFS管理ツールを起動します。

2)ADFS-->依拠当事者信頼に移動し、右側のナビゲーションペインで依拠当事者信頼の追加... をクリックします。

3)クレーム認識を選択し、開始ボタンをクリックしてウィザードを開始します。

4) バリアント応じて、以下を選択します。

  • URL経由でメタデータを取り込みます
  • メタデータのURLを入力: https://sso.teamviewer.com/saml/metadata.xml ファイル経由でメタデータをインポートします。ダウンロードしたメタデータのXMLファイルを参照します。ファイルは上記URLからダウンロードできます。

5)TTeamViewerまたはsso.teamviewer. comといった依拠当事者信頼の名前を選択するか、または事前に入力されている名前を選択します。

6) 依拠当事者信頼のためのアクセス制御ポリシーを選択します。例: すべてのユーザーを許可(permit everyone)

7) 概要画面で次へをクリックし、依拠当事者信頼を追加します。

次に、クレーム発行ポリシーを新しい依拠当事者信頼に設定する必要があります。

  1. 依拠当事者信頼を選択し、右側のナビゲーションペインでクレーム発行ポリシーの編集...をクリックします。
  2. ルールを追加をクリックし、LDAP 属性をクレームとして送信を選択します。
  3. 変換ルールの名前(TeamViewer Loginなど)を入力します。
  4. 属性保存先としてActive Directoryを選択します。
  5. 以下の 2 つのマップ設定を追加します:
LDAP Attribute Outgoing Claim Type Remarks

objectGUID

user.email

Enter the value of the LDAP Attribute field manually.

You may need to click on the dropdown arrow first, before starting to type.

customeridentifier

"Your Generated Customer ID"

-

6)完了をクリックします。

7)ルールの追加をもう一度追加し、カスタムルールを使用してクレームを送信を選択 して、2 番目のクレームルールを追加します。

8) カスタムクレームルールの名前を入力します。例:TeamViewer Customer ID

9) 以下のカスタムルールを入力し、を生成した顧客識別子に設定します:

=> issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier", Value = "Your Generated Customer Identifier");

値フィールドには、あなた自身が生成した顧客識別子を必ず追加してください。

10)完了をクリックします。

ADFS管理ツール(グラフィカル)を使用した手動設定

手動構成では、TeamViewer SAML サービスプロバイダの署名/暗号化証明書の公開鍵をダウン ロードして抽出する必要があります。

証明書の取得方法については、以下の技術情報セクションを参照してください。

1)サーバーマネージャーから ADFS管理ツールを起動します。

2)ADFS - 依拠当事者信頼に移動し、右側のナビゲーションペインで依拠当事者信頼の追加...をクリックします。

3)クレーム認識を選択し、開始ボタンをクリックしてウィザードを開始します。

4)データを手動で入力することを選択します(3番目の箇条書き)。

5)TeamViewerまたはsso.teamviewer.comのような依拠当事者信頼の名前を選択するか、事前に入力された名前を選択します。

6)証明書ファイルを参照します(上記のコメントを参照)。

7) SAML 2.0 WebSSO プロトコルのサポートを有効にする(Enable support for SAML 2.0 WebSSO protocol)のチェックボックスをオンにし、次のサービス URL を入力します:https://sso.teamviewer.com/saml/acs

8) 識別子の設定ページで、https://sso.teamviewer.com/saml/metadataを識別子として追加します。

9) 依拠当事者信頼の追加を確認します。

10) 上記の自動 手順で説明したように、クレーム発行ポリシーを設定しま す。

11) 次に、依拠当事者信頼の署名証明書を設定します。したがって、プロパティを開き(ダブルクリック)、署名タブに移動します。上記と同じ証明書ファイルを参照します。

12)オプションで、2 番目の SAML エンドポイントを依拠当事者信頼に追加します。エンドポイントタブに移動し、SAML エンドポイントの追加をクリックします。

  • エンドポイントタイプとして SAML アサーションコンシューマを選択します。
  • バインディングとしてリダイレクトを選択します。
  • インデックスを1に設定します。
  • 信頼できるURLをhttps://sso.teamviewer.com/saml/acs に設定します。

TeamViewer クライアント設定

TeamViewer は、バージョン13.2.1080からシングルサインオンと互換性があります。

以前のバージョンはシングルサインオンをサポートしていないため、ログイン中にユーザーを ID プロバイダに誘導することはできません。クライアント設定はオプションですが、IdP の SSO ログインに使用するブラウザを変更することができます。

TeamViewer クライアントは、デフォルトで ID プロバイダ認証に組み込みブラウザを使用します。オペレーティングシステムのデフォルトブラウザを使用する場合は、この動作を変更できます:

Windows:

HKEY_CURRENT_USER\Software\TeamViewer\SsoUseEmbeddedBrowser = 0 (DWORD)

macOS:

defaults write com.teamviewer.teamviewer.preferences SsoUseEmbeddedBrowser -int 0

📌注意: レジストリを作成または変更した後、TeamViewer クライアントを再起動する必要があります。