TeamViewerシングルサインオン(SSO)は、TeamViewerをアイデンティティプロバイダおよびユーザーディレクトリに接続することによって、大企業のユーザー管理作業効率を向上することを目的としています。
この記事は、TeamViewer Tensor (Classic)を利用するEnterprise/Tensorライセンスをお持ちのお客様に適用されます。
TeamViewerシングルサインオンを使用するには、次のものが必要です。
シングルサインオン(SSO)は、このドメインのメールアドレスを使用して、すべてのTeamViewerアカウントに対してドメインレベルで有効になります。有効化されると、対応するTeamViewerアカウントにサインインするすべてのユーザーは、そのドメイン用に構成されているIDプロバイダーにリダイレクトされます。
セキュリティ上の理由から、また悪用を防ぐために、機能を有効にする前にドメインの所有権を確認する必要があります。
SSOを有効にするには、Management Consoleにログインして[シングルサインオン]メニューエントリを選択します。 [ドメインの追加] をクリックして、SSOを有効にするドメインを入力します。
また、アイデンティティプロバイダのメタデータも提供する必要があります。これを行うには、3つの方法があります。
ドメインを追加した後、カスタム識別子を生成できます。このカスタム識別子(custom identifier)はTeamViewerによって保存されませんが、SSOの初期設定に使用されます。シングルサインオンが無効になり、新しい設定が必要になるため、どの時点でも変更しないでください。任意のランダムな文字列を顧客IDとして使用できます。この文字列は、IdPの設定に後で必要になります。
ドメインが正常に追加されたら、ドメインの所有権を確認する必要があります。ドメインの検証が完了するまで、シングルサインオンは有効になりません。
ドメインを確認するには、確認ページに表示されている値を使用して、ドメイン用の新しいTXTレコードを作成してください。
📌注意: 検証プロセスはDNSシステムが原因で数時間かかる場合があります。
TXTレコードを追加するダイアログは、次のようになります。
📌注意: ドメイン管理システムによっては、入力フィールドの説明が異なる場合があります。
新しい TXT レコードを作成したら、[検証の開始] ボタンをクリックして検証プロセスを開始します。
📌注意: 検証プロセスは、DNSシステムが原因で数時間かかる場合があります。
💡ヒント: TeamViewerは、検証開始後24時間でTXT検証レコードを探します。 24時間以内にTXTレコードが見つからない場合、検証は失敗し、それに応じてステータスが更新されます。この場合、このダイアログで確認を再開する必要があります。
💡ヒント2: シングルサインオン用のドメインを追加するときは、所有アカウントを除外リストに追加することをお勧めします。その理由は、IdPが機能していなくてもドメイン設定へのアクセスを維持するというフォールバックシナリオです。
例:TeamViewerアカウント「[email protected]」は、シングルサインオン用のドメイン「example.com」を追加します。ドメインを追加したら、メールアドレス「[email protected]」を除外リストに追加する必要があります。 これは、構成の誤りによりシングル サインオンが機能しない場合でも、SSO 構成を変更するために必要です。
💡ヒント 3: シングル サインオン用のドメインを追加する場合、SSO の所有権は社内に継承されないため、SSO ドメインに所有者を追加することをお勧めします。
例: TeamViewer アカウント "[email protected]" がシングル サインオン用のドメイン "example.com" を追加した後、複数の会社の管理者 (例: "[email protected]") をドメイン所有者として追加し、ドメインとその SSO 設定も管理できるようにします。
次の手順では、Active Directoryフェデレーションサービス(ADFS)の設定手順について説明します。指示とコマンドは、Windows Server 2016 Standard(バージョン1607)を実行しているマシンから取得されています。
構成は基本的に次の2つのステップで構成されています。
1) TeamViewerシングルサインオンサービス用のADFS証明書利用者信頼を追加します。このステップでは、TeamViewer SSOサービスのメタデータを入力する必要があります。これは、次のいずれかの方法で実行できます。
2) 新しい証明書利用者信頼のクレーム発行ポリシーに変換規則を追加します。
以下のセクションでは、PowerShellコマンドプロンプトとADFS管理グラフィカルユーザーインターフェイスを使用した3つのシナリオすべての構成について説明します。
新しい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のグラフィカルユーザーインターフェイスを介して変更できます。
これは、上記の「自動」方式と非常によく似ています。事前にメタデータ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"パラメーターを使用することです(14行目)。有効なメタデータURLを指定する必要があるため、 " - AutoUpdateEnabled"および " - MonitorEnabled"パラメータは省略されています。
手動設定では、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
1) サーバーマネージャー(Server Manager)からADFS管理ツールを起動します。
2) [ADFS]➜ [証明書利用者信頼(Relying Party Trusts)]に移動し、右側のナビゲーションウィンドウで[証明書利用者信頼の追加(Add Relying Party Trust)]をクリックします。
3)[クレーム対応] を選択し、[スタート]ボタンをクリックしてウィザードを起動します。
4) 自動バリアントと半自動バリアントのどちらを使用するかに応じて、
5) 証明書利用者信頼の名前 (TeamViewer や sso.teamviewer.com など) を選択するか、必要に応じて事前入力された名前を選択します。
6) 証明書利用者信頼のアクセス制御ポリシーを選択します。例) 全員許可を選択します。
7) 概要画面で[次へ]をクリックして、証明書利用者信頼を追加します。
次に、クレーム発行ポリシーを新しい信頼当事者に対して構成する必要があります。
1.証明書利用者の信頼を選択し、右側のナビゲーションウィンドウで[請求発行ポリシーの編集...(Edit Claim Issuance Policy...)]をクリックします。
2.[ルールの追加]をクリックして[クレームとしてLDAP属性を送信]を選択します。
3.変換規則の名前を入力してください。 例) TeamViewerログイン
4.属性ストアとしてActive Directoryを選択します。
5.次の2つのマッピングを追加してください。
6.完了(Finish)をクリックします。
7. もう一度[規則の追加(Add Rule)]を追加して2番目の要求規則を追加し、[カスタム規則を使用して要求を送信(Send Claims Using a Custom Rule)]を選択します。
8. カスタムクレームルールの名前を入力します。 例) TeamViewerのお客様ID
9. 次のカスタムルールを入力し、[値]を生成した顧客IDに設定します。必ず生成された顧客識別子を値フィールドに追加してください。
=> issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier", Value = "Your Generated Customer Identifier");
10. 完了(Finish)をクリックします。
手動設定では、TeamViewer SAMLサービスプロバイダの署名/暗号化証明書の公開鍵をダウンロードして抽出する必要があります。
証明書の入手方法については、下記の「技術情報」セクションを参照してください。
1. サーバーマネージャーからADFS管理ツールを起動します。
2. [ADFS - 証明書利用者信頼(Relying Party Trusts)]に移動し、右側のナビゲーションウィンドウで[証明書利用者信頼の追加(Add Relying Party Trust...)]をクリックします。
3. [クレーム対応]を選択し、[スタート]ボタンをクリックしてウィザードを起動します。
4. データを手動で入力する場合に選択します。(3番目の箇条書き)
5. TeamViewer や sso.teamviewer.com などの証明書利用者信頼の名前を選択するか、必要に応じて事前入力された名前を選択します。
6. 証明書ファイルを参照します。(上記のコメントを参照)
7. [SAML 2.0 WebSSOプロトコルのサポートを有効にする(Enable support for the SAML 2.0 WebSSO protocol)] チェックボックスをオンにして、次のサービスURLを入力します。https://sso.teamviewer.com/saml/acs
8. [識別子の構成(Configure Identifiers)]ページで、https://sso.teamviewer.com/saml/metadataを識別子として追加します。
9. 証明書利用者信頼を追加することを確認します。
10. 上記の自動手順の説明に従って、クレーム発行ポリシーを構成します。
11. 次に、証明書利用者信頼の署名証明書を設定します。そのため、プロパティをダブルクリックして開き、[署名(Signature)]タブに移動します。上記と同じ証明書ファイルを参照します。
12. オプションで、証明書利用者信頼に2番目のSAMLエンドポイントを追加します。 [エンドポイント(Endpoints)]タブに移動して[SAMLエンドポイントの追加(Add SAML endpoint)]をクリックします。
TeamViewerは、バージョン13.2.1080からシングルサインオンと互換性があります。
以前のバージョンはシングルサインオンをサポートしていないため、ログイン中にユーザーをIDプロバイダーにリダイレクトすることはできません。
クライアント構成はオプションですが、IdPのSSOログインに使用するブラウザを変更することができます。
TeamViewerクライアントは、デフォルトでアイデンティティプロバイダの認証に埋め込みブラウザを使用します。オペレーティングシステムのデフォルトブラウザを使用したい場合は、次のレジストリキーを使用してこの動作を変更することができます:
Windows:
HKEY_CURRENT_USER\Software\TeamViewer\SsoUseEmbeddedBrowser = 0 (DWORD)
macOS:
defaults write com.teamviewer.teamviewer.preferences SsoUseEmbeddedBrowser -int 0
📌注意: レジストリを作成または変更した後は、TeamViewerクライアントを再起動する必要があります。