This user hasn't shared any biographical information

Cloud Computing – What businesses should know

Whether you are a manager of a business or an IT professional, you must have heard about cloud computing, one of the hottest buzzword on the Internet these days. Originating from the idea of utility computing, in which computing power can be provided as a service, the cloud promises a huge boost in efficiency for companies by reducing hardware and maintenance cost. In fact, as industry leaders (including Microsoft, Google, Amazon…) now embrace this technology as their strategic weapon, cloud computing is quite capable of becoming “the next big thing”.

How does that impact your business? Well, thinking to move your business on the cloud today may give you a competitive edge in the future. But it also comes at a price. The cloud has always been a realm of uncertainty, and its benefits tend to be exaggerated by massive marketing campaigns to overshadow its drawbacks. Nevertheless, cloud computing seems to have grown into a major trend for the near future. Is it your time to take off? Possibly, but first let us calm down just a little bit and see what awaits your business once you make a move!

The benefits

Cloud computing offers a lot features that, when utilized, can bring the following advantages:

Flexibility: by employing the “pay-as-you-go” service model, businesses are liberated from physical resource limitations. Not only can storage space, processing power, and virtually everything else be allocated on-demand, but you also have to pay for just exactly what you need. This is similar to what already happened with electricity and water. For many businesses, it means cost-saving, reduced manpower and simplified processes.

Scalability: one of the most appealing feature of cloud computing is that it allows for near infinite scalability, so that you no longer have to worry about your hardware being unable to catch up with the growth rate of your business. This is also very important to companies with seasonal workload, as they will always have enough resources even at peak time, and still don’t need to maintain any idle components when demand drops.

Capital investment: cloud computing solve the problem of IT spending by outsourcing most of the tasks, including hardware procurement and maintenance, to cloud vendors. Given the fast-changing nature of technology, where a piece of hardware can become obsolete in a relatively short time, senior managements will be relieved to transfer much of the risk to someone else. And that also means they will have more money in hand to deal with other urgent issues of their business.

Portability: with globalization, enterprises now often scatter across many countries, and they can make use of cloud computing to access computing resources from anywhere on earth. All they need is a moderate PC (also called thin client) and an Internet connection, which are quite ubiquitous. As geographic boundaries are blurred, enterprises find themselves with more freedom than ever before to operate in a global environment.

The drawbacks

Though the benefits of cloud computing sound very compelling, it’s wise to remind ourselves that nothing is perfect. Now let’s take another look at the dark side of the cloud! Some of the most notable pitfalls are:

Dependability: migrating to the cloud may also mean that you’ll have to give up control over your critical application and data. This is the main barrier for businesses which worry about the reliability of cloud services. And it’s a legitimate concern, as it has happened more than once that Google and Amazon have their services offline for some reasons. The problem here lies in the cloud vendors: they need to be able to guarantee about their quality of service (often explicitly stated in the Service Level Agreement) before companies are willing to take a move.

Security: where are the data stored? Even though some cloud vendors are kind enough to let you specify the region for data storage, most of the time you will not know exactly which physical servers are holding your sensitive information. What if those same machines are hosting applications from your main competitor? What types of isolation are there to prevent unwanted access? Which measures are employed to protect your assets from other common threats such as virus, Trojan horse, or DoS attack? While professionals are busy finding the right answer, some enterprises are now content with the hybrid cloud model: to move only unimportant part of the business to the cloud and keep the most valuable ones in-house.

Migration guide

Ok! Enough for the analysis! Now that you have some basic ideas about the gains and losses of cloud computing, you should be able to answer for yourself whether a migration is appropriate. Theoretically, cloud computing is great for SMEs (Small and Medium Enterprises) as these businesses don’t have an abundant cash flow and the saving made by the cloud can help them concentrate their limited resources on core business processes. Of course, large corporates can benefit as well. The important thing is to know your situation and make sure you have several reasons to justify your action. Should you consider migrating, here are a few steps to start with:

  1. Build your plan: just as with every non-trivial thing you do, you need to have a plan. Which components do you want to migrate? And which should remain on-premise? Generally, critical systems where integrity is top priority, such as domain controllers and servers that perform financial calculations are not a good choice to move, while web servers and mail servers will make some ideal candidates. Keep in mind that it actually depends on your specific circumstance, the decision is yours to make!
  2. Execute your plan: there are three main phases in the migration process. The first phase is legacy data conversion, which converts old data into a new format compatible with the cloud environment. Next, the converted data will be loaded to the new system. Finally, a verification program will be run to ensure data transfer was a success. Due to the inherent complexity of the job, you may want to ask the cloud vendor for support or hire some professional consultants to deal with sudden problems, but the best way to identify potential pitfalls is to perform a trial upgrade before risking your valuable data. Though this is quite time-consuming, it will help avoid issues that are costly to fix once the execution has started.
  3. Provide post-migration support: this step usually involves training to help user familiarize themselves with the new system. Note that the more educated your users are, the less effort you’ll have to put into help desk service later on, so make sure your employees are well-equipped to adapt to the new changes.

Conclusion

Though there’re certain concerns about the reliability of cloud services, the benefits it brings are real and interesting in many aspects. Migrating your business to the cloud might be your most important decision to make today, yet the process is complicated at best, so proceed with caution! A well-prepared plan will significantly reduce the risk and allow you to reap the full reward. Still, dependability and security remain the two major issues for the coming years, but should you be willing to take on those challenges to lift your business to a new high, the cloud is yours for the taking!

Để lại phản hồi

Bảo mật form InfoPath trong Sharepoint

Trong thời đại thông tin hiện nay, vấn đề bảo mật luôn là vấn đề thu hút được sự chú ý của mọi người. Có thể nói, nơi nào có thông tin, nơi đó có nhu cầu bảo mật. Bảo mật bao gồm nhiều cấp độ, từ phần mềm, phần cứng, cho tới con người. Trong bài viết hôm nay, chúng ta sẽ đi vào tìm hiểu một khía cạnh hẹp của bảo mật: bảo vệ thông tin trong form InfoPath chạy trên môi trường SharePoint.

Căn bản về InfoPath

InfoPath là công cụ có trong một số phiên bản của bộ ứng dụng Office, cho phép tạo form nhanh chóng và thuận tiện. InfoPath cung cấp chế độ thiết kế giao diện theo kiểu kéo thả cùng nhiều tính năng như hỗ trợ kiểm tra nhập liệu (data validation) và tùy biến bằng code. Điểm hấp dẫn nhất của InfoPath là người dùng có thể xây dựng các form phức tạp trong một thời gian tương đối ngắn. Form tạo ra có thể chạy trên cả môi trường web và Windows (tùy theo cấu hình lúc thiết kế) và toàn bộ dữ liệu trong form được lưu ở định dạng XML thân thiện với con người.

Với những ưu điểm đó, InfoPath trở thành lựa chọn phổ biến để thiết kế các form nhập liệu cho ứng dụng, đặc biệt là trên môi trường web bởi InfoPath không yêu cầu người thiết kế các kiến thức chuyên sâu về HTML, CSS hay JavaScript. Vì vậy, không bất ngờ gì khi InfoPath được tích hợp trực tiếp vào trong SharePoint, một công nghệ khác của Microsoft để xây dựng các website ở quy mô doanh nghiệp.

SharePoint cung cấp hỗ trợ cho InfoPath thông qua InfoPath Form Service, một dịch vụ cho phép người dùng cuối làm việc với form ngay trên trình duyệt mà không cần cài đặt InfoPath trên máy tính (yêu cầu giấy phép phiên bản Enterprise của SharePoint 2007 hoặc SharePoint Server 2010). Một form template có thể được xuất bản thành một Content Type  của SharePoint và được tái sử dụng bởi nhiều thư viện khác nhau.

Tóm lại, InfoPath kết hợp với SharePoint là một phương pháp để thu thập và lưu trữ thông tin của người dùng. Cũng như mọi phương pháp lưu trữ thông tin khác, sẽ có lúc bạn nhận thấy cần một biện pháp để bảo vệ dữ liệu của mình khỏi những cặp mắt tò mò. Đó chính là trọng tâm của vấn đề mà chúng ta đang tìm hiểu: bảo mật dữ liệu trên form InfoPath như thế nào?

Bảo mật trong SharePoint

Hướng đến đối tượng khách hàng là các doanh nghiệp, SharePoint đã cung cấp một mô hình bảo mật khá hoàn chỉnh mà InfoPath có thể tận dụng. Cơ chế bảo mật này bao gồm việc phân quyền người dùng ở nhiều cấp độ, trong đó phổ biến nhất là ở hai cấp độ: list và item.

Ở cấp độ list, người quản trị site có thể cấp quyền truy xuất list cho các nhóm người dùng xác định. Việc phân quyền có thể thực hiện ngay trên giao diện của SharePoint:

  • Trong SharePoint 2007: Settings – List Settings – Permissions for this list. Click Action – Edit Permissions
  • Trong SharePoint 2010: chọn Tab Library trên Ribbon – Permissions

Hạn chế quyền truy xuất list và chỉ cho phép những người dùng phù hợp thao tác trên list sẽ loại bỏ đáng kể những nguy cơ rò rỉ thông tin. Tuy nhiên trong nhiều trường hợp, bạn sẽ cần khả năng kiểm soát chi tiết hơn những gì mà cơ chế phân quyền ở cấp độ list cung cấp. Một ví dụ điển hình là trong một list chứa các đơn hàng, tất cả user thuộc group Employee đều có thể truy xuất list này để tạo các đơn hàng, nhưng mỗi user chỉ có quyền xóa/thay đổi các đơn hàng do chính mình tạo ra mà thôi. Khi đó, bạn sẽ cần đến khả năng phân quyền cho từng item trong list. Cách đơn giản nhất là tạo một event receiver cho list và override phương thức ItemAdded.

public override void ItemAdded(SPItemEventProperties properties)
{
   base.ItemAdded(properties);

   SPListItem item = properties.ListItem;
   if (!item.HasUniqueRoleAssignments)
      item.BreakRoleInheritance(true);

   // assign permissions here
   …

   item.Update();
}

Có thể thấy là, bằng việc hỗ trợ phân quyền ở nhiều mức độ khác nhau, SharePoint đã góp phần giảm bớt những lo lắng về bảo mật. Dù vậy, đôi lúc chỉ sử dụng những gì có sẵn là không đủ. Khi làm việc với InfoPath, một kịch bản thường gặp là phân quyền truy cập cho từng field trên một form.

Lấy ví dụ là một form chứa thông tin đơn hàng với các field chứa dữ liệu như tên mặt hàng, số lượng, đơn giá. Mọi nhân viên đều có quyền xem đơn hàng, nhưng thông tin về giá cả sẽ chỉ được hiển thị cho một số người dùng đặc biệt. Làm thế nào để hiện thực điều này? Thật không may là SharePoint chỉ hỗ trợ phân quyền đến từng list item, và một form được coi là một list item. Nếu bạn cần phải thao tác với từng field, bạn không có cách nào khác là phải tự thực hiện việc này! Trên thực tế, việc ẩn/hiện các field theo điều kiện không phải là quá khó thực hiện trong InfoPath:

  • Trong InfoPath 2007: right click control -> Properties -> Conditional Formatting -> quy định các điều kiện ẩn/hiện control.
  • Trong InfoPath 2010: right click control -> Rules -> Manage Rules -> New -> Formatting.

Quá dễ dàng, phải không? Nhưng chưa đâu! Nên nhớ rằng mọi dữ liệu của form InfoPath đều được lưu ở dạng XML. Do đó khi bạn ẩn một field nào đó đi thì chẳng qua là nó không được hiển thị ra mà thôi, còn thông tin thì vẫn còn nguyên trong form đấy. Vì vậy chỉ cần người dùng download toàn bộ file gốc về (điều này đặc biệt dễ dàng nếu form được cấu hình để mở trong InfoPath client thay vì mở trên trình duyệt), họ có thể sử dụng một trình soạn thảo văn bản bất kì (như notepad) để đọc toàn bộ những thông tin nhạy cảm. Đương nhiên là bạn có thể cấu hình để không cho phép mở form bằng InfoPath ở phía client, nhưng cách an toàn nhất là mã hóa dữ liệu trong những field này và chỉ cho những người có thẩm quyền giải mã chúng. Thời điểm thích hợp nhất để mã hóa dữ liệu là khi submit form. Để làm việc này, bạn thêm đoạn code sau vào sự kiện Submit của form:

public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
   // other submit logicXPathNavigator xpNav = this.MainDataSource.CreateNavigator()
      .SelectSingleNode(“path to encrypted node”);
   xpNav.SetValue(Encode(xpNav.Value));

   // other submit logic
   …
}

public string Encode(string source)
{
   byte[] binarySource = Encoding.UTF8.GetBytes(source);
   System.Security.Cryptography.SymmetricAlgorithm rijn =
      System.Security.Cryptography.SymmetricAlgorithm.Create();
   MemoryStream ms = new MemoryStream();
   byte[] rgbIV = Encoding.ASCII.GetBytes("initialization vector");
   byte[] key = Encoding.ASCII.GetBytes("key to encrypt/decrypt data");
   CryptoStream cs = new CryptoStream(ms, rijn.CreateEncryptor(key,
      rgbIV), CryptoStreamMode.Write);
   cs.Write(binarySource, 0, binarySource.Length);
   cs.Close();
   return Convert.ToBase64String(ms.ToArray());
}

Tương tự, trong hàm xử lý sự kiện load của form, thêm đoạn code sau để chứng thực người dùng và giải mã dữ liệu:

public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
   // add your authentication logic here// if authenticated, then decrypt data
   if(authenticated)
   {
      XPathNavigator encryptedNode = this.MainDataSource.CreateNavigator()
         .SelectSingleNode(“path to encrypted node”);
      encryptedNode.SetValue(Decode(encryptedNode.Value));
   }
}

private string Decode(string source)
{
   byte[] binarySource = Convert.FromBase64String(source);
   MemoryStream ms = new MemoryStream();
   System.Security.Cryptography.SymmetricAlgorithm rijn =
      System.Security.Cryptography.SymmetricAlgorithm.Create();
   byte[] rgbIV = Encoding.ASCII.GetBytes("initialization vector");
   byte[] key = Encoding.ASCII.GetBytes("key to encrypt/decrypt data");
   CryptoStream cs = new CryptoStream(ms, rijn.CreateDecryptor(key, rgbIV),
      CryptoStreamMode.Write);
   cs.Write(binarySource, 0, binarySource.Length);
   cs.Close();
   return Encoding.UTF8.GetString(ms.ToArray());
}

Cuối cùng, có thể bạn sẽ muốn tăng tính tin cậy cho form bằng cách áp dụng chữ ký điện tử. Bạn có thể tìm thấy các tùy chọn sử dụng chữ ký điện tử trong Form Options -> Digital Signatures. Chi tiết phần này xin dành cho các bạn tự khám phá!

Bài viết đã trình bày tổng quan về một số phương pháp bảo mật với InfoPath chạy trên môi trường SharePoint. Hi vọng những kiến thức trên đây ít nhiều sẽ có ích cho các bạn khi làm việc với InfoPath. Thân chào!

* Tham khảo: Mã hóa dữ liệu với .NET Cryptography

, , , ,

Để lại phản hồi

Follow

Get every new post delivered to your Inbox.