| Už jsem mockrát narazil na to, že někdo provozuje SharePoint a publikuje ho do internetu. Aby jeho zaměstnanci měli přístup i z interntu. Tohle můžete dělat například přes TMG, UAG, nebo nově přes Web Application Proxy (WAP), ale taky přes jakoukoliv jinou reverzní HTTP a ideálně HTTPS proxy.
Blbé je, že plno proxyn a load-balancerů, co se tváří že stojí milión, je ve skutečnosti na nic. Zde jsou věci, které musí ty proxyny podporovat, aby spolehlivě fungoval single-sign-on (SSO) jak přes prohlížeč, tak i z Office aplikací, jako je Word, Excel apod. Jedná se mi o přihlašování heslem. Samozřejmě bych raději přihlašování certifikátem, ale to potom nejsou tyto požadavky:
- forms-based authentication, neboli cookie authentication - tzn. v prohlížeci se zobrazí formulář k vyplnění loginu a hesla, na základě čehož vám proxy vydá cookie. To je to nejbezpečnější. Basic ověřování nikdy nevyprší, narozdíl od cookie.
- cookie musí být persistent - tzn. jakmile ji jednou prohlížeč dostane, uloží ji na disk a mohou ji používat jak další aplikace (právě ten Office), tak samozřejmě i ten prohlížeč, pokud ho zavřete a znovu otevřete. Což tedy ale znamená požadavek na další dva body
- forms fallback na Basic authentication - pokud začnete s prohlížečem, dostanete persistent cookie, tak už potom Word nebude chtít znovu ověření heslem. To je právě ten single-sign-on (SSO). Jenže co když prohlížeč vůbec neotevřete a rovnou si spustíte Word a chcete uložit soubor. Cookie žádnou nemáte a Word neumí vyplnit ten přihlašovací formulář. Co teď? Je potřeba, aby proxy byla schopna poznat, že aktuální pokus o přihlášení není z tzv. browser client aplikace, ale že to je právě z non-browser client. Tím proxy pochopí, že to je asi program, který neumí vyplnit formulář a nabídne mu místo toho rovnou Basic authentication, které Word v pohodě rozumí taky. Proxy typy klientů poznává podle jejich user-agent řetězců, tedy toho, co klient dává do HTTP hlavičky User-Agent. Pokud tam je napsáno IE, Opera, Firefox nebo Chrome apod. tak nabízí forms authentication, jinak nabízí Basic authentication.
- cookie musí mít nastavitelnou dobu expirace - protože je na disku i po ukončení prohlížeče i třeba restartu stanice, je nutné, aby po nějaké malé době expirovala
- proxy musí podporovat logoff/sign-out/sign-off url detekci - tzn. každá webová aplikace má jiné klikátko, když se z ní chcete odhlásit. SharePoint 2013 si pro odhlášení (sign out) stahuje stránku /_layouts/15/SignOut.aspx. Starší verze SharePoint 2010 měla tu stránku o úroveň výše - /_layouts/SignOut.aspx. V případě Exchange serveru to je dokonce až část v parametrech - ?Cmd=logoff.
Takže pět jednoduchých požadavků, které mnohá zařízení neumí! |