Skype for Business Server ハイブリッド環境のサーバー間認証を構成します。

概要:ハイブリッド環境のサーバー間認証Skype for Business Server構成します。

ハイブリッド構成では、一部のユーザーは、Skype for Business Serverのオンプレミス インストールに所属しています。 その他のユーザーは、Microsoft 365 または Office 365 バージョンのSkype for Business Serverに所属しています。 ハイブリッド環境でサーバー間認証を構成するには、まず、Skype for Business Serverのオンプレミス インストールを構成して、承認サーバーを信頼する必要があります。 このプロセスの最初の手順は、次のSkype for Business Server Management Shell スクリプトを実行することで実行できます。

$TenantID = (Get-CsTenant -Filter {DisplayName -eq "Fabrikam.com"}).TenantId

$sts = Get-CsOAuthServer microsoft.sts -ErrorAction SilentlyContinue

   if ($sts -eq $null)
      {
         New-CsOAuthServer microsoft.sts -MetadataUrl "https://accounts.accesscontrol.windows.net/$TenantId/metadata/json/1"
      }
   else
      {
         if ($sts.MetadataUrl -ne  "https://accounts.accesscontrol.windows.net/$TenantId/metadata/json/1")
            {
               Remove-CsOAuthServer microsoft.sts
               New-CsOAuthServer microsoft.sts -MetadataUrl "https://accounts.accesscontrol.windows.net/$TenantId/metadata/json/1"
            }
        }

$exch = Get-CsPartnerApplication microsoft.exchange -ErrorAction SilentlyContinue

if ($exch -eq $null)
   {
      New-CsPartnerApplication -Identity microsoft.exchange -ApplicationIdentifier 00000002-0000-0ff1-ce00-000000000000 -ApplicationTrustLevel Full -UseOAuthServer
    }
else
    {
       if ($exch.ApplicationIdentifier -ne "00000002-0000-0ff1-ce00-000000000000")
          {
             Remove-CsPartnerApplication microsoft.exchange
             New-CsPartnerApplication -Identity microsoft.exchange -ApplicationIdentifier 00000002-0000-0ff1-ce00-000000000000 -ApplicationTrustLevel Full -UseOAuthServer 
          }
       else
          {
             Set-CsPartnerApplication -Identity microsoft.exchange -ApplicationTrustLevel Full -UseOAuthServer
          }
   }

Set-CsOAuthConfiguration -ServiceName 00000004-0000-0ff1-ce00-000000000000

通常、テナントの領域名はorganization名とは異なっていることに注意してください。実際、領域名はほとんどの場合、テナント ID と同じです。 そのため、スクリプトの最初の行を使用して、指定したテナントの TenantId プロパティの値 (この場合は fabrikam.com) を返し、その名前を変数$TenantIdに割り当てます。

$TenantID = (Get-CsTenant -Filter {DisplayName -eq "Fabrikam.com"}).TenantId

このスクリプトを実行するには、オンライン PowerShell モジュールSkype for Businessインストールし、このモジュールを使用してテナントに接続する必要があります。 これらのコマンドレットをインストールしていない場合、Get-CsTenant コマンドレットを使用できないため、スクリプトは失敗します。 スクリプトが完了したら、Skype for Business Serverと承認サーバーの間に信頼関係を構成し、Exchange 2013/2016 と承認サーバー間の 2 つ目の信頼関係を構成する必要があります。 これは、Microsoft Online Services コマンドレットを使用してのみ行うことができます。

注意

Microsoft Online Services コマンドレットをインストールしていない場合は、 コマンドレットを使用して PowerShell リポジトリからインストールする install-module MSOnline必要があります。 Microsoft Online Services モジュールのインストールと使用の詳細については、Microsoft 365 Web サイトを参照してください。 これらの手順では、Microsoft 365 または Office 365 と Active Directory の間でシングル サインオン、フェデレーション、同期を構成する方法についても説明します。

Microsoft 365 または Office 365 を構成し、Skype for Business Serverと Exchange 2013 用に Microsoft 365 または Office 365 サービス プリンシパルを作成した後、これらのサービス プリンシパルに資格情報を登録する必要があります。 資格情報を登録するには、まず として保存された X.509 Base64 証明書を取得する必要があります。CER ファイル。 この証明書は、Microsoft 365 または Office 365 サービス プリンシパルに適用されます。

注意

Azure AD Powershell は、2024 年 3 月 30 日に非推奨となる予定です。 詳細については、 非推奨の更新プログラムに関するページを参照してください。

Microsoft Entra ID (旧称 Azure AD) と対話するには、Microsoft Graph PowerShell に移行することをお勧めします。 Microsoft Graph PowerShell では、すべての Microsoft Graph API へのアクセスが許可され、PowerShell 7 で利用できます。 一般的な移行クエリに対する回答については、「 移行に関する FAQ」を参照してください。

X.509 証明書を取得したら、PowerShell コンソールを開き、サービス プリンシパルの管理に使用できるコマンドレットを含む Microsoft Online Windows PowerShell モジュールをインポートします。

Import-Module MSOnline

モジュールがインポートされたら、次のコマンドを入力し、Enter キーを押します。

Connect-MsolService

Enter キーを押すと、資格情報ダイアログ ボックスが表示されます。 ダイアログ ボックスに Microsoft 365 または Office 365 ユーザー名とパスワードを入力し、[OK] をクリックします。

Microsoft 365 またはOffice 365に接続するとすぐに、次のコマンドを実行して、サービス プリンシパルに関する情報を返すことができます。

Get-MsolServicePrincipal

すべてのサービス プリンシパルについて次のような情報が返されます。

ExtensionData        : System.Runtime.Serialization.ExtensionDataObject
AccountEnabled       : True
Addresses            : {}
AppPrincipalId       : 00000004-0000-0ff1-ce00-000000000000
DisplayName          : Skype for Business Server
ObjectId             : aada5fbd-c0ae-442a-8c0b-36fec40602e2
ServicePrincipalName : SkypeForBusinessServer/litwareinc.com
TrustedForDelegation : True

次の手順は、X.509 証明書のインポート、エンコード、および割り当てです。 証明書をインポートしてエンコードするには、次のWindows PowerShell コマンドを使用して、 への完全なファイル パスを必ず指定します。Import メソッドを呼び出すときの CER ファイル:

$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
$certificate.Import("C:\Certificates\Office365.cer")
$binaryValue = $certificate.GetRawCertData()
$credentialsValue = [System.Convert]::ToBase64String($binaryValue) 

証明書がインポートおよびエンコードされたら、証明書を Microsoft 365 または Office 365 サービス プリンシパルに割り当てることができます。 そのためには、最初に Get-MsolServicePrincipal を使用して、Skype for Business Serverと Microsoft Exchange サービス プリンシパルの両方の AppPrincipalId プロパティの値を取得します。AppPrincipalId プロパティの値を使用して、証明書が割り当てられているサービス プリンシパルを識別します。 Skype for Business Serverの AppPrincipalId プロパティ値を使用して、次のコマンドを使用して、証明書を Skype For Business Online バージョンに割り当てます。

New-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000 -Type Asymmetric -Usage Verify -Value $credentialsValue 

次に、コマンドを繰り返す必要があります。今回は、Exchange 2013 の AppPrincipalId プロパティ値を使用します。

後でその証明書を削除する必要がある場合 (有効期限が切れている場合など) は、最初に証明書の KeyId を取得します。

Get-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000

そのコマンドは、次のようなデータを返します。

Type      : Asymmetric
Value     : 
KeyId     : bc2795f3-2387-4543-a95d-f92c85c7a1b0
StartDate : 6/1/2012 8:00:00 AM
EndDate   : 5/31/2013 8:00:00 AM
Usage     : Verify

続いて、次のようなコマンドを使用して証明書を削除できます。

Remove-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000 -KeyId bc2795f3-2387-4543-a95d-f92c85c7a1b0

証明書の割り当てに加えて、Exchange Online サービス プリンシパルを構成し、Skype for Business Server外部 Web サービス URL のオンプレミス バージョンを Microsoft 365 または Office 365 サービス プリンシパルとして構成する必要もあります。 これを行うには、次の 2 つのコマンドを実行します。

次の例では、Pool1ExternalWebFQDN.contoso.com は、Skype for Business Server プールの外部 Web サービス URL です。 これらの手順を繰り返して、展開内のすべての外部 Web サービス URL を追加する必要があります。

Set-MSOLServicePrincipal -AppPrincipalID 00000002-0000-0ff1-ce00-000000000000 -AccountEnabled $true
$lyncSP = Get-MSOLServicePrincipal -AppPrincipalID 00000004-0000-0ff1-ce00-000000000000
$lyncSP.ServicePrincipalNames.Add("00000004-0000-0ff1-ce00-000000000000/Pool1ExternalWebFQDN.contoso.com")
Set-MSOLServicePrincipal -AppPrincipalID 00000004-0000-0ff1-ce00-000000000000 -ServicePrincipalNames $lyncSP.ServicePrincipalNames