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

 

TeamViewer Single Sign-On(SSO)は、TeamViewerとIDプロバイダおよびユーザーディレクトリを接続することで、企業のユーザー管理を簡潔にすることを目的としています。

 

必要事項

  • TeamViewerバージョン13.2.1080以上でEnterpriseライセンスを保有していること
  • SAML 2.0互換のIDプロバイダ(IdP)
  • マネージメントコンソールにアクセスしてドメインを追加するTeamViewerアカウントがあること
  • ドメインのDNS管理にアクセスでき、ドメインの所有権があること

注意: ADFS 3.0、Azure、Okta、OneLogin、およびCentrifyはテストされており、これらのIdPの1つを設定するための手順はこちらの記事に記載されています。

注意: 別のIdPを使用する場合は、技術情報を使用してIdPを手動で設定してください。

ヒント: Single Sign-Onのドメインを追加するときは、除外リストに所有アカウントを追加することをお勧めします。IdPが機能しない場合、ドメイン設定へのアクセスを維持するフォールバックシナリオを可能にする為です。

例:TeamViewerアカウント "admin@example.com"は、Single Sign-On用のドメイン "example.com"を追加します。ドメインを追加した後、除外リストに電子メールアドレス "admin@example.com"を追加する必要があります。

 

TeamViewerクライアントの設定

TeamViewerは、バージョン13.2.1080以降のSingle Sign-Onと互換性があります。

以前のバージョンではSingle Sign-Onはサポートされていないため、ログイン中にユーザーをアイデンティティプロバイダにリダイレクトすることはできません。

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

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

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

 

IDプロバイダの設定

Active Directoryフェデレーションサービス(ADFS)

次の手順では、Active Directoryフェデレーションサービス(ADFS)のセットアップ手順について説明します。指示とコマンドはWindows Server 2016 Standard(バージョン1607)を実行しているマシンから取得されています。

構成は、基本的に2つのステップで構成されています。

  1. TeamViewer Single Sign-Onサービス用の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"パラメータ値を必要に応じて変更します。これは、ADFSグラフィカルユーザーインターフェイスに表示される名前です。また、アクセス制御ポリシーの名前はシステムによって異なる場合があります。

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"パラメータを使用することです。有効なメタデータURLを指定する必要があるため、-AutoUpdateEnabledパラメータと-MonitoringEnabledパラメータは省略されています。

 

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(最初の箇条書きポイント)を介してメタデータのインポートを選択します。
  1. TeamViewerまたはteamviewer.comのような証明書利用者信頼の名前を選択するか、該当する場合は事前に入力した名前を選択します
  2. 証明書利用者信頼に対するアクセス制御ポリシーを選択します。例)全員許可
  3. 要約画面で[次へ]をクリックして、信頼当事者の信頼を追加します

 

次に、クレーム発行ポリシーを新しい信頼当事者の信頼に対して構成する必要があります。

 

  1. 信頼する当事者の信頼を選択し、右側のナビゲーションペインで[クレーム発行ポリシーの編集...]をクリックします。
  2. [ルールの追加]をクリックし、[LDAP属性をクレームとして送信する]を選択します。
  3. 変換規則の名前を入力します。 例) TeamViewerログインする。
  4. Active Directoryを属性ストアとして選択します。
  5. 次の2つのマッピングを追加し、後でFinishをクリックしてプロセスを終了します。

 

LDAP Attribute Outgoing Claim Type Remarks
objectGUID Name ID

LDAP Attributeフィールドの値を手動で入力します。

入力を開始する前に、まずドロップダウンの矢印をクリックする必要があります。

E-Mail-Addresses

E-Mail Address

 




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

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

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

 

  1. サーバーマネージャーからADFS管理ツールを起動する
  2. ADFS - 頼りになる党の信頼に移動し、右側のナビゲーションペインにある信頼関係の信頼関係を追加...をクリックします
  3. クレーム認識を選択し、[スタート]ボタンをクリックしてウィザードを開始します
  4. 手動でデータを入力する場合に選択します(3番目の箇条書き)
  5. TeamViewerまたはteamviewer.comのような依拠当事者の信頼の名前を選択するか、該当する場合は事前に入力した名前を選択します
  6. 証明書ファイルを参照してください(上記のコメントを参照)
  7. SAML 2.0 WebSSOプロトコルのサポートを有効にするボックスをオンにして、次のサービス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に設定します。

 

Azure Active Directory

