Mengenal Oauth: Protokol Login Yang Populer – Sebagai pengguna internet terdaftar, atau pengguna yang sehari-hari menggunakan aplikasi yang bermigrasi ke cloud (baca: software & platform as a service), memang tidak menyenangkan mengingat kombinasi username dan password. Di sisi lain, ancaman peretasan yang selalu ada membuat pengguna harus membuat kata sandi yang unik dan kuat untuk setiap situs web yang mereka gunakan.
Sistem masuk tunggal (disingkat SSO) adalah solusi baru yang didukung oleh berbagai penyedia layanan internet. Pada artikel kali ini penulis akan mencoba menjelaskan dua standar SSO yang paling banyak mendapat dukungan saat ini.
Tidak yakin bagaimana cara kerja Sistem Masuk Tunggal? Pembaca mungkin telah menggunakannya tanpa sadar. Misalnya saja situs detik.com pada gambar di bawah ini yang memiliki opsi untuk login atau mendaftar dengan akun Facebook atau Google.
Dengan kata lain, dalam hal pengalaman pengguna, kita dapat menggunakan akun yang sudah kita miliki untuk mengautentikasi tanpa membuat nama pengguna atau kata sandi baru untuk menuliskannya.
Di balik layar, ada tiga pihak yang terlibat dalam pertukaran informasi dan proses penelitian di atas. Secara umum dapat dijelaskan sebagai berikut:
Teknologi SSO yang paling umum saat ini adalah SAML dan Open ID. Dimana Open ID digunakan oleh layanan yang dapat diakses oleh pengguna umum seperti contoh di atas. Pada saat yang sama, SAML sering digunakan oleh pengguna di perusahaan/bisnis. Apa bedanya?
Perusahaan ini memiliki standar keamanan yang sangat tinggi dalam hal analitik, karena proses analitik tidak dapat dialihdayakan ke penyedia identitas pihak ketiga. Selain inspeksi, perusahaan juga memiliki tingkat izin yang berbeda untuk setiap pengguna, dan tingkat izin yang berbeda untuk setiap aplikasi.
Jelas dari penjelasan di atas kita dapat memahami bahwa Open ID dipilih bukan karena sifatnya yang terbuka seperti namanya. Namun hal ini juga menjadi topik yang menarik, yaitu bagaimana SAML akan mendukung fungsi autentikasi dan otorisasi yang dibutuhkan oleh perusahaan enterprise?
Sebelum melanjutkan pembahasan kita, bagi pembaca yang belum familiar dengan autentikasi dan otorisasi pada sistem perangkat lunak, ada baiknya terlebih dahulu menyelami artikel Teknologi Penyair berikut ini: RBAC ( Role Base Access Control) dan izin terdistribusi.
(deklarator) dalam format XML. Diperkenalkan pada tahun 2001, mendapat pembaruan besar pada tahun 2005 hingga saat ini yaitu SAML 2.0.
SAML digunakan di banyak tempat sebagai standar platform perangkat lunak/layanan perusahaan (SaaS/PaaS), seperti: Salesforce, Box, Jira, ServiceNow, Github, Workday, Cisco Meraki.
Caranya kita bisa melakukan pengecekan proses autentikasi SAML dengan menginstall ekstensi SAML tracer pada browser kita, contoh ekstensi yang digunakan penulis ada disini: SAML-Tracer.
Di bawah ini adalah hasil pelacakan saat penulis login ke aplikasi Salesforce yang mengalihkan halaman ke penyedia fitur Okta.
SAML menggunakan sertifikat tanda tangan digital untuk autentikasi. Seperti yang terlihat pada gambar di atas, otoritas sertifikat X.509 dikirim untuk ditinjau.
Untuk memulai, saya sarankan terlebih dahulu membaca Ikhtisar Teknologi SAML di sini: Ikhtisar Teknologi SAML. Anda dapat melanjutkan untuk memilih tumpukan sistem yang sesuai untuk aplikasi yang Anda kembangkan. Di bawah ini beberapa opsi terbuka yang dapat Anda gunakan dari ulasan penulis.
Untuk memilih penyedia identitas, Anda bisa memulainya dengan memilahnya sesuai kebutuhan dan anggaran Anda. Berdasarkan pengalaman penulis, berikut rekomendasi penyedia layanan identitas yang pernah penulis gunakan. Perlu diketahui bahwa layanan ini merupakan layanan berbayar (Idaas).
2. Ping Identity: Kaya akan fitur yang dibutuhkan perusahaan, seperti login di Active Directory, SCIM
Buka ID dll. Ping Identity juga memiliki direktori fungsional lain: Direktori Ping. Namun jika menyangkut manajemen proyek, dan
3. Azure Directory: Penyedia identitas dari Microsoft. Terintegrasi dengan lingkungan Microsoft (tentu saja), seperti suite Office 365 (Exchange, Sharepoint, One Drive, OneNote, Teams, dll), Active Directory (AD/ADFS), Azure Public Cloud/Stack/Hybrid dan banyak lagi lainnya. . Dari segi fungsionalitas dan fitur memenuhi kebutuhan perusahaan.
Bagi pembaca yang ingin membuat server aplikasi manajemen identitas berbasis SAML open source, berikut ini mungkin bisa menjadi pilihan: WSO2, Keycloak.
Setelah membahas SSO SAML, kami memulai dengan mempelajari proses autentikasi, membuat aplikasi web berkemampuan SAML, dan memilih penyedia identitas. Kami dapat menyatakan kesimpulan berikut:
Open ID adalah standar terbuka yang diperkenalkan oleh Open ID Foundation. Diperkenalkan pada tahun 2006, pada bulan Februari 2014, Open ID generasi ketiga yang disebut Open ID Connect (OIDC) diluncurkan. Pembaruan ini menambahkan lapisan autentikasi berdasarkan otorisasi OAuth 2.0, yang dapat digunakan untuk bertukar informasi pengguna dalam format JSON menggunakan RESTful HTTP API.
Pada Maret 2016, diperkirakan lebih dari 1 miliar akun Open ID digunakan untuk mengidentifikasi situs web. Lihat saja penyedia identitas terkenal seperti Google dan Facebook, kami melihatnya di setiap situs populer di opsi pendaftaran dan halaman login.
Untuk mengetahui lebih baik dan segera melakukannya, kita dapat melakukan debugging sederhana pada analisis OIDC menggunakan alat debugging yang dibuat oleh pengembang model untuk membantu kita mempelajari: OpenID Connect Debugger, OpenID Connect Playground, Contoh OKTA OIDC.
Hal ini menunjukkan kepada mereka yang memahami autentikasi OAuth2 bahwa alur autentikasi OIDC sangat mirip dengan OAuth2. Ya, seperti yang penulis katakan di awal, hal ini karena OIDC berjalan pada protokol OAuth2.
OAuth adalah protokol untuk memberikan akses kepada orang atau biasa kita sebut agen. Namun, hak akses yang diberikan tidak menjamin bahwa penerima hibah adalah pengguna sebenarnya. OIDC memberikan
Misalnya dari contoh di atas, Budi memperbolehkan Agus masuk sebagai Toni, padahal keduanya bukan Toni. Hal ini menyebabkan masalah dengan identifikasi akun. OIDC mendefinisikan simbol ID yang mengidentifikasi pengguna sebagai berikut:
Berikut adalah contoh konten ID Token Payload yang berisi data pengguna yang dikodekan dengan web key JSON.
Pertanyaan yang muncul, menurut versinya: Open ID, apakah ini berarti informasi pengguna di situs seperti Facebook dan Google terbuka untuk situs penyedia layanan yang menerapkan verifikasi Open ID? Jawabannya adalah spesifikasi Open ID hanya memberikan informasi yang disetujui pengguna saat menggunakan Open ID, yang disebut
Untuk menginstal OIDC sebagai pelanggan, Anda bisa memulainya dengan mempelajari dan memutuskan sistem OIDC mana yang sesuai dengan kebutuhan aplikasi yang sedang dikembangkan. Saya telah menyertakan dokumentasi teknis sumber terbuka: Deskripsi tautan Open ID.
Karena popularitasnya, OIDC memiliki banyak perpustakaan sumber pendukung untuk berbagai bahasa pemrograman. Perpustakaan yang telah diakreditasi oleh industri open source dapat ditemukan di sini: Perpustakaan Terakreditasi.
Sebagai pengembang aplikasi, bagaimana cara memilih penyedia identitas berbasis ID untuk aplikasi saya? Atau apakah saya lebih baik membuat atau membuat aplikasi yang menghadirkan identitas saya?
Pertanyaan di atas dapat diulang jika diperlukan. Untuk memudahkan pengguna umum mengakses aplikasi kami, Anda dapat memilih penyedia Open ID seperti Facebook, Google, dan Microsoft.
Berbeda jika SSO diperlukan untuk mengautentikasi dalam “keluarga” aplikasi yang Anda miliki, misalnya: Administrator X memiliki keluarga aplikasi Y dan Z yang memiliki database pengguna berbeda dan fungsi daya berbeda, sehingga Z.
Untuk kasus di atas, kita dapat menghubungkan aplikasi kita dengan penyedia identitas pihak ketiga, seperti penyedia identitas penulis yang disebutkan dalam artikel SAML pada artikel ini. Karena dari pantauan penulis, penyedia identitas mendukung SAML dan Open ID secara bersamaan.
Namun jika ingin membuat penyedia open source (di rumah), ada banyak perpustakaan open source yang bisa kita gunakan seperti: perpustakaan open source. Dengan perannya yang kritis, keandalan dan keamanan aplikasi penyedia identitas yang dikembangkan harus sangat baik.
Akhirnya, kami sampai pada kesimpulan setelah mendalami Open ID mulai dari analisis alur, debugging, dan implementasi OIDC dalam proses pengumpulan kami.
Dalam kesederhanaan penulis, Open ID Connect “merekonstruksi” protokol SAML menggunakan basis protokol OAuth2 (format JSON dan tanda tangan berbasis token). Serta dukungan penelitian dan aplikasi mobile, serta membukanya untuk pengguna umum.
Dan dukungan platform aplikasi/layanan yang ada (baca: 97% aplikasi SaaS mendukung SSO berbasis SAML). Namun bukan berarti hal ini akan bertahan lama, seiring dengan berkembangnya standar Open ID. Open ID kecil kemungkinannya akan mengubah status SAML sebagai SSO standar di perusahaan.
Dari sisi penyedia identitas, Penyedia Identitas Perusahaan mendukung standar SAML dan SSO Open ID secara bersamaan dan menawarkan fitur berbeda untuk kebutuhan pengguna.
Hal. Jika teman-teman menyukai berita seperti ini, berlangganan buletin kami dan dapatkan informasi tentang berita terbaru langsung ke kotak masuk Anda. Laravel Sanctum adalah paket yang dikembangkan oleh Laravel untuk mengelola identitas pengguna melalui API! Paket ini dirancang untuk memberikan solusi analitik yang sederhana dan ringan, terutama untuk Aplikasi Satu Halaman (SPA), aplikasi seluler, dan API sederhana. Pada artikel kali ini kita akan membahas fitur, manfaat dan cara mengimplementasikan Laravel Sanctum pada aplikasi web modern.
Laravel Sanctum adalah paket analisis yang memungkinkan aplikasi mengelola ikon dengan mudah dan efisien. Sanctum menawarkan dua metode autentikasi utama: token API pribadi dan autentikasi berbasis cookie untuk SPA. Cara pertama memungkinkan setiap pengguna aplikasi membuat beberapa token API yang dapat digunakan untuk mengakses API menggunakan izin tertentu. Metode kedua memanfaatkan fungsionalitas pemindaian cookie bawaan Laravel, yang aman dan mudah diterapkan dalam Aplikasi Halaman Tunggal (SPA).
Gunakan token untuk mengelola identitas pengguna. Dalam prosesnya