SSIS ve Biztalk Enterprise Single-SignOn Entegrasyonu

Geçen günlerde bir müşterimizin ihtiyacı üzerine hali hazırda olan SSIS (Integration Services) paketlerinin Connection String’lerini BizTalk 2010 Single-SignOn üzerinde tutmamız gerekti. Böylece hali hazırda olan bir şifre yönetim mekanizmasını kullanma imkanımız olacaktı aynı anda da güvenliği üst düzeyde sağlamış olacaktık. Bir süre araştırdıktan sonra SSIS be BizTalk SSO entegrasyonunun mümkün olduğunu hatta çok zor olmadığını gördük. Bu yazımda sizinle bu süreci paylaşacağım.

1. Adım: İlk olarak BizTalk yüklü olan makinamıza gidiyoruz ve oradan SSO Administration uygulamasını çalıştırıyoruz.

Capture1

2. Adım: Açılan uygulamada hali hazırda olan Affliate Application’ları görmekteyiz. Burada SSIS paketlerimizin kullanacağı Connection String için bir Application yaratıyoruz.

capture

3. Adım: Bu adımda Connection String’imizi saklayacağımız uygulamanın adını veriyoruz. Ben genellikle Allow local accounts for access accounts seçeneğini de seçiyorum böylece kendi makina üzerindeki lokal kullanıcılar ile bu Application’a güncelleme yapabiliyorum.

Capture2

 

4. Adım: Bu adımda yarattığımız uygulamanın Administator’larını belirliyoruz ve kullanıcılarını belirliyoruz. Özellikle kullanıcılar kısmı önemli çünkü Application Users listesindeki kullanıcılar sadece bu Application’a bağlanıp Connection String’i alabilecekler.

capture3

5. Adım: Bu adımda yarattığımız Application’ın belirli ayarlarını seçiyoruz. Ben genellikle Application Users cannot create mappings seçeneğini kaldırıyorum. Böylece bir önceki adımda tanımladığım Application kullanıcılarıda mapping yaratabiliyorlar. Mapping dediğimiz aslında SSO nun temel çalışma prensibi. İlerki adımlarda açıklıyor olacağım.

Capture4

 

6. Adım: Bu adım önemli bu adımda yarattığımız Application’ın ne tip veri tutacağını belirliyoruz. SSO normal olarak kullanıcı adı ve şifre tutmak için kullanılıyor fakat biz bu senaryoda Connection String tutmak için kullanacağız. O yüzden bu alanlarda (Fields) birkaç değişiklik yapacağız.

Capture5

 

7. Adım: Password yerine ConnectionString yazalım. User Id’yi olduğu gibi bırakalım. Aslında User Id alanına ihtiyacımız yok fakat ne yazıkki en az 2 alan tanımlıyabiliyoruz. Burada önemli olam şifreli şekilde tutacağımız alanı Masked ve Syncronized olarak işaretlemek. Böylece bir kere ConnectionString girildikten sonra Application Administrators bile bu Connection String’i göremeyecekler. Değiştirmek için tekrar girmeleri gerekecek, bu da eskinin üzerine yazılması demek.

Capture6

 

8. Adım: Application’ımız yarattıktan sonra sıra geldi yeni Mapping yaratmaya. Ben örnek olarak yarattığım Application’a “TEST” adını koydum. Yeni Mapping yaratmak için ilk olarak yarattığımız Application’ımızın üzerine tıklıyoruz ve sağ taradaki kısımda sağ tuşa basarak New Mapping seçeneğini seçiyoruz.

capture8

 

9. Adım: Mapping yarattırken ilk olarak ihtiyacımız olan Connection String’imizi kimlerin ihtiyacı olacakğı. Mapping bir kullanıcının SSO’dan Application bazında ne alabileceğiniz belirliyor. Örnek olarak DOMAIN\can.kansu kullanıcısı için bir mapping yaratıldığında DOMAIN\can.kansu kullanıcısı TEST application’ından ilgili Connection String isteyip isyetemeyeceğini gösteriyor. Bu örnekte SSO’ya gelen DOMAIN\can.kansu kullanıcısı için bir mapping yaratıyoruz. External User bu senaryomuzda önemli değil ben buraya ConnString yazıyorum.

 

capture9

 

10. Adım: DOMAIN\can.kansu kullanıcısı ile ilgili mapping’i yarattıktan sonra Mapping’in üzerine gelip Set Credentials diyerek, bu kullanıcının hangi Connection String’i alacağını belirliyoruz. Burada eğer kendimiz ek birkaç tane daha özel alan eklemişsek onlarda gözükecektir. Ama Connection String için sadece ConnectionString alanı yeter. Field 2 alanını sadece size gösterebilmek için koydum.

 

capture10

11. Adım: İlgili kullanıcı için Connection String’imizi belirledikten sonra artık Biztalk SSO tarafımızda yapmamız gereken herşeyi yapmış oluyoruz. Ekran görüntüsündeki Mapping’e dikkat ederseniz Windows User kolonunda bulunan kullanıcı ve Direction kolonunda bulununa ok tuşu External User kolonuna gidiyor. Bunun anlamı DOMAIN\can.kansu kullanıcısı olarak SSO’a gelindiğinde geriye Connection String alanını belirlediğimiz ConnString external user bilgisini geri döndürülmesi.

 

capture11

12. Adım: Şimdi sıra geldi SSIS paketimiz ile SSO entegrasyonunu yapmaya. SSIS pakei içersinde Control Flow ekranında ilk adım olarak bir tane Script Component ekliyoruz. Bu Script Conponent sayesinde C# ile SSO’ya bağlanıp istediğimiz Application’daki Connection String bilgisini alıp onu paket içersindeki yarattğımız bir Variable’a eşitliyoruz..

 

capture12

13. Adım: Aşağıdaki ekran görüntüsünde örnek SSIS paketimizdeki bütün Variable’ları görebilirsiniz. Her bir Connection String için SSO’dan aldığımız değeri ilgili Variable’a eşitliyoruz.

 

capture13

14. Adım: Script Component’i bir variable’a eşitlerken ise, SSO Application Name’i ReadOnlyVariables kısmındaki bir Variable’da alacak şekile getirmemiz mantıklı olacaktır. Connection String’i aldıktan sonra da onu ReadWriteVariables kısmında olan Variable’a atayabiliriz.

 

capture14

15. Adım: Script Component’in içersindede aşağıdaki kodumuzu yazıyoruz. Bu kod ilk olarak bir önceki adımda tanımladığımız SSO Application Name’i bir variable’dan alıyor. Daha sonra bir tane SSOLookup objesi yaratıyoruz unutmayın bu obje ISSOLookup interface’i tipinde olmalıdır. Son olarak ise yarattığımız SSOLookup objesinin GetCredentials metoduna SSO ApplicationName’i vererek geriye Connection String’i parameterList objesine eşitliyoruz. parameterList objesi bir arraydir, bunun sebebi önceki adımlarda tanımladığımız SSO Application’da birçok Field (Alan) ekleme şansımız var. Bu sebeple birden çok değeri tutması için parameterList objesi bir array olarak düşünülmüş. Çıkan Connection String değerimizi bir önceki adımda tanımladığımız SSIS paket variable’a eşitliyoruz.

Önemli: Bu kodu yazabilmeniz için SSIS çalışan her ortamınıza SSO Client yüklemeniz gerekmektedir. Ancak bu sayede C# üzerinde SSOLookUp objesini görebilirsiniz ve SSO’ya bağlanabilirsiniz. SSO Client’ı BizTalk kurulumunun içerisinden yükleyebilirsiniz. Sorunsuz yüklemek için kurulum arayüzünü kullanın.

capture15

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s