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 管理シェル スクリプトを実行することで実行できます。
$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
通常、テナントの領域名は組織名とは異なる点に注意してください。実際、領域名はほとんどの場合、テナント ID と同じです。 そのため、スクリプトの最初の行を使用して、指定したテナントの TenantId プロパティの値 (この場合は fabrikam.com) を返し、その名前を変数$TenantIdに割り当てます。
$TenantID = (Get-CsTenant -Filter {DisplayName -eq "Fabrikam.com"}).TenantId
このスクリプトを実行するには、Skype for Business Online PowerShell モジュールをインストールし、このモジュールを使用してテナントに接続する必要があります。 これらのコマンドレットをインストールしていない場合、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