Microsoft Azure Active DirectoryとTeamViewerをアイデンティティプロバイダとして接続するには、Azure AD用のアプリケーションを作成する必要があります。以下では、エンタープライズアプリケーションを作成および構成する手順について説明します。

 

アプリケーションの作成

Microsoft Azure ADのマニュアルに従って、TeamViewer用のAzure ADアプリケーションを作成してください:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-saas-custom-apps SAMLベースのサインオンのアプリケーション。

SAMLを設定するには、下記の値を使用します。 

フィールド
Issuer URL / Identifier https://sso.teamviewer.com/saml/metadata
Reply URL https://sso.teamviewer.com/saml/acs

 

Sign on URLとRelay Stateのフィールドは空のままにしてください。

SAMLトークンで発行されたクレームが正しく設定されていることを確認し、ユーザーとグループを新しいアプリケーションに割り当てることを忘れないでください。

 TeamViewerには、SAML要求のnameidentifierとemailaddressが必要です。

 ユーザー識別子(= nameidentifier)はユーザーの一意の識別子でなければなりません。通常、デフォルト設定は正常です。クレームemail addressは、ユーザーのメールアドレスを返さなければなりません。

 Azure ADユーザーのメールアドレスは、対応するTeamViewerアカウントのメールアドレスと一致する必要があります。

 最後のステップは、Azure ADで動作するようにTeamViewerを設定することです。

 

注意: 最も簡単な方法は、AzureからメタデータXMLをダウンロードし、TeamViewerマネージメントコンソールにファイルをアップロードすることです。 MCOのドメイン管理のセクションを参照してください。

 

Okta(オクタ)

このセクションでは、OktaをTeamViewer SSOサービスのIdPとして使用するように設定する方法について説明します。

ヒント: 設定に応じて、Oktaのアプリケーションにユーザーを割り当てる必要があります。

Oktaはこちらからもご確認頂けます。 Okta documentation here

 .

TeamViewer Oktaアプリを使用した自動設定

  1. Okta管理者ダッシュボードにログインする
  2. TeamViewerアプリケーションを追加する
  3. SAML 2.0を選択
    • メタデータのURLをコピーして保存する
  4. ユーザーをアプリケーションに割り当てる
  5. MCOのドメイン管理でメタデータを使用してSAMLを有効にする

 

 

Okta Webユーザーインターフェイスを使用した手動構成

管理インタフェースに移動し、新しいSAMLアプリケーションを追加します。 [SAML設定]ページで次の値を指定します。

 

設定
Single sign on URL

https://sso.teamviewer.com/saml/acs

受信者URLとリンク先URLにこれを使用する

このアプリが他のSSO URLをリクエストできるようにする

Audience URI (SP Entity ID) https://sso.teamviewer.com/saml/metadata
Default RelayState  
Name ID Format

EmailAddress

Application username Email

 

 

詳細な設定  
Response Signed
Assertion Signature Signed
Signature Algorithm

RSA-SHA256

Digest Algorithm

SHA256

Assertion Encryption

Encrypted

Encryption Algorithm

AES256-CBC

Key Transport Algorithm

RSA-OAEP

Encryption Certificate

TeamViewer SAMLサービスプロバイダのPublic Keyをアップロードします。 証明書を取得する方法については、技術情報を参照してください。

Enable Single Logout

No

 

次のステートメントを追加します。

Name Name Format Value
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress Unspecified

user.email

http://sso.teamviewer.com/saml/claims/customeridentifier  Unspecified

This attribute has to be specified by each customer when initially setting up TeamViewer SSO.

Please note: The value that has been set initially must not change otherwise SSO will break. TeamViewer is not storing this value.

 

 

emailアドレス属性ステートメントの値には、より複雑なマッピングルールが含まれる場合があることにご注意ください。

