Aslında bu makalede sizlere Exchange Server 2010 SP2 ile beraber gelen Cross-Site Redirection özelliğinden bahsetmek istiyordum. Ancak direk olarak bu konuya başlamadan önce genel olarak OWA için prox, redirection gibi kavramlarında detaylandırılmasını yapacağım. Bu şekilde yeni gelen bu özelliğinden faydaları daha net anlaşılacaktır.
Exchange Server OWA yönlendirme konusunda bilmemiz gereken kavramlar aşağıdaki gibidir.
Internet-facing Active Directory Site
Regional Internet-facing Active Directory Site
Non-Internet-facing Active Directory Site
Direct Connect
Proxy
Redirection
Silent Redirection
Single Sign-On (SSO) Redirection
Internet-facing Active Directory Site
İçerisinde OWA için External URL tanımlı bir CAS server barındıran ve internete bağlı olan AD site yapısını ifade eden kavramdır. Genellikle bu site hem internet bağlantıları için hemde MX için asıl site olarak kullanılır.
Regional Internet-facing Active Directory Site
İçerisinde OWA için External URL tanımlı bir CAS server barındıran ve internete bağlı olan AD site yapısını ifade eden kavramdır.
Non-Internet-facing Active Directory Site
İçerisinde OWA için External URL tanımlı olmayan bir CAS server barındıran AD site yapısını ifade eden kavramdır.
Direct Connect
Bir CAS Server’ ın RPC üzerinden Mailbox Server’ e bağlandığı durumu ifade eder.
Proxy
Internet-facing Active Directory Site içerisine gelen bir erişim isteğini bu site içerisindeki CAS server rolünün mailbox veri tabanının bulunduğu Non-Internet-facing Active Directory Site içerisindeki CAS server’ e yönlendirmesidir. Özetle internete bağlı olan siteye gelen isteğin bu site içerisindeki CAS serverdan internet bağlantısı olmayan site içerisindeki CAS server’ a yönlendirilme işlemidir.
Redirection
Bu senaryoda ise Internet-facing bir CAS sunucusu gelen istek yerine gelen kullanıcıyı yine ayrı bir Internet-facing CAS sunucusuna yönlendirmektedir. Proxy’ den en büyük farkı yönlendirilen istek değil kullanıcının kendisidir. Yani kullanıcı bir OWA adresinden diğer bir OWA adresine yönlendirilir. Örneğin https://rize.cozumpark.com dan doğru site olan https://antalya.cozumpark.com adresine yönlendirme için kullanıcıya bir bilgi ve link verir.
Silent Redirection
Yukarıdaki gibi bir durumda yönlendirmeyi kullanıcıya bilgi vermeden otomatik olarak yapar. Yani adres çubuğundaki rize, otomatik olarak antalya adresine dönüşür. ( Bu antalya adresini hedef CAS server external URL den almaktadır ). Ancak yeni adreste kullanıcı bir kez daha logon bilgisi girmek zorundadır.
Single Sign-On (SSO) Redirection
Bu ise yine yukarıdaki gibi bir yönlendirme işlemi yapar, yani adres çubuğu otomatik olarak yönlendirilir, ancak kullanıcıdan tekrar bir logon bilgisi istemez, ilk logon bilgisi ile otomatik olarak posta kutusuna erişimi sağlar.
Peki Exchange 2010 SP2 öncesi bu sistem nasıl çalışıyordu ?
1 – Kullanıcı OWA URL adresini browser’ a yazarak logon sayfasına ulaşıyor.
2 – Bu sayfada kullanıcı kimlik bilgilerini giriyor.
3 – Eğer kimlik bilgisi doğru ise CAS server aşağıdaki iki temel bilgiyi topluyor
a.User’s mailbox version
b.User’s mailbox location (Active Directory site)
Bu bilgiler ışığında ise aşağıdaki gibi durumlar oluşmaktadır
4 – Gelen bilgiler ışığında;
a. Eğer kullanıcı mailbox versiyonu Exchange 2010 ve aynı site içerisinde ise direk mailbox sunucusuna bağlantı gerçekleşir.
b. Eğer kullanıcı mailbox versiyonu 2007 ve aynı site içerisinde ise öncelikle Exchange 2010 CAS server 2007 CAS server’ ın ExternalURL adresini öğrenir, eğer yok ise internal URL adresine silent redirection yapılır.
c. Eğer kullanıcı mailbox versiyonu 2003 ve aynı site içerisinde ise bu durumda istek Exchange2003URL adresine silent redirection yapılır.
Not; Eğer 2003 mimarinizde FE / BE yok ise direk istek BE server’ a gönderilir.
d. Eğer kullanıcı mailbox local değil farklı bir site içerisinde ise hedef site içerisindeki Exchange Server CAS External URL adresine ulaşmaya çalışır, Eğer bu adres tanımlı ise bu istek redirect edilir, eğer tanımlı değil ise proxy görevi görülür.
Exchange 2010 Sp1 ile beraber ise aşağıdaki 3 temel yönlendirme seçeneği gelmiştir.
Manual Redirection
Temporary Manual Redirection
Legacy Silent Redirection
Manual Redirection
Eğer gelen istek farklı bir AD site içerisinde ise bu durumda SP1 öncesi benzer bir durum söz konusu olup bu site için OWA External URL bulunur ve kullanıcı bu alana aşağıdaki gibi bir link ile yönlendirilir.
Burada kullanıcı linke tıklar ve bir kez daha logon olur.
Temporary Manual Redirection
Not: Bu yönlendirmeyi anlamak için öncelikle FailbackURL kousunu incelemenizi öneririm
https://www.cozumpark.com/forums/post/313184.aspx
Bu özellik aslında direk SP1 ile eklenmiş ek bir yönlendirme seçeneğidir. Bu özellik için temel iki senaryo bulunmaktadır.
İlk senaryomuzda eğer bir datacenter activation switchback süreci yaşanmış ise kullanıcı browser cache inde hala eski ip adresi kaldığı için mailbox’ I aktif olmayan bir site üzerindeki CAS server adresine yönleneceği için buradaki CAS kullanıcıyı mailbox’ ı aktif olduğu site içerisindeki CAS server’a “manual redirect” edecektir. Ancak kullanıcı cache’ inde hala o adres için eski ip olduğundan kullanıcı aslında tekrar logon olduğu OWA sayfasına dönecektir. Bu ikinci dönüş web canary özelliği sayesinde çerezler üzerinden tespit edilecek ve kullanıcı hedef CAS server’ ın failbackurl adresine yönlendirilecektir.
Ancak hedef CAS için bir FailbackURL adresi yok ise OWA logon sayfası hata verecektir.
İkinci senaryo ise, benzer şekilde farklı site’ lar bulunmaktadır. Yine bir kullanıcı “A site” içerisinde mailbox mount durumunda iken “B site” CAS server’ a logon olmak ister ve bu CAS “A site” içerisindeki mailbox veri tabanının özel tanımlanmış bir “RpcClientAccessServer” adresi var ise bu durumda yine Temporary Manual Redirection süreci başlar. Bu değer bir CAS server’ I işaret eder ve sistemde bu CAS server’ ın ExternalURL adresine yönlendirme yapar.
Legacy Silent Redirection
Ortamda eski sürüm Exchange rollerinin olduğu durumlarda CAS sunucularının yönlendirme seçenekleri aşağıdaki gibidir
Exchange 2007 Posta kutularına erşimek için bir kullanıcı Exchange 2010 CAS sunucusuna gelirse ve bu posta kutusu bu CAS 2010 ile aynı site içerisinde ise bu istek CAS 2007 sunucusuna silent redirection yapılır.
Eğer kullanıcı posta kutusu başka bir Internet-facing Active Directory Site içerisinde ise bu durumda CAS 2010, hedef site içerisindeki CAS 2007 te manual redirection yapar.
Eğer kullanıcı posta kutusu 2007 sürümü ve non-internet facing bir AD site içerisinde ise, CAS 2010 bu isteği diğer site içerisindeki 2007 CAS sunucusuna proxy eder.
Son olarak, eğer posta kutusu bir Exchange 2003 sürümü ise önceden tanımlanmış olan “Exchange2003Url” URL adresine silent redirection yapılır.
Bu son senaryo için tek şart aynı site içerisinde olmasıdır.
Özetlemek gerekirse Legacy Silent Redirection sadece aynı site içerisinde çalışmaktadır. Yukarıdaki örneklerde de gördüğünüz gibi eğer farklı bir site işin içine giriyor ise manual redirection veya proxy söz konusudur. Ancak aynı site içerisinde ise Legacy Silent Redirection çalışmaktadır.
Ancak Legacy Silent Redirection çalışması içinde temel iki şart bulunmaktadır.
Eğer yönlendirilecek sistem 2003 ise mutlaka CAS 2010 üzerinde “Exchange2003Url” tanımlı olmalıdır.
Eğer yönlendirilecek sistem 2007 ise mutlaka hedef yaniş 2007 CAS üzerinde ExternalURL tanımlu olmalıdır ( eğer değil ise internalURL kullanılır )
Legacy Silent Redirection aynı zamanda şartların sağlanması durumunda Single Sign-on SSO desteği sunmaktadır. Bu şartlar aslında 2007 ve 2003 tarafındaki sertifika ve FBA ayarlarının düzgün yapılması gerekliliğidir.
Burada sistem 2010 CAS server’a verilen kullanıcı adı, şifre, public veya private seçeneği gibi tüm bilgileri bir form olarak hedef 2007 / 2003 OWA ya yönlendirir, bu bilgiler birebir hedef OWA ya girildiği için tek bir kullanıcı adı ve şifre ile beraber SSO özelliği çalışmış olur. Bu arka tarafta kullanılan form “hidden FBA form” olarak isimlendirilir.
Evet buraya kadar olan süreç sonrası SP2 ile gelen yeni yönlendirme özelliğine geçeceğim ancak bundan önceki süreci aşağıdaki gibi özetlemek istiyorum
Manual redirection yönteminde aşağıdaki adımlar gerçekleşir
1 – Kullanıcı web browser üzerinden yanlış OWA URL adresini yazar
2 – Kullanıcı bu yanlış URL adresi üzerinden kimlik bilgilerini girer
3 – Yanlış site içerisindeki bu CAS server “service discovery” sayesinde kullanıcının posta kutusunun hangi site içerisinde aktif olduğunu bulur.
4 – Bu bilgi ışığında doğru site içerisindeki CAS server URL adresini öğrenir ve bunu kullanıcıya web sayfası üzerinden gösterir.
5 – Kullanıcı bu linkte tıklar ve doğru CAS sunucusu üzerinde tekrar kullanıcı adı şifre bilgisi paylaşır.
6 – Bu sayede kullanıcı posta kutusuna ulaşmış olur ancak bu kullanıcı deneyimi olarak kötü bir sonuçtur. Çünkü kullanıcı posta kutusuna erişmek için iki kez logon olmuştur.
Peki bu temel yönlendirme durumlarını bildiğimize göre gelelim SP2 ile bize sunulan Cross-Site Silent Redirection detaylarına.
Exchange organizasyonunuz site yapısına sahipse ve her site için ayrı CAS sunucularımız var ise aslında bizim birden çok OWA URL adresimiz var demektir. Böyle bir durumda bir kullanıcı yanlışlıkla bulunduğu site ( posta kutusunun bulunduğu site ) yerine başka bir AD site içerisindeki CAS server’ a OWA erişimi için logon olmak isterse bu durumda CAS Server kullanıcıyı doğru site içerisindeki CAS Server’ e yönlendirecektir. Ancak yönlendirilen CAS server ayarlarında OWA için External URL tanımlı değil ise kullanıcı doğrudan posta kutusuna ulaşabilecekken tanımlı bir URL olması durumunda kullanıcı bir kez daha bu URL’ e yönlendirilecek ve ikinci bir logon işlemi gerçekleştirecekti. Bu konuları zaten makalemin başında detaylandırmıştım.
Benim yapımda iki adet AD site bulunmaktadır. Bunlar Antalya ve Rize. Yine her site içerisinde bir HUB- CAS- Mailbox rolü barındıran Exchange Server bulunmaktadır.
Böyle bir yapıda OWA virtual directory bilgileri aşağıdaki gibidir.
Get-OwaVirtualDirectory |fl Servername,InternalURL,ExternalURL,OriginatingServer,CrossSiteRedirectedType
Görüldüğü gibi iki ayrı URL bulunmaktadır. Her iki CAS Server içinde “CrossSiteRedirectType” Manual olarak ayarlıdır.
Şimdi bu durumu test edelim.
Öncelikle Hakan kullanıcısının posta kutusunun hangi mailbox da tutulduğuna bakalım
Hakan kullanıcısının posta kusutu “Antalya” ismindeki bir Mailbox veri tabanında bulunuyormuş. Şimdi bu veri tabanının hangi mailbox server üzerinde tutulduğuna bakalım
Antalya mailbox veri tabanı “EXCH2010SP2” isimli mailbox sunucusunda tutuluyor ve son olarak bu sunucunun hangi site içerisinde olduğuna bakalım
EXCH2010SP2 sunucusu Antalya, EXCH2010SP2RIZE ise Rize site içerisindedir.
Hakan kullanıcısı ( hakanuzuner ) posta kutusu Antalya site içerisindeki mailbox sunucusunda bulunmaktadır. Bu nedenle Hakan kullanıcısı adres olarak aşağıdaki URL’ i kullanmaktadır
Daha sonra açılan ekranda kimlik bilgilerini vererek aşağıdaki gibi posta kutusuna ulaşabilmektedir.
Peki Hakan kullanıcısı çok büyük bir şirkette çalışıyor ve kendi posta kutusunun hangi site içerisinde olduğunu bilmiyor veya site ismini biliyor olsa bile URL adresini bilmiyor olabilir. Bu durumda generik olan mail.cozumpark.com gibi bir adres kullanabileceği gibi aşağıda olduğu gibi farklı bir site adreside kullanıyor olabilir.
Yukarıda görüldüğü gibi Antalya site içerisinde posta kutusu olan Hakan yanlışlıkla Rize URL adresini yazıyor ve logon olmak istediği zaman ona aşağıdaki gibi bir uyarı çıkıyor
Yönlendirme ayarını hatırlayacak olursanız “Manual” olduğu için kullanıcı bu linke tıklamalı ve bir kez daha logon işlemini gerçekleştirmelidir.
Görüldüğü gibi adres otomatik olarak Antalya dönmekte ancak bizden bir kez daha kimlik bilgisi istemektedir.
SP2 ile beraber gelen Cross-Site Silent Redirection özelliği sayesinde aşağıdaki gibi bir PowerShell ile bu işlemin kullanıcıya sorulmadan ve ek bir kimlik bilgisi istenmeden gerçekleşmesini sağlayabiliyoruz.
Set-OWAVirtualDirectory -Identity "EXCH2010SP2\owa (Default Web site)" -CrossSiteRedirectType Silent
Set-OWAVirtualDirectory -Identity "EXCH2010SP2RIZE\owa (Default Web site)" -CrossSiteRedirectType Silent
Not ; Bu değişikliğin olması için mutlaka sahip olduğunuz sitelardaki CAS Serverların OWA dizinlerinde External URL tanımlı olmalıdır.
Bu değişiklik sonrası artık hangi site URL adresini kullanırsanız kullanın yönlendirme işlemi otomatik olarak gerçekleşecek ve siz https://antalya.cozumpark.com adresine logon olduğunuzda posta kutunuza erişecek ancak adresin https://rize.cozumpark.com’ a döndüğünü fark edeceksiniz.
Bu son bölümüde toparlamak gerekirse.
Kullanıcı CAS sunucusuna logon olduktan sonraki süreç aşağıdaki gibi özetlenebilir;
Kullanıcı logon olduktan sonra ilk olarak kullanıcınsını mailbox versiyonu kontrol edilir. Yani 2007 mi yoksa 2010 mu olduğu.
Ardından bu posta kutusunun nerede aktif olduğuna bakılır ( hangi site içerisinde mount olduğuna )
Daha sonra bu aktif olan site içerisindeki CAS için ErternalURL adresi tespit edilir.
Daha sonra ise bu istek yönlendirilir. Eğer OWA ayarlarında “CrossSiteRedirectType=Manual” şeklinde ise bu yönlendirme manual redirection şeklinde yapılır. Yani kullanıcıya bir link verilir ve kullanıcı tıklayarak ikinci kez logon bilgisi girer.
Eğer “CrossSiteRedirectType=Silent” şeklinde ayar yapılmış ise kullanıcı otomatik olarak mailbox sunucusuna erişir. Çünkü CAS yönlendirmesi otomatik olur ve SSO desteğide olduğu için ikinci bir logon isteği olmayacaktır ( Bunun için kaynak ve hedef CAS üzerinde FBA açık olmalıdır. Eğer değil ise 302 yönlendirme hatasını alırsınız ).
Ayrıca SSO için ek birkaç bilgi paylaşmak istiyorum.
Aşağıdaki durumlarda SSO özelliği devre dışı kalacaktır
1 – OWA Virtual Directory üzerinde Basic Authentication kullanmanız durumunda
2 – Kaynak ve hedef OWA üzerinde farklı kimlik doğrulama ayarlarının olması durumunda
3 – Kaynak veya hedef OWA üzerinde two-factor kimlik doğrulama uygulamalarının olması durumunda
4 – OWA logon işleminden önce bir logon sürecinden geçtiğinizi durumlarda. Örneğin her iki OWA’ nın Microsoft Threat Management Gateway 2010 üzerinde farklı listener’ lar üzerinden publish edilmesi durumunda.
5 – Local bir CAS sunucusunun farklı bir AD site içerisindeki CAS sunucusuna Temporary Manual Redirection yapması durumunda.
Evet bu makalemizinde sonuna geldik. Son derece detaylı anlatmaya çalıştığım bu makale umarım sizler için yararlı olmuştur.
Bir sonraki makalemizde görüşmek üzere esen kalın.