OCS ve Exchange'e Dair
RSS ikon Email ikon Anasayfa ikon
  • RBAC Role Base Access Control – Exchange 2010

    Kasım 20th, 2009 Saits Yorum yok

    dd203064_Exchange_logo_GIF(en-us,MSDN_10)

    GIRIŞ

    Role Based Access Control (RBAC) yeni  bir yetkilendirme modeli olarak Exchange Server 2010 içerisinde yer almaktadır. RBAC ile kullanıcı veya gurupların mevcut ACLs (access control lists) ile herhangi bir düzenleme veya değişiklik yapmadan organizasyonunuzda bulunan işlemler için yetkilendirmeler yapabilirsiniz.

    RBAC in komut karmaşası içerisinde tanımlanmasından daha çok RBAC’in mantığını detaylandırmayı ve sadece birer örnek ile komut yapısını göstermeye çalışacağım.

    Güç Üçgeni (Triangle of Power)

    Güç üçgeni tanımını bu yazımız boyunca kullanacağız bu üçgen RBAC’in tanımını yapan ve mantığını yansıtan bir yapıdır. Üçgenin köşelerini ise nerede (where), kim (who), ne (what) oluşturmaktadır. Bu köşeleri ise bir birleştirici (glue) ile bir arada tutuyoruz. Bunu bir şema ile göstermek istersek;

    rbac_1

    Yukarıdaki şekil tanımlamaya çalıştığımız güç üçgenini şekilsel olarak açıklayacaktır.

    NEREDE (where)

    RBAC nerede kullanılacak konumlandırılacak kapsama alanı kapsayacağı objeler neler olacak. Bunlara Nerede başlığı altında toplayacağız. Bu köşede kişi,grup, OU veya container olacaktır. Bir diğer söylem ile işlemini gerçekleşeceği alanın sınırlarını çizeceğiz. Teknik tanım olarak bunu scope olarak da adlandırabiliriz.

    Varsayılan olarak Exchange Server 2010 üzerinde RBAC için tanımlı alanlar belirlenmiştir. Bu varsayılan alanları aşağıdaki komut satırı ile PS Komut satırında görebilmeniz mümkün.

    Get-ManagementRole <role name> | fl *scope*

    Bu komut satırı ile belirlenmiş bir yönetim rölüne ait tanımlı alanları görebilmemizi sağlayacaktır.

    Varolan bir RBAC rolü baz alınarak yeni bir RBAC oluşturmak istiyoruz. Belirlenmiş olan alan üzerinde kapsamını belirleyerek tanımlanan/tanımlanacak olan rölün kapsamını oluşturacağız. Burda yer verilecek olan kapsam AD yapımız içerisinde yer alan ve firmamıza ait VIP çalışanları bu kapsam içerisinde tutacağız.

    Yapılacak olan tanımlama işlemleri için kullanacağımız komut  New-ManagementScope  olacaktır. Kapsamımıza alacağımız VIP kullanıcılarının domain içerisinde VIP OU su altında yer alan VIPs grubu üyelesi olduğu düşünülmüştür. Kapsam belirleme için kullanılacak komut;

    New-ManagementScope -name “VIP Users” -RecipientRestrictionFilter {memberofgroup -eq “cn=VIPs,ou=VIP,dc=domain,dc=com”}

    Bu komut sonrasında VIP Users adı ile bir kapsam alanı oluşturuldu ve kapsam içeriği belirlenen grup üyelerini kapsayacak şekilde ayarlanmıştır. Kapsam tanımından sonra ne (what) köşesine ihtiyaç duyacaktır.Bir sonraki adımımız ne köşesi olacaktır.

    NE ? (What)

    Şimdi nereye uygulanacağını belirlediğimize göre neyi uygulayacağımızı belirlememiz gerekmektedir. Exchange Server 2010 varsayılan olarak 65 adet rol ile birlikte gelmektedir. Ürünün hazırlanması aşamasında kullanıcı ihtiyaçlarının bir çoğunu karşılayabilen bu roller özel içeriğe sahip ve özel isteklere cevap verecek yapıda değillerdir. Bu özel rolleri biz oluşturacağız. Bu rol/leri oluştururken daha genel yapılara sahip rollerden içerik devralınarak değişiklikler yapabiliriz.

    Rol oluşturulmadan önce düşünülmesi ve planlanması gereken 3 nokta bulunmaktadır.

    1-      Oluşturulacak rol var olan ve özel hazırlanmış bir rolün kısıtlı içeriğine sahip mi ?

    2-      Oluşturulacak rol özellikleri devranılan rolden daha fazla haklara sahip olamaz; özel/değiştirilmiş bir rol içinde aynı şartlar geçerlidir.

    3-      Her zaman set/remove v.b. komutlar kullanılarak bu rol hakları üzerinde değişiklik yapılabilir.

    Rol içeriğinde bulunan haklar veya içerik ile ilgili detay bilgileri aşağıdaki komutlar ile detaylı olarak görebilme şansına sahibiz.

    Get-ManagementRoleEntry “Mail Recipients\*”

    Yukarıdaki komut ile Mail Recipients rolünün içerisinde yer alan hakların tamamını listelemiş olacağız. Bu kapsamlı yetkilere sahip rol baz alınarak alt özelliklere sahip bir rol tanımını oluşturmak yazımıza konu olan işlemler için gerekli tanım aşağıdaki komut satırı ile mümkün olacaktır.

    New-ManagementRole -Name “VIP Editor” -Parent “Mail Recipients”

    Bu komut ile VIP Editor olarak bir yönetim RBAC rolü oluşturmuş olduk ancak istemiş olduğumuz içeriğe kavuşa bilmesi için bir üst rol olan Mail Recipients dan devralınan içerikleri düzenlememiz gerekecektir. Bu işlemler için aşağıdaki komut satırını kullanacağız.

    Get-ManagementRoleEntry “VIP Editor\*” | Where {$_.name -ne “Get-User”} | Remove-ManagementRoleEntry

    Bu komut içeriğini biraz detaylandırmak gerekirse PS komut yapısının esnekliğinden faydalanılarak komut çıktıları soldan saga doğru bir sonraki komut için girdi oluşturabilmektedir. Kısaca komutu açıklayalım. VIP Editor rolü içerisindeki haklar listelenerek bir sonraki komuta gönderilmiştir; 2. Komut ise 1. Komuttan gelen liste içerisinde Get-User dışındaki bilgileri liste halinde 3. Komuta arguman olarak gönderecek ve VIP Editor rol içerisinde Get-User yetkisi haricindeki tüm yetkilerin bu rol üzerinden kaldırılması sağlanacaktır.

    Oluşturduğumuz bu rol içeriğinde yer alan girdiler için değişiklikler yapabileceğimizi geçen satırlarda belirtmiştik. Bu belirttiğimiz konu ile ilgili olarak aşağıdaki komut satırı ile yapmak istediğimizi netleştirmiş olacağız.

    Add-ManagementRoleEntry “VIP Editor\Set-User” -Parameters Office,Phone,Mobilephone,Department,Manager

    Bu komut ile artık oluşturmuş olduğumuz yönetim rolü ile VIPs gurubu üyelerinin kullanıcı bilgilerini görebilme ve bu kullanıcılara ait –Parameters argumanında belirtilen objeler üzerinde değişiklik yapabilme hakkını tanımlamış olduk. Güç üçgenin önemli bir köşesi olan ne sorusuna cevap verdikten sonra son köşe olan kim (who) köşesi üzerinde duracağız.

    KİM (Who)

    Kim sorumuzun cevabı aslında çok basit yapılan tanımlamaların hangi olgu tarafından kullanılacağına karar verilmesi aşamasını oluşturmaktadır. Daha önce oluşturulan tanımlar bu aşamada oluşturulacak girdinin içeriğini ve kapsamını oluşturmaktadır. Bu girdi RoleGroup olarak adlandırılan rol guruplarını tanımlar.

    Exchange Server 2010 içerisinde varsayılan olarak gerel  rol gurupları bulunmaktadır. Bu gurupları aşağıdaki komut satırı ile listelememiz mümkündür.

    Get-RoleGroup

    Bu rol gurupları büyük kapsamları içermesi nedeni ile özel içeriklere sahip tanımlamalar için özel gurup tanımlama yapmamızı mümkün kılmıştır. Aşağıdaki komut satırı ile daha önce oluşturduğumuz yönetim rolü ve daha önce tanımladığımız etkilenecek kapsam bilgisini bu komut ta girdi olarak kullanacağız.

    New-RoleGroup “VIP Editors” -Roles “VIP Editor” -CustomRecipientWriteScope “VIP Users”

    Bu komut satırı ile daha önceden belirlediğimiz “VIP Editor” yetkilerine sahip ve kapsam olarak da “VIP Users” olacak şekilde “VIP Editors” adı ile bir Rol gurububunu oluşturmuş olduk. Yazımızın ilk satırlarında güç üçgenini oluşturan köşeleri birleştiren bir birleştiriciden bahsetmiştik. Bu komut girdisi ile bu birleştirici sizing için system tarafından oluşturulmuş oldu.

    BIRLEŞTIRICI (Glue)

    Nerede, Ne, Kim bunların hepsi Active Directory’nin bir objesidir. Nerede bir kapsam objesi, Ne bir rol objesi ve kim özel bir security gurubudur. Birleştirici ise bir diğer Active Directory objesidir. Bu obje Role Assigment diğer üç objenin çalışabilmesi için gerekli olan birleştirici bir özelliğe sahiptir. New-RoleGroup komutu kullanıldığında arka tarafta RoleAssigment oluşturulmaktadır. Bu bilgileri aşağıdaki komut satırı ile görüntüleyebiliriz.

    Get-ManagementRoleAssignment

    Bu komutu kullanmamız halinde 160’dan fazla kayıt görüntülecektir. Rol atamaları bire bir olarak atanmaktadır. Bir rol ataması bir role, bir scope’a bir Rol grubuna/kullanıcısı ile bağlantılıdır. Farklı bir atama işlemi yapılmak isteniyor ise benzersiz bir isme sahip bir rol ataması (RoleAssigment) oluşturulmalıdır.

    Yukarıda açıklamaya çalıştığımız güç üçgeni tüm bileşenleri ile birlikte çalışabilirlilik örneği göstermektedir. Bu bileşenlerden herhangi birinin olmaması halinde RBAC sağlıklı çalışmayacak ve istenilen sonuç elde edilemeyecektir. Yukarıda yapmış olduğumuz tanımlama ve örnekler doğrultusunda güç üçgenini yeniden Exchange Server 2010 öğeleri ile tanımlarsak  aşağıdaki görüntüyü elde etmiş olacağız.

    rbac_2

    SONUÇ

    RBAC çok karmaşık bir yapıya sahip değildir. En basit hali ile üçgeni takip ederek bu doğrultuda bileşenleri oluşturmamız yeterli olacaktır. Öncelikli olarak Scope sonrasında Rol sonrasında ise Rol gurubunu oluşturmamız yeterli olacaktır. Bu yapıyı birleştiren unsurun Role Assignment olduğunu düşünmemiz bu yapıyı anlamamızı sağlayacaktır.

    RBAC bileşenlerini hızlı bir şekilde yeniden tanımlayıp yazımıza son vereceğiz.

    Scope – Active  Directory içerisinde Rol tabında belirtilen yetkiler doğrultusunda etkilenecek olan objelerin bütününü oluşturur. Bu kapsam ve bütünlüğü PowerShell komutları içerisinde ManagementScope tabı ile yönetebilirsiniz.

    Role – Yetki girdilerini ve tanımlarını barındıran ve bu tanımlar üzerinde istenilen parametre değişikliklerinin yapılmasını mümkün kılan bir bileşendir. Bu bileşen üzerinde PowerShell komutları içerisinde ManagementRole tabı ile yönetebilirsiniz.

    Role Entry – Role içerisinde yer alan ve yetkilendirmelerin ana bileşenleri oluşturan komutlar bütünlüğüdür bu bütünlük içerisinde ilgili yetkilendirmeler parametler aracılığı ile yapılabilinmektedir. Bu bütünlük değişikliklerini PowerShell komutları içerisinden ManagementRolerEntry ile yönetebilirsiniz.

    Role Group – Rol gurubu AD içerisinde yer alan bir Security Group’tur. Üçgenin köşelerinde kim’I temsil eder. Bu bileşen ile ilgili düzenlemeleri PowerShell komut satırından RoleGroup komut dizisi ile yönetebilirsiniz.

    Role Assigment – Üçgenin köşelerini birleştiren ve yapının tümleşik çalışmasını sağlayan önemli bir bileşendir. Bu bileşen ile ilgili düzenlemeleri PowerShell komutları içerisinden ManagementRoleAssignment ile yönetebilirsiniz.