したがって、Oktaは表現言語を提供しています(公式ドキュメント:https://developer.okta.com/reference/okta_expression_language/indexを参照してください)。

 

より複雑なマッピングの例:

A社は、@ a1.testと@ a2.testの2つのメールアドレスドメインを予約しています。 Oktaユーザーは自分のアカウントに関連付けられた@ a1.testドメインを持っています。

TeamViewer SSOは、@ a2.testのメールアドレスに対してのみ有効にする必要があります。

emailaddressステートメントの値は、次のようになります。

String.append(String.substringBefore(user.email, "@"), "@a2.test")

 

これにより、SAML応答に正しいメールアドレスが含まれます。

 

OneLogin

このセクションでは、あらかじめ設定されたTeamViewerアプリケーションを使用してOneLoginをTeamViewer SSOサービスのIdPとして使用するように設定する方法について説明します。

ヒント: 設定に応じて、OneLoginでアプリケーションにユーザーを割り当てる必要があります。

 

TeamViewer OneLoginアプリを使用した自動設定

  1. OneLogin管理者ダッシュボードにログインする
  2. TeamViewerアプリケーションを追加する
  3. アプリ設定の[パラメータ]タブに移動します
  4. 顧客IDフィールドの値を入力します。
  5. 変更を保存する
  6. ユーザーをアプリケーションに割り当てる
  7. MCOのドメイン管理でメタデータを使用してSAMLを有効にする

 

マネージメントコンソール(MCO)の構成

Single Sign-On(SSO)は、このドメインのメールアドレスを使用して、すべてのTeamViewerアカウントのドメインレベルで有効化されます。アクティブ化されると、対応するTeamViewerアカウントにサインインするすべてのユーザーが、そのドメイン用に構成されたIDプロバイダーにリダイレクトされます。

セキュリティ上の理由や不正使用を防ぐため、機能を有効にする前にドメインの所有権を確認する必要があります。

 

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

SSOをアクティブにするには、Management Consoleにログインし、Single Sign-Onメニュー項目を選択します。 [ドメインの追加]をクリックし、SSOを有効にするドメインを入力します。

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

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

 

tensor.PNG

 

 

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

ドメインの所有権を確認する ドメインが正常に追加されたら、ドメインの所有権を確認する必要があります。 シングルサインオンは、ドメイン検証が完了する前にアクティブ化されません。 ドメインを確認するには、ドメインの新しいTXTレコードを確認ページに示された値で作成してください。

 

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

 

SSO 1.png

 

 

TXTレコードを追加するダイアログは、次のようになります。

 AddDNSrecord.png 

 

 

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

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

 

注意: 確認処理には、DNSシステムのために数時間かかる場合があります。

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

 

技術的な案内

このセクションでは、TeamViewer SAMLサービスプロバイダ(SP)の技術的な詳細を示します。このデータは、上記のIDP以外のIDPの追加に関係する場合があります。

 

SAMLサービスプロバイダのメタデータ:

 

設定  
SP Metdata URL https://sso.teamviewer.com/saml/metadata.xml
Entity ID https://sso.teamviewer.com/saml/metadata
Audience https://sso.teamviewer.com/saml/metadata
Assertion Consumer Service URL

https://sso.teamviewer.com/saml/acs

Assertion Consumer Service Bindings
HTTP-POST
HTTP-Redirect
SAML Request Signature Algorithm

http://www.w3.org/2001/04/xmldsig-more#rsa-sha256

TeamViewerは署名アルゴリズムとしてSHA-256をサポートしています。 SAMLアサーションに署名する必要がありますが、SAML応答に署名する必要はありませんが推奨されます。

NameID

Unspecified

 

必要なSAML Respose Calim:

Name Remarks
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

This should be mapped to a unique user identifier within the scope of the IdP (and therefore within the scope of the corresponding company).

For example, this can be the Active Directory Object GUID for ADFS or the email address for Okta

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress This attribute should be mapped to the email address of the user that wants to sign-in. The email address needs to be the same as configured for the TeamViewer account. The mapping/comparison is done in a case-in-sensitive way.
http://sso.teamviewer.com/saml/claims/customeridentifier

This attribute has to be specified by each customer when initially setting up TeamViewer SSO.

Please note: The value that has been set initially must not change otherwise SSO will break. TeamViewer is not storing this value

 

署名と暗号化証明書(Public Key)

 SAML要求の署名とSAML応答の暗号化に使用される証明書のPublic Keyは、次のPowerShellコマンドを実行することで取得できます。

"-----BEGIN PUBLIC KEY-----`n" + `
((Select-Xml `
-Content ((Invoke-WebRequest `
https://sso.teamviewer.com/saml/metadata.xml).Content) `
-xpath "//*[local-name()='X509Certificate']").Node[0].'#text') + `
"`n-----END PUBLIC KEY-----" `
| Out-File -FilePath "sso.teamviewer.com - saml.cer" -Encoding ascii

 

このコマンドはメタデータをダウンロードし、Public Keyを抽出してファイルに書き込みます。

ビデオ(英語)

 

バージョン履歴
改訂番号
9/9
最終更新:
‎11 Sep 2018, 1:50 PM
更新者:
 
寄稿者: