Trusted Application / UCMA

Die meisten 3rd Party Produkte, die serverseitig sich an Skype for Business (On-Premises) anbinden, machen dies als "Trusted Application" bzw. Trusted Server. Der Dienst authentifiziert sich dabei mittels einem Zertifikat gegenüber den Skype for Business Servern und gilt damit als "vertrauenswürdig". Er kann sich im Auftrag der Anwender handeln und vieles mehr. Das Schnittstelle stellt Microsoft dazu UCMA  (Unified Communication Managed API) bereit. Microsoft beschreibt selbst als Funktionen.

- Trusted applications are not challenged for authentication by Skype for Business Server 2015.
- Trusted applications are not throttled by Skype for Business Server 2015 for SIP transactions, connections, or outgoing Voice over Internet Protocol (VoIP) calls.
- Trusted applications can impersonate any User and can join conferences without appearing in rosters.
- Trusted applications are highly available and resilient.

Quelle: https://msdn.microsoft.com/en-us/library/office/dn466114(v=office.16).aspx

Damit ist UCMA eine ideale Plattform für 3rd Party Produkte. Folgende Schritte sind für die Einrichtung auf einem solchen Dienstserver erforderlich:

UCMA ist nur "On-Premises" verfügbar aber nicht in Office 365

Betriebssystembasis bereitstellen

UCMA läuft auf Windows. Bitte prüfen Sie aber, dass sie eine Plattform nutzen, die sowohl von UCMA aber auch von ihrer 3rd Party Applikation unterstützt wird. Nicht immer ist das die neueste Windows Version. Microsoft hat zwar veröffentlicht, welche Voraussetzungen alle zu installieren sind aber folgen Sie diesem Artikel bitte nicht!

Diese Anleitung installiert u.a. auch einen IIS und der ist vielleicht gar nicht erforderlich. Wenn auf dem Server nur UCMA und ihre Anwendung laufen muss, dann reicht für die Skype for Business-Komponenten das NET 3.5 Framework und die Media Foundation

Add-WindowsFeature NET-Framework-Core, Server-Media-Foundation

Allerdings kann ihre 3rd Party Applikation natürlich schon noch weitere Komponenten benötigen. Natürlich wird der Server in der Domäne zu installieren sein und eine statische IP-Adresse benötigen.

Vergessen Sie danach nicht mit Windows Update die erforderlichen oder empfohlenen Updates für NET 3.5 und andere nachinstallierte Komponenten zu installieren.

Trusted Application einrichten

Der Server oder ein Pool mit mehreren Servern muss in der Skype for Business Topologie eingerichtet werden. Das geht per GUI geführt mit dem Assistenten oder natürlich per PowerShell. Ich habe hier einmal den Weg gewählt, einen einzelnen Server per PowerShell zu addieren. Zuerst wird der Eintrag addiert und dann zu aktivieren.

New-CSTrustedApplicationpool `
   -identity cc4skype.naw.ovh `
   -site naw `
   -registrar sfbfe01.naw.ovh
 
Enable-cstopology

get-csmanagementstorereplicationstatus

Das sieht dann in etwa so aus:

Dass diese Änderung repliziert wurde, können Sie mit Get-CSManagementStoreReplicationStatus überprüfen. Es wird wenige Minuten dauern und der neu addiert Server ist erst mal auf "false". Noch gibt es dort ja keine SQL-Datenbank

OCSCore und Local Configuration Store

Das kommt nun im nächsten Schritt, in dem Sie auf dem Server zuerst einmal das Skype for Business Basis-Setup aufrufen, welches die Core Components installiert. Dazu gehört neben der passenden VC-Runtime auch die Skype for Business PowerShell und das eigentliche Installationsprogramm. Dort müssen Sie dann zuerst den Punkt "Install Local Configuration Store" auswählen.

Damit wird eine lokale SQL-Express-Instanz und die Replikationsdienste installiert. Den "Step 2 Setup or Remove Skype for Business Server Components" müssen Sie aber nicht ausführen, wenn auf diesem Server keine weiteren Skype for Business Rollen betrieben werden. Für eine reine UCMA-Plattform ist dies nicht der Fall.

Ich habe mir angewöhnt nach Schritt 2 im Anschluss das gewünschte Skype for Business Updates gleich mit zu installieren.

Zertifikate

Ehe Sie nun neu starten, sollten Sie gleich noch ein Zertifikat für den Computer anfordern und als "Default Zertifikat" zuweisen. Auch hierbei unterstützt Sie der Assistent. (Step3). Sie sollten Sie Zeit nutzen, ihre Überwachung bezüglich der Zertifikate entsprechend zu erweitern. Irgendwann läuft auch dieses Zertifikat aus und verhindern in der Regel die fehlerfreie Funktion.

UCMA installieren

Es gibt verschiedene Versionen der UCMA. Prüfen Sie mit ihrer 3rd Party Applikation, ob Sie z.B. noch UCMA 4.0 oder schon UCMA 5.0 nutzen kann. Microsoft unterscheidet auch noch nach der reinen UCMA Runtime oder dem viel größeren UCMA SDK, welches die Runtime enthält. Wenn Sie auf dem System nicht selbst "Programmieren" wollen, dann reicht die kleinere Runtime:

Unified Communications Managed API 5.0 Runtime
https://www.microsoft.com/en-us/download/details.aspx?id=47344 

Unified Communications Managed API 4.0 Runtime
https://www.microsoft.com/en-us/download/details.aspx?id=34992 

Achtung:
Prüfen Sie das Skype for Business Update, welches Sie installiert habe. So enthält CU5 (Mai 2017) einen UCMA 5-Patch.

Services im AD

Auch wenn Skype for Business die wesentliche Konfiguration im Central Management Store (Lync CMS) hinterlegt, so sind einige Daten auch weiterhin im Active Directory eingetragen. Interessant sind dabei die beiden folgenden Bereiche:

  • CN=Global Services,CN=RTC Service,CN=Services,CN=Configuration,DC=contoso,DC=com
    Hier finden Sie neben den SIP-Domänen auch die "Trusted Servers"
  • CN=Trusted Services,CN=RTC Service,CN=Services,CN=Configuration,DC=contoso,DC=com
    Hier finden Sie die Trusted Services.

Die Werte können Sie sich mit ADSIEDIT o.ä. wunderbar anschauen.

Warnung
Sie sollten hier nichts manuell verändern oder löschen, ohne sich der Auswirkungen bewusst zu sein. Die Einträge sind oft nicht atomar sondern verweisen auf andere Objekte oder werden von anderen Objekten referenziert.

Die verschiedenen Elemente haben einige Fehler, die interessant sind

  • msRTCSIP-TrustedServiceType
    Kennzeichnet die Version des Servers. Wer also kein OCS mehr hat, sollte idealerweise keine Einträge mit 4 oder 3 haben. Ansonsten wurden diese vermutlich nicht korrekt migriert.
    • 3 = Office Communication Server 2007
    • 4 = Office Communication Server 2007 R2
    • 5 = Lync 2010 Server
  • msRTCSIP-TrustedServiceType
    String mit der Klassifizierung. Es können mehrere Einträge enthalten sein, z.B. mit den Werten
    • CWA
    • MediationServer
    • Microsoft.RTC.Chat.ChannelServer
    • UCMA application
    • QoE
    • MRAS
    • OWA - UCMA application
  • msRTCSIP-TrustedServerFQDN
    Hier steht dann der FQDN des Servers, der diese Applikation hosted

Weitere Links