LyncWeb Services

Für Exchange Administratoren ist es nicht wirklich neu, wenn Server verschiedene Funktionen per HTTP bzw. HTTPS bereit stellen. Autodiscover ist sicher der erste solche Service, mit denen Exchange 2007/2010 Einsteiger konfrontiert werden. Und Outlok2007/2010 nutzen mit Exchange 2007/2010 auch noch Exchange Web Services, OAB-Downloads etc., die alle per HTTPS veröffentlicht werden wollen.

Auch Lync nutzt dieses Verfahren, um verschiedene Dienste für interne und externe Clients bereit zu stellen. Anders als Outlook, welches über "autodiscover.maildomain.de" den ersten Zugang findet, um dann per XML-Antwort die weiteren URLs zu erhalten, nutzt der Lync Communicator hierzu natürlich SIP. Über eine bestehende SIP-Verbindung bekommt der Client die URL für die Lync Webservices.

Topology Builder

Den Namen der einen Lync-Webservice-URL müssen Sie im Topologie Builder konfigurieren. Es gibt je StandardServer bzw. je Pool eine eigene URL, die hinter "External Web Services" konfiguriert werden kann. In dem Beispiel hier ist "lyncweb.domain.de" als Adresse gewählt.

Sie sehen hier auch, dass Lync zwischen den internen und externen Webservices unterscheidet und da diese auf dem gleichen Server laufen, unterschiedliche Ports dafür verwendet. kommt ein Client von Intern, dann nimmt er sich den Poolnamen oder Namen des Standard Servers um auf die Dienste zuzugreifen.

Kommt der Client aus dem Internet, dann nimmt er den konfigurierten externen Namen. Hier spricht der Client aber auch Port 443 an, d.h. wer einen externen Zugriff benötigt, sollte eine passende Firewall haben, die Zugriff von extern auf den Port 443 nach intern auf 4443 (oder einen anderen konfigurierten Port) umleitet. Idealerweise ist dies ein HTTP-Reverse Proxy, wie er schon für die Veröffentlichung von OWA oft zum Einsatz kommt. Der Server, auf dem der Client "auftrifft", muss natürlich ein gültiges Zertifikat für diesen Namen vorweisen können.

Wer einen Enterprise Pool betreibt, muss sich auch über die Lastverteilung der Zugriffe auf die Frontendserver des Pools Gedanken machen. Hier ist ein Loadbalancer erforderlich.

IIS Konfiguration

Ausgehend von den Einstellungen in der Topologie richtet das Lync Setup auf dem jeweiligen Server die virtuellen Verzeichnisse im IIS ein. Die Standardwebseite wird dabei nicht entfernt aber einfach gestoppt. Zusätzlich gibt es die beiden Webseiten

Genau genommen hätte Microsoft die Funktion der beiden Webseiten auch einfach in einer Webseite verschmelzen können und dem Administrator einfach ins Pflichtenheft schreiben, dass er die Dienste "sicher" veröffentlichen muss. Nun kenne wir alle die Begeisterung, Dokumentationen zu lesen. So zwingt Microsoft sicher den ein oder anderen Admin zum Nachdenken, wie er die Dienste veröffentlichen kann.

Es ist übrigens durchaus möglich, die Ports im Topology Builder zu ändern. genau könnten Sie den Server mit zwei Netzwerkkarten versehen und die Webseite auf die IP-Adresse binden, von denen eine Karte "nach außen" verweist. Trotzdem sollten Sie sich natürlich über die Absicherung ihres Servers Gedanken machen und die Sparsamkeit nicht übertreiben.

Schauen wir uns die virtuellen Verzeichnisse mal genauer an, dann sehen Sie im linken baumdiagramm aufgeklappt die Struktur der "External Website und rechts die Details der "Internal Website".

Durch diese Gegenüberstellung können Sie auch schnell erkennen, welche virtuellen Verzeichnisse nur intern vorhanden sind. So fehlt extern natürlich das "CSCP-Verzeichnis" und "Location Information". Auch die "OCSPowershell" ist nur von intern zu erreichen.

Die Web Dienste im Einzelnen

Auch wenn in den hier mit aufgezeigten TMG-Traces als user "anonymous" steht, so bedeutet dies nicht, dass die URLs auch für jeden erreichbar sind. Lync nutzt intern die Authentifizierung mit Zertifikaten, die aber vom TMG nicht gesehen wird.

Virtuelles Verzeichnis seit Lync
Version
Web Funktion
ABS 2010RTM extern
intern

Über diese URL wird das Adressbuch bereit gestellt, welches sich dann die Clients herunterladen. Auch Photos werden so bereit gestellt.

CertProv 2010RTM extern
intern
Dieser Webservice stellt nach einer Anmeldung die Zertifikate für den Client bereit. In der Folge kann sich der Client dann direkt mit dem "Zertifikat" anmelden.
CollabContent 2010RTM extern
intern
 
cscp 2010RTM intern Das Communication Server Control Panel stellt die bekannte Administrationsoberfläche basierend auf Silverlight bereit und sollte nicht ohne Not von "extern" erreichbar sein.
DataColabWeb 2010RTM Extern
Intern

WebService für Data Colaboration, z.B. um Powerpoint bei Lync 2013 hoch zu laden.

Dialin 2010RTM extern
intern
Für den Betrieb der SimpleURL ist "dialin" erforderlich. Sie sehen, dass dies keine eigene Webseite ist. Bei der Veröffentlichung sollten Sie also darauf achten, dass der gleiche Listener im Zertifikatnamen auch die Hostnamen der SimpleURLs enthält.
Über diese URL können anonyme Anwender die Einwahlrufnummern in Erfahrung bringen. Über einen Link können sich Anwender auch anmelden und ihre Telefon-PIN ändern.
Fonts 2010RTM extern
intern
 
GroupExpansion 2010RTM extern
intern

Dieser Webservice löst die Gruppenmitgliedschaften auf. Immer wenn Sie also eine Gruppe addresieren  oder in der Karteikarte sich die Mitglieder einer Gruppe oder Mitgliedschaften eines Benutzers anzeigen lassen, greift der Lync Communicator hierauf zu.

HybridConfig
(Lync 2013)
2013 extern
intern
 
LMStaticData 2010RTM extern
intern
LiveMeeting Static Data ?
LocationInformation 2010RTM intern Über diesen Webservice kann ein Client, sofern er intern ist, seinen Standort ermitteln und dann im SIP-Paket auch weiter melden. Diese Funktion ist in den USA für die E-911 Nutzung erforderlich. Aber auch sonst kann diese Information z.B.: den "Ort" im Communicator automatisch aktualisieren.
lwa 2013RTM   Lync 2013 WebApp
mcx 2010 CU4 Extern
Intern

Das Verzeichnis mcx wird von den mobilen Clients genutzt, die per HTTPS so ihre Daten abrufen.

meet 2010RTM extern
intern
Für den Betrieb der SimpleURL ist "meet" erforderlich. Sie sehen, dass dies keine eigene Webseite ist. Bei der Veröffentlichung sollten Sie also darauf achten, dass der gleiche Listener im Zertifikatnamen auch die Hostnamen der SimpleURLs enthält.
MeetingContent 2010RTM extern
intern
 
MeetingFiles 2010RTM extern
intern
 

PassiveAuth

2013RTM    
PersistentChat 2013RTM    
OCSPowershell 2010RTM intern Hier zeigt sich noch der Name "OCS", der Vorgänge von Lync. Über den Weg können Sie Lync "remote" verwalten. Dieses Verzeichnis sollte natürlich nicht extern erreichbar sein.
Reach 2010RTM extern
intern
 
RequesthanderExt 2010RTM extern
intern
 
RgsClients 2010RTM extern
intern

Webservice um den Status der Responsegroup zu erkennen.

RgsConfig 2010RTM intern Hier hinter verbirgt sich die Webseite, mit der Sie die Response Groups verwalten können. Zwar hat Lync einige Einstellungen in die GUI gebracht, aber die Workflows sind weiterhin eine Webseite
Scheduler 2013RTM Extern
Intern
Web Scheduler
UCWA 2013RTM Extern
Intern
Unified Communication Web API
Webtickets 2010RTM extern
intern

Auch die Webdienste nutzen nur kurzfristig eine Anmeldung mit Benutzername und Kennwort bzw. Zertifikat. Dieser Webservice stellt für die Anwender kurzfristige "Tickets" aus, die in nachfolgenden Anfragen im HTTP-Header mit übertragen werden und damit eine weitere immer wiederholte Anmeldung vermeiden. Quasi "Sessionkeys".

EWS Exchange Extern
Intern

Die Bereitstellung von Exchange Webservices ist keine originäre Lync Aufgabe sondern Exchange. Aber der Lync Client nutzt natürlich EWS und wenn Sie einen Trace auf den Client machen, dann sehen Sie auch solche Anfragen

H

ier nicht

Port 80 ?

Nun könnten Sie ja sagen, dass alles per SSL abgesichert wird und damit der Port 80 oder 8080 gar nicht erforderlich wäre. Dem ist aber nicht so, wie ein schneller Blick in die IISLogs einer aktiven Lync-Installation zeigt:

POST /CertProv/CertProvisioningService.svc/anon - 80 - 10.1.1.3 OCPhone/4.0.7576.0+(Microsoft+Lync+2010+Phone+Edition)
GET /RequestHandler/Files/UCPhone/AASTRA/6725ip/A/ENU/4.0.7577.250/CPE/CPE.cat - 80 - 10.1.1.3 Microsoft+UCPhone+Device+(lcs_se_w14_main:824457)
GET /lyncweb - 80 - 10.1.1.2 Mozilla/4.0+(compatible;+MSIE+7.0) 
OPTIONS /Ansagen/03_Warteschleife_mono.wma - 80 - 10.1.1.2 Microsoft-WebDAV-MiniRedir/6.1.7601 200 0 0 5
GET /cscp - 80 - 10.1.1.2 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+WOW64;+Trident/5.0) 403 4 5 215

Mal abgesehen von der Anfrage nach "Ansagen", was ein Zugriff eines Clients auf eine in den Gruppenrichtlinien hinterlegten WMA-Datei sind sind die beiden ersten Request ein wichtiger Aspekt. Die Lync Phones laden über HTTP bei der ersten Verbindung die Liste der Stammzertifikate herunter. Das ist insbesondere dann wichtig, wenn Sie eine interne Zertifizierungsstelle betreiben und die internen Zertifikate entsprechend "privat" sind.

Und dann sieht man hier auch noch, dass ein Aastra-Telefon auch ohne HTTPS eine Anfrage nach der Firmware-Version stellt.

Eine Änderung dieser Konfiguration ist immer nur temporär, da ein "Publish Topology" mit einem "Enable-CSComputer" die aus Sicht von Lync richtigen Einstellungen wieder einträgt. Vergessen Sie es also, diesen IIS zu "verbessern" oder andere Aufgaben bereit stellen zu lassen.

Es ist schon komisch. Früher gab es auch schon PCs im Umfeld von Telefonanlagen, primär für Call Control, Adressbücher etc. Und ich habe viele Umgebungen gesehen, wo diese "TK-Systeme" nicht gesichert waren, d.h. kein Virenscanner, keine Updates und nicht mal die Standardkennworte wurden geändert. Und diese Systeme standen natürlich im LAN.
Nun kommt Lync und es gibt nicht wenige Administratoren, die nun auch die Server "härten" wollen und sich daran stören, dass da ein IIS auf den Standardport hört.
Ein IIS ist ein Webserver und Webdienste werden von Clients genutzt. Sicherheit erreicht man nicht durch die Verwendung von "nicht Standard Ports" sondern durch sichere Kennworte, passende Firewalls und Intrusion Detection Systemen. Windows 2008 ist von Hause aus deutlich besser abgesichert als alte Windows Server und schon der Ansatz zwei eigene virtuelle Webseiten aufzubauen um allen Diensten den Wind aus den Segeln zu nehmen, die sich ungefragt in die "Default Web Site" installieren, sollte ihnen schon zeigen, dass Lync einen hohen Anspruch an die Lösung hat.

SSL und Offloading

Da der Einsatz von NLB auf Lync Frontend Servern nicht sinnvoll möglich ist und Microsoft für die Veröffentlichung der Webdienste eines Enterprise Pools sowieso LoadBalancer vorschreibt, müssen Sie diese Dienste über gesonderte Hardware "veröffentlichen".

Die Webdienste nutzen aber SSL und einige Loadbalancer bieten eine SSL-Acceleration oder SSL-Offloading an. Dies kann genutzt werden. Allerdings ist auf dem Lync Webdiensten eine Umleitung von Zugriffen auf Port 80 nach 443 eingerichtet. Das bedeutet aber auch, dass ein Loadbalancer nicht wirklich mit SSL-Offloading arbeiten kann. Er kann natürlich die SSL-Verbindung aufbrechen, um z.B. Anhand von Cookies die Sessions zu erkennen aber er muss auch zum Backend (also Lync Server) wieder mit SSL weiter arbeiten, da ein Umsetzen der Zugriffe von Extern Port 443 auf intern 80 einen "Redirect" auslösen würde.

Versuchen Sie nicht diese SSL-Umleitung im IIS außer Kraft zu setzen. Zum einen würde der LyncPBA dies anmeckern. Spätestens bei der nächten Änderung der Topologie würden diese Einstellungen aber wieder zurück gestellt.

Kerberos

Wer nur einen einzelnen Standard Server mit einer überschaubaren Anzahl an Anwendern betreibt, muss sich um die Anmeldung per Kerberos keine größeren Gedanken machen. Der Zugriff auf die Webseite erfolgt intern normalerweise über den Poolnamen, der zum Servernamen identisch ist und so können die Clients auch den SPN finden.

Wer aber einen Frontendpool mit einem Poolnamen betreibt, muss wissen dass sich hier die Clients erst mal nur mit NTLM anmelden können, was auf anderer Seite wieder Probleme mit sich bringt (Ressourcenbedarf auf DCs zur Überprüfung der Anmeldedaten). Daher kann es für größere Installationen durchaus relevant sein, die Anmeldung per Kerberos auf den Webservices zu aktivieren. Dies gilt um so mehr, wenn eine Firewall eine Preauthentication macht und sie mit Constraint Delegation arbeiten können.

Die Konfiguration ist wie bei Exchange und anderen Webdiensten vergleichbar. Die Anwendungen auf den verschiedenen Servern müssen mit einem Dienstkonto laufen, zu welchem der passende SPN im Active Directory hinterlegt wird

Fehlersuche

Es handelt sich ganz einfach um einen IIS. Insofern ist die erste Anlaufstelle natürlich das IISLog, welches jeden Request  beinhaltet. Hier sehen Sie meist die Clients, ihre Anfragen und auch den Benutzer, zumindest sofern er sich erfolgreich anmelden konnte.

Sie können aber auch mit einem Browser den ein oder anderen Test einfach durchführen. Dabei gibt es drei Stellen zum Testen

Folgende URLs nutze ich gerne, wobei diese natürlich abhängig von ihrem Namenskonzept für die SimpleURL zu sehen sind.

Host URL Ergebnis Status
https://<lyncweb>
http://<lyncweb>
/dialin Hier sollte der Lync Server ohne Anmeldung die Konferenznummern anzeigen. Beim Zugriff  
https://<lyncweb>
http://<lyncweb>
/Dialin/Conference.aspx Beim Zugriff von extern leitet Lync auf eine andere Seite um
https://<lyncweb>/Dialin/Conference.aspx
 
https://<lyncweb>
http://<lyncweb>
webticket/webticketservice.svc/mex Liefert die Webservice-Definition für den WebTicketTest  

Bei Lync 2013 sind auch die Office Web Components für Zugriffe relevant

Weitere Links

Tags:Lync Web Publishing TMG ISA