2012-08-15

OAuth 2 гэж юу вэ

Disclosure: This blog post is a part of O'Reilly Blogger Review program. I really like the idea of OAuth 2 and it's essence in today's connected world. It'll introduce you ways and technologies to develop application that can access someone's information on Facebook, Twitter or some other web platforms, and develop platform that share your users info. To know more about OAuth 2 you can refer to Getting Started with OAuth 2.0 book. But I'll continue this post in mongolian language.
OAuth 2 гэж юу болох, ямар ашиг тустай талаар Getting Started with OAuth 2.0 номноос олж мэдсэн зүйлээ та бүхэнтэй хуваалцах гэсэн юм. Энэ нь O'Reilly Blogger Review хөтөлбөрийн хүрээнд бичиж буй блог болно.

Өнөөдөр мэдээллийн технологи, интернэтгүйгээр амьдралыг төсөөлөхийн аргагүй болсон цаг. Гэтэл олон төрлийн вэб сайт, програм гарах бүрт хэрэглэгчийн бүртгэл, нууц үг гэх мэт бэрхшээл улам бүр хүндрэл даамжирч байна. Олон олон хэрэглэгчийн нэр, бүртгэл, нууц үгийг цээцлэх нь ямар бэрх болохыг хүн бүр л мэдэж байгаа. Энэ асуудлын шийдэл нь OAuth 2 юм.
Нөгөө талаасаа OAuth 2-ыг та бид өдөр бүр ашиглаж байдгаа мэдэх үү? Facebook, Twitter болон бусад олон интернэтийн вэбүүдэд нэвтрэх бүрт ашиглаж байдаг боловч бид бараг л мэддэггүй эсвэл анзаардаггүй. Тэгээд яг яаж ашигладаг гэж үү?  Та аль нэг вэбд бүртгүүлэлгүйгээр Facebook эсвэл Twitter хаягаараа шууд орж байсан биз дээ, тэрний чинь ард энэ л технологи ажиллаж байгаа.

Асуудал. Бид аль нэг програмд өөрийн интернэт дэх мэдээлэлд хандах эрх өгөх хэрэгтэй боллоо гэж бодъё, үүнийг хэрхэн хийх вэ? Хамгийн эхэнд санаанд орж буй нь нууц үгээ оруулж өгөх. Энэ тохиолдолд тухайн програмд ямар нэг хязгаарлалт гэж үгүй болж таны бүх мэдээлэлд хандах эрхтэй болно. Мөн олон програмд ингэж эрх өгсөн байж байгаад зөвхөн нэгийнх нь эрхийг цуцлах хэрэгтэй бол яах вэ? Нууц үгээ солих юм бол бүгд л хандах эрхгүй болно.

Энгийнээр бол танай хөрш танайхаас ус авдаг гэж бодъё. Нууц үгээ өгч байгаа нь та гэрийн түлхүүрээ хөршдөө үлдээж буйтай ижил юм. Хөрш чинь орж ирээд ус авахаас гадна өөр юм үзэхгүй, оролдохгүй гэдэгт найдах л хэрэгтэй болно. Олон хөршдөө түлхүүрээ өгөх юм бол асуудал бүр л хүндэрнэ. Муугаар бодож ямар нэг зүйл алга болох эсвэл асуудал үүсэхэд яг хэн хийсэн нь тодорхой бус. Тэгэхээр нууц үгээ эсвэл гэрийн түлхүүрээ үлдээх нь тийм ч оновчтой арга биш болж таарах нь.

Шийдэл. Танай хөршүүд танайхаас тус бүрийн хоолойгоор ус авдаг байвал тэд өөр ямар нэг юм оролдохгүй, асуудал үүсгэхгүй зөвхөн ус авна гэдэгт та бүрэн итгэлтэй байж болно. Бүр хэн ямар хэмжээтэй авч байгааг ч мэдэх боломжтой. Тийм биз? Дургүй чинь хүрвэл аль нэг хоолойг нь хааж орхино, бусдад нь нөлөөлөхгүй. OAuth 2 маань яг л ийм зүйлийг маш хялбар хийх боломжийг олгодог юм.

Та аль нэг програмд өөрийн Facebook дэх мэдээлэл рүү хандах эрх өгөх хэрэгтэй болъё гэж бодъё. Жишээ нь, аль нэг вэбд бүртгүүлэлгүй шууд Facebook эрхээрээ нэвтрэх ч юм уу. Энэ үед тухайн програм маань Facebook рүү хандаж таны ямар ямар мэдээлэл рүү хандах эрх авахыг хүсч байгаа илэрхийлэх бөгөөд та заавал зөвшөөрөл өгч байж цааш үргэлжилнэ. Нууц үг оруулах үед энэ нь тухайн програм харагдахгүй зөвхөн Facebook харах боломжтой ба зөвшөөрсөн тохиолдолд Facebook ганц тухайн програмд зориулсан нууцлалын түлхүүр (token) үүсгэж өгнө. Түлхүүр нь тодорхой хугацааны (30-60 хоног) дараа ажиллахгүй болох ба та дахин зөвшөөрөл өгөх хэрэгтэй байдаг. Таны мэдээлэл рүү хандах бүрт Facebook энэ түлхүүрийг шалгаж өмнө олгосон эрхийн дагуу мэдээллүүдийг гаргаж өгнө. Энэ үед хэний мэдээлэлд, хэзээ, ямар програм хандсан талаар Facebook маш тодорхой мэдээллүүдийг хадгалж үлддэг.

Facebook нь ямар програмууд ямар хандах эрхтэй талаар мэдээллийг хадгалж байдаг бөгөөд Account Settings -> Apps руу орж жагсаалтыг харж болно. Энэ жагсаалтаас та өмнө олгосон түлхүүрийг устгах буюу цуцалж болох ба үүнээс хойш тухайн програм таны мэдээлэл рүү хандах эрхгүй болдог юм.

Энэ блогийн зорилго бол OAuth 2 гээч зүйлийн талаар маш ерөнхий ойлголт өгөх юм. Илүү дэлгэрэнгүй мэдэхийг хүсвэл Getting Started with OAuth 2 ном, Facebook Authentication зэрэг материалуудыг үзнэ үү.

4 comments:

Unknown said...

Sonirholtoi

Unknown said...

Sonirholtoi

Lincoln Madison said...
This comment has been removed by the author.
mg said...

Хэрэгтэй мэдээлэл байна. Баярлалаа.