Active Directoryフェデレーションサービス(ADFS)を使用したシングルサインオン(SSO)

評価なし

この記事は、エンタープライズ / テンサープランをご購入されたお客様に適用されます。

 

 

TeamViewerシングルサインオン(SSO)は、TeamViewerをアイデンティティプロバイダおよびユーザーディレクトリに接続することによって、大企業のユーザー管理作業効率を向上することを目的としています。

 

必要条件

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

  • TeamViewerバージョン2.1080以降
  • SAML 2.0互換IDプロバイダー(IdP)*
  • マネージメントコンソールにアクセスしてドメインを追加するためのTeamViewerアカウント
  • ドメインの所有権を確認するためのドメインのDNS管理へのアクセス
  • TeamViewer テンサーライセンス

 

TeamViewer、マネージメントコンソール(MCO)の設定

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

セキュリティ上の理由から、また悪用を防ぐために、機能をアクティブにする前にドメインの所有権を確認する必要があります。

 

新しいドメインの追加

SSOを有効にするには、マネージメントコンソールにログインして[シングルサインオン]メニューエントリを選択します。 [ドメインの追加] をクリックして、SSOを有効にするドメインを入力します。

また、アイデンティティプロバイダのメタデータも提供する必要があります。それには3つの方法があります。

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

Add domain.png

 

 

カスタム識別子を作成する

ドメインを追加した後、カスタム識別子を生成できます。このカスタム識別子(custom identifier)はTeamViewerによって保存されませんが、SSOの初期設定に使用されます。シングルサインオンが無効になり、新しい設定が必要になるため、どの時点でも変更しないでください。任意のランダムな文字列を顧客IDとして使用できます。この文字列は、IdPの設定に後で必要になります。

CustomIdentifier1.png

CustomIdentifier2.png

 

ドメインの所有権の確認

ドメインが正常に追加されたら、ドメインの所有権を確認する必要があります。
ドメインの検証が完了するまで、シングルサインオンは有効になりません。

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

注意: 検証プロセスはDNSシステムが原因で数時間かかる場合があります。

20180910_domain_verification.png

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

AddDNSrecord.png

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

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

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

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

ヒント: シングルサインオン用のドメインを追加するときは、所有アカウントを除外リストに追加することをお勧めします。その理由は、IdPが機能していなくてもドメイン設定へのアクセスを維持するというフォールバックシナリオです。
例:TeamViewerアカウント「admin@example.com」は、シングルサインオン用のドメイン「example.com」を追加します。ドメインを追加したら、メールアドレス「admin@example.com」を除外リストに追加する必要があります。

 

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に入力できます。
  1. 新しい依拠当事者信託のクレーム発行ポリシーに変換規則を追加します。

以下のセクションでは、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

 

"automatic"メソッドとの主な違いは、 " -  MetadataUrl"の代わりに " -  MetadataFile"パラメーターを使用することです(14行目)。有効なメタデータURLを指定する必要があるため、 " -  AutoUpdateEnabled"および " -  MonitorEnabled"パラメータは省略されています。

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. サーバーマネージャー(Server Manager)からADFS管理ツールを起動します。
  2. [ADFS] - > [証明書利用者信頼(Relying Party Trusts)]に移動し、右側のナビゲーションウィンドウで[証明書利用者信頼の追加(Add Relying Party Trust)]をクリックします。

Screenshot01.PNG

  1. [クレーム対応] を選択し、[スタート]ボタンをクリックしてウィザードを起動

Screenshot02.PNG

  1. 自動バリアントと半自動バリアントのどちらを使用するかに応じて、
  • URLを介してメタデータをインポートします。

Screenshot03.PNG

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

Screenshot04.PNG

  1. TeamViewersso.teamviewer.comなど、信頼パーティの信頼の名前を選択するか、必要に応じて事前入力された名前を選択します。

Screenshot05.PNG

 

  1. 証明書利用者信頼のアクセス制御ポリシーを選択します。例) 全員許可を選択します。

Screenshot06.PNG

 

  1. サマリー画面で[次へ]をクリックして、証明書利用者信頼を追加します。

Screenshot07.PNG


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

  1. 証明書利用者の信頼を選択し、右側のナビゲーションウィンドウで[請求発行ポリシーの編集...(Edit Claim Issuance Policy...)]をクリックします。
  2. [ルールの追加]をクリックして[クレームとしてLDAP属性を送信]を選択します。
  3. 変換規則の名前を入力してください。 例) TeamViewerログイン
  4. 属性ストアとしてActive Directoryを選択します。
  5. 次の2つのマッピングを追加してください。

LDAP Attribute

Outgoing Claim Type

Remarks

objectGUID

Name ID

「LDAP属性」フィールドの値を手動で入力してください。

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

E-Mail-Addresses

E-Mail Address

 

 

Screenshot08.PNG

  1. 完了(Finish)をクリックします。
  2. もう一度[規則の追加(Add Rule)]を追加して2番目の要求規則を追加し、[カスタム規則を使用して要求を送信(Send Claims Using a Custom Rule)]を選択します。
  3. カスタムクレームルールの名前を入力します。 例) TeamViewerのお客様ID
  4. 次のカスタムルールを入力し、[値]を生成した顧客IDに設定します。
    必ず生成された顧客識別子を値フィールドに追加してください。

    => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier", Value = "Your Generated Customer Identifier");
  5. 完了(Finish)をクリックします。

 

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

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

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

  1. サーバーマネージャーからADFS管理ツールを起動します。
  2. [ADFS - 証明書利用者信頼(Relying Party Trusts)]に移動し、右側のナビゲーションウィンドウで[証明書利用者信頼の追加(Add Relying Party Trust...)]をクリックします。

Screenshot01.PNG

  1. [クレーム対応]を選択し、[スタート]ボタンをクリックしてウィザードを起動します。

Screenshot02.PNG

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

Screenshot09.PNG

 

  1. TeamViewersso.teamviewer.comなど、信頼パーティの信頼の名前を選択するか、必要に応じて事前入力された名前を選択します。

Screenshot05.PNG

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

Screenshot10.PNG

 

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

Screenshot11.PNG

  1. [識別子の構成(Configure Identifiers)]ページで、https://sso.teamviewer.com/saml/metadataを識別子として追加します。

Screenshot12.PNG

 

  1. 証明書利用者信頼を追加することを確認します。
  2. 上記の自動手順の説明に従って、クレーム発行ポリシーを構成します。
  3. 次に、信頼パーティ信頼の署名証明書を設定します。そのため、プロパティをダブルクリックして開き、[署名(Signature)]タブに移動します。上記と同じ証明書ファイルを参照します。ADFS - SSO 1.PNG

     

  1. オプションで、信頼当事者の信頼に2番目のSAMLエンドポイントを追加します。 [エンドポイント(Endpoints)]タブに移動して[SAMLエンドポイントの追加(Add SAML endpoint)]をクリックします。
  • エンドポイントタイプとして[SAMLアサーションコンシューマー(SAML Assertion Consumer)]を選択します。
  • バインドとしてリダイレクト(Redirect)を選択
  • インデックスを1に設定
  • 信頼済みURLをhttps://sso.teamviewer.com/saml/acsに設定します。ADFS - SSO 2.PNG

     

 

 

TeamViewerクライアント構成

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

以前のバージョンはシングルサインオンをサポートしていないため、ログイン中にユーザーをIDプロバイダーにリダイレクトすることはできません。

クライアント設定はオプションですが、IdPのSSOログインに使用されるブラウザを変更することを許可します。

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

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

 

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

 

バージョン履歴
改訂番号
2/2
最終更新:
‎01 5 2019, 4:21 PM
更新者:
 
寄稿者: