Kamis, 25 Juni 2015

Apa Itu User Authentication ?

Definisi User Authentication

Authentication adalah tindakan mengkonfirmasi kebenaran suatu bagian dari data (datum) atau suatu entity.

User Authentication sendiri berarti melakukan konfirmasi data user yang sebelumnya sudah tersimpan.

Contoh kasus User Authentication

Kemudian muncul pertanyaan bagaimana cara sistem melakukan konfirmasi data (dalam konteks ini data user) ? hal tersebut dapat kita cari pada attribut-attribut pembangun data user sendiri. Berikut gambaran sederhana dari tabel user yang sering digunakan pada suatu sistem

Dari attribut diatas pembaca pasti sudah kenal dengan suatu proses dalam sistem yang berhubungan dengan user authentication ini... yup betul sekali, Form Login merupakan bentuk dari suatu proses user authentication

Berikut penjelasan proses login secara detail:

  • Pengguna memasukan data username dan password.
  • Data dari form ditermia oleh sistem, sistem yang baik melakukan enkripsi data terhadap password yang dimasukan oleh pengguna.
  • Data username dan password(yang sudah ter enkripsi) kemudian dicocokan dengan data yang ada di database.
  • Bila cocok proses authentication sudah ok !
  • Bila tidak cocok dengan data yang terdapat di database, maka sistem akan menolak.

Perkembangan User Authentication

Seiring banyaknya sistem yang berkembang saat ini, dan merujuk dari kesamaan tiap sistem yang mengharuskan penggunanya untuk melakukan authentication disetiap pengaksesannya maka dirancanglah Single Sign On (SSO)

Single Sign On (SSO) merupakan cara pengambilan properti data dari sistem yang lain, dengan menggunakan data tersebut pengguna tidak memerlukan login kembali untuk melakukan aktifitas di sistem yang berbeda, berikut contoh penerapan sistem Single Sign On

Dengan diterapkannya single sign on terdapat beberapa keuntungan
Dari segi pengguna:

  1. Pengguna tidak lagi melakukan registrasi data ditiap sistem yang akan digunakannya.
  2. Pengguna tidak perlu mengingat banyak mengenai username dan passowrd yang ia gunakan pada setiap sistem.
Dari penyedia sistem:
  1. Jika dilihat dari segi data yang didapat dari sistem single sign on, ternyata lebih lengkap dari sistem registrasi yang lazim dibuat, data-data seperti hari kelahiran, gender, nama lengkap, lokasi, hobby, ketertarikan, photo pengguna (avatar), dan lain sebagainya yang disediakan oleh beberapa sosial media yang mendukung single sign on ini
  2. Dari keuntungan nomor 1 tentunya sebagai pihak penyedia sistem dapat melakukan banyak aksi yang berhubungan dengan menjaga loyalitas para penggunanya.
  3. Keuntungan lain yaitu penyedia sistem dapat mengetahui bahwa pengguna sudah ter-verifikasi pada sistem lain, karena sering kali pengguna login/registrasi menggunakan email atau identitas palsu

Penerapan User Authentication pada suatu sistem dengan bahasa pemrograman ruby on rails memiliki banyak cara. Pada posting selanjutnya kita akan membahas bagaimana cara menerapkan User Authentication dengan menggunakan gems devise ruby on rails

Rabu, 24 Juni 2015

Instalasi beberapa versi Ruby dengan RVM atau RBENV


Persamaan dan Perbedaan RVM dan RBENV

Kesamaan :
  • Dapat membantu untuk melakukan instalasi ruby dengan versi yang berbeda-beda.
  • Instalisasi lebih mudah dibandingkan dengan cara yang lain (compile source code).
Perbedaan :
  • Pada penggunaan RVM ruby gems terkadang terinstall dua kali atau lebih.
  • Penggunaan bash sebelum menjalankan RVM
  • RVM handal di fitur-fiturnya
  • RBENV lebih ringan
Perhatian :
RVM dan RBENV tidak kompetibel satu sama lain, jadi harus memilih ingin menggunakan RVM atau RBENV.

Menggunakan RVM (Ruby Version Manager)

Persiapan
Pertama-tama pastikan sistem linux anda memiliki paket aplikasi berikut :
  • bash versi 4.1 atau lebih baru
  • Curl
  • Git Versi 1.7 atau lebih baru
  • Patch
Untuk mengetahui sudah tersedia atau belum ikuti langkah berikut ini :
  • Bash
  • $ bash --version
  • Curl
  • $ curl --version
  • Git
  • $ git --version
  • Patch
  • $ patch --version
jika ada paket aplikasi yang belum terinstall atau tidak memenuhi syarat versi minimal maka perlu di-update atau install versi yang lebih baru dengan cara update repository paket aplikasi dan dilanjutkan dengan menginstall paket aplikasi yang diperlukan
CentOS/RH/Fedora/AMI
  $ sudo yum update
  $ sudo yum install -y bash curl git patch
Ubuntu/Debian
  $ sudo apt-get update
  $ sudo apt-get install bash curl git-core patch
Gentoo
  $ sudo emerge --sync
  $ sudo emerge bash curl git patch

Install RVM

Berikut merupakan tahapan dari instalasi RVM, silakan buka terminal anda dan ikuti langkah-lankah berikut :
  • Install paket-paket yang berhubungan dengan RVM
  • $ sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
  • Setup git agar dapat melakukan download dan install RVM
  • $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
  • Download RVM melalui curl command:
  • $ curl -sSL https://rvm.io/mpapis.asc | gpg --import -
    $ curl -L https://get.rvm.io | bash -s stable
  • Kemudian Load RVM ke shell
  • $ source ~/.rvm/scripts/rvm
  • Agar RVM dapat berjalan dengan baik diperlukan beberapa dependency paket. Untuk mengetahui paket apa saja yang diperlukan maka dapat dilihat dengan mengetikan command line berikut pada terminal anda :
  • $ rvm requirements
    Berikut merupakan hasil dari perintah diatas (Contoh diambil dari sistem berbasis Gentoo linux)

    Lihat pada bagian
    Additional Dependencies:
    # For Ruby / Ruby HEAD (MRI, Rubinius,& REE), install the following: 
    ruby|ruby-head: emerge libiconv
    readline zlib openssl curl git libyaml sqlite libxslt libtool gcc
    autoconf automake bison m4
  • Gunakan rvmsudo untuk melakukan install paket depedency yang dibutuhkan oleh RVM untuk contoh diatas dapat melakukan command sebagai berikut
  • $ rvmsudo emerge libiconv readline zlib
    openssl curl git libyaml sqlite libxslt libtool gcc autoconf automake bison m4

Install Ruby - RVM

  • Untuk mengetahui versi ruby yang dapat kita install dapat menggunakan perintah berikut
  • $ rvm list known
  • Menginstall versi ruby tertentu (pada contoh ini kami menggunakan versi 2.2.2)
  • $ rvm install 2.2.2
  • Menentukan default ruby yang akan diguanak
  • $ rvm use 2.2.2 --default
  • Untuk melihat versi ruby yang sudah terinstall
  • rvm list

Upgrade/update RVM

$ rvm update

Saran pada penggunaan RVM

RVM dapat digunakan setelah mengeksekusi bash seperti berikut
$ /bin/bash --login
Namun beberapa variant linux sudah membuat bash command default ketika system berjalan, untuk yang masih memerlukan eksekusi command diatas berikut saran dari kami
  • Install gnome terminal
  • Untuk melakukan setup terminal klik Edit > Profile Preferences > masuk ke tab Title and Command
  • Centang pada pilihan Run command as login shell, seperti gambar berikut

Menggunakan RBENV

Persiapan

Install paket yang dibutuhkan untuk compile ruby
CentOS/Fedora/RH/AMI
$ sudo yum update
$ sudo yum install -y gcc-c++ patch readline readline-devel curl git zlib zlib-devel libyaml-devel 
libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
Ubuntu/Debian
$sudo apt-get install build-essential
openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev
libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev
autoconf libc6-dev ncurses-dev automake libtool bison subversion
Gentoo
sudo emerge libiconv readline zlib
openssl curl git libyaml sqlite libxslt libtool gcc autoconf automake
bison m4

Install RBENV

Ikuti command dibawah ini untuk install RBENV pada linux anda :
cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

Install Ruby menggunakan ruby-build

Install ruby-build
rbenv install 2.2.2
rbenv global 2.2.2
ruby -v

Refresh/rehash instalasi ruby atau gem

Lakukan rbenv rehash setelah install versi ruby baru atau setelah install gem baru dengan menjalankan perintah
rbenv rehash
update rubygems
Melihat versi ruby yang sudah terinstall
rbenv versions
Menjadikan ruby default
rbenv global 2.2.2
Sumber: