cari

Daftar tunggal (SSO) dijelaskan

Kunci Takeaways

    Single Sign-On (SSO) adalah proses yang membolehkan pengguna mengakses pelbagai perkhidmatan selepas mengesahkan identiti mereka sekali sahaja, yang menghapuskan keperluan untuk mengulangi identiti berulang kali melalui kata laluan atau sistem lain.
  • Melaksanakan SSO boleh memberi manfaat apabila membangunkan produk yang berinteraksi dengan perkhidmatan lain atau apabila menggunakan perkhidmatan pihak ketiga, kerana ia memastikan pengguna tidak perlu log masuk secara berasingan ke setiap perkhidmatan.
  • Walaupun proses SSO sedikit berbeza di seluruh perkhidmatan yang berbeza, idea asas tetap sama: menghasilkan token dan mengesahkannya. Langkah-langkah keselamatan yang kuat, seperti pengesahan multi-faktor dan kemas kini kata laluan biasa, harus dilaksanakan untuk mengurangkan risiko yang berkaitan dengan SSO.
  • Apabila anda membangunkan produk untuk orang ramai, sangat jarang anda akan menghasilkan produk yang benar -benar berdiri sendiri yang tidak berinteraksi dengan perkhidmatan lain. Apabila anda menggunakan perkhidmatan pihak ketiga, pengesahan pengguna adalah tugas yang agak sukar, kerana aplikasi yang berbeza mempunyai mekanisme yang berbeza untuk mengesahkan pengguna. Salah satu cara untuk menyelesaikan masalah ini adalah melalui tanda tunggal, atau SSO.

Tanda tunggal (SSO) adalah proses yang membenarkan pengguna mengakses pelbagai perkhidmatan selepas melalui pengesahan pengguna (iaitu pembalakan) hanya sekali. Ini melibatkan pengesahan ke dalam semua perkhidmatan yang diberikan oleh pengguna kepada, selepas masuk ke dalam perkhidmatan utama. Antara faedah lain, SSO mengelakkan tugas yang membosankan untuk mengesahkan identiti berulang kali melalui kata laluan atau sistem pengesahan lain.

mari kita lihat SSO dengan lebih terperinci dan kami akan menggunakan perkhidmatan yang sangat terkenal untuk menunjukkan kegunaan dan faedahnya.

Proses Pengesahan

Proses asas SSO adalah seperti berikut:

Langkah pertama adalah log masuk ke perkhidmatan utama (Facebook atau Google, misalnya).
  • Apabila anda melawat perkhidmatan baru, ia mengarahkan anda ke perkhidmatan asal (atau ibu bapa) untuk memeriksa sama ada anda log masuk pada yang satu.
  • token OTP (satu kali kata laluan) dikembalikan.
  • Token OTP kemudiannya disahkan oleh perkhidmatan baru dari pelayan ibu bapa, dan hanya selepas pengesahan yang berjaya adalah entri yang diberikan pengguna.
  • Walaupun membuat API untuk SSO adalah tugas yang membosankan, terutamanya dalam mengendalikan keselamatan, pelaksanaan adalah tugas yang agak mudah!

Contoh yang baik dari penggunaan SSO adalah dalam perkhidmatan Google. Anda hanya perlu log masuk ke satu akaun Google utama untuk mengakses perkhidmatan yang berbeza seperti YouTube, Gmail, Google, Google Analytics, dan banyak lagi.

Apabila anda membina produk anda sendiri, anda perlu memastikan bahawa semua komponennya menggunakan pengesahan yang sama. Ini mudah dilakukan apabila semua perkhidmatan anda terhad kepada asas kod anda sendiri. Walau bagaimanapun, dengan perkhidmatan yang popular seperti Sistem Komen Disqus dan Freshdesk untuk pengurusan hubungan pelanggan, adalah idea yang baik untuk menggunakannya daripada membuat anda sendiri dari awal.

tetapi masalah timbul dengan penggunaan perkhidmatan pihak ketiga tersebut. Oleh kerana kod mereka dihoskan di pelayan masing -masing, pengguna perlu log masuk secara eksplisit pada perkhidmatan mereka walaupun mereka log masuk ke laman web anda. Penyelesaiannya, seperti yang disebutkan, adalah pelaksanaan SSO.

Sebaik -baiknya, anda disediakan sepasang kunci - awam dan swasta. Anda menjana token untuk pengguna log masuk dan menghantarnya ke perkhidmatan bersama dengan kunci awam anda untuk pengesahan. Setelah pengesahan, pengguna secara automatik log masuk ke perkhidmatan. Untuk memahami ini dengan lebih baik, mari kita gunakan contoh sebenar.

disqus sso

Disqus adalah perkhidmatan hosting komen yang popular untuk laman web, yang menyediakan beban ciri seperti integrasi rangkaian sosial, alat kesederhanaan, analisis, dan juga keupayaan untuk mengeksport komen. Ia bermula sebagai permulaan ycombinator dan telah berkembang menjadi salah satu laman web yang paling popular di dunia!

Oleh kerana sistem komen disqus tertanam ke dalam halaman anda, adalah penting bahawa pengguna tidak perlu log masuk untuk kali kedua dalam Disqus jika dia sudah log masuk di laman web anda. Disqus mempunyai API dengan dokumentasi yang luas mengenai cara mengintegrasikan SSO.

Anda mula -mula menjana kunci yang dipanggil REMOTE_AUTH_S3 untuk pengguna log masuk menggunakan kekunci API disqus peribadi dan awam anda. Anda diberikan kunci awam dan peribadi apabila anda mendaftarkan SSO sebagai tambahan percuma dalam Disqus.

Anda lulus maklumat pengguna (ID, nama pengguna, dan e -mel) kepada Disqus untuk pengesahan sebagai JSON. Anda menjana mesej yang perlu anda gunakan semasa memberikan sistem DISQUS pada halaman anda. Untuk memahaminya dengan lebih baik, marilah kita lihat contoh yang ditulis dalam Python.

Contoh kod dalam beberapa bahasa yang popular seperti PHP, Ruby, dan Python disediakan oleh Disqus pada GitHub.

Menjana mesej

Contoh kod python (terdapat di GitHub untuk log masuk pengguna di laman web anda adalah seperti berikut.

<span>import base64
</span><span>import hashlib
</span><span>import hmac
</span><span>import simplejson
</span><span>import time
</span>
DISQUS_SECRET_KEY <span>= '123456'
</span>DISQUS_PUBLIC_KEY <span>= 'abcdef'
</span>
<span>def get_disqus_sso(user):
</span>    <span># create a JSON packet of our data attributes
</span>    data <span>= simplejson.dumps({
</span>        <span>'id': user['id'],
</span>        <span>'username': user['username'],
</span>        <span>'email': user['email'],
</span>    <span>})
</span>    <span># encode the data to base64
</span>    message <span>= base64.b64encode(data)
</span>    <span># generate a timestamp for signing the message
</span>    timestamp <span>= int(time.time())
</span>    <span># generate our hmac signature
</span>    sig <span>= hmac.HMAC(DISQUS_SECRET_KEY, '%s %s' % (message, timestamp), hashlib.sha1).hexdigest()
</span>
<span># return a script tag to insert the sso message
</span>    <span>return """<script type="text/javascript">
</script></span><span>    var disqus_config = function() {
</span><span>        this.page.remote_auth_s3 = "%(message)s %(sig)s %(timestamp)s";
</span><span>        this.page.api_key = "%(pub_key)s";
</span><span>    }
</span><span>    """ % dict(
</span>        message<span>=message,
</span>        timestamp<span>=timestamp,
</span>        sig<span>=sig,
</span>        pub_key<span>=DISQUS_PUBLIC_KEY,
</span>    <span>)</span>
Inisialisasi Comments Disqus

Anda kemudian menghantar token yang dihasilkan ini, bersama -sama dengan kunci awam anda kepada Disqus dalam permintaan JavaScript. Sekiranya pengesahan disahkan, sistem komen yang dihasilkan mempunyai pengguna yang sudah log masuk. Jika anda menghadapi masalah, anda boleh meminta bantuan dalam pemaju disqus Google Group.

kita dapat melihat pelaksanaan SSO di Blog Bowl, yang merupakan direktori blog yang dibangunkan di Python/Django. Sekiranya anda log masuk ke laman web, anda perlu dilog masuk apabila sistem komen disqus diberikan. Dalam contoh ini, objek orang menyimpan ID (yang unik untuk setiap orang di laman web ini), e -mel, dan pen_name. Mesej dihasilkan seperti yang ditunjukkan di bawah.

<span>import base64
</span><span>import hashlib
</span><span>import hmac
</span><span>import simplejson
</span><span>import time
</span>
DISQUS_SECRET_KEY <span>= '123456'
</span>DISQUS_PUBLIC_KEY <span>= 'abcdef'
</span>
<span>def get_disqus_sso(user):
</span>    <span># create a JSON packet of our data attributes
</span>    data <span>= simplejson.dumps({
</span>        <span>'id': user['id'],
</span>        <span>'username': user['username'],
</span>        <span>'email': user['email'],
</span>    <span>})
</span>    <span># encode the data to base64
</span>    message <span>= base64.b64encode(data)
</span>    <span># generate a timestamp for signing the message
</span>    timestamp <span>= int(time.time())
</span>    <span># generate our hmac signature
</span>    sig <span>= hmac.HMAC(DISQUS_SECRET_KEY, '%s %s' % (message, timestamp), hashlib.sha1).hexdigest()
</span>
<span># return a script tag to insert the sso message
</span>    <span>return """<script type="text/javascript">
</script></span><span>    var disqus_config = function() {
</span><span>        this.page.remote_auth_s3 = "%(message)s %(sig)s %(timestamp)s";
</span><span>        this.page.api_key = "%(pub_key)s";
</span><span>    }
</span><span>    """ % dict(
</span>        message<span>=message,
</span>        timestamp<span>=timestamp,
</span>        sig<span>=sig,
</span>        pub_key<span>=DISQUS_PUBLIC_KEY,
</span>    <span>)</span>

Di hujung depan, anda hanya mencetak pembolehubah ini untuk melaksanakan skrip. Untuk demo secara langsung, anda boleh melawat siaran ini di Blog Bowl dan periksa komen yang diberikan di bahagian bawah. Sememangnya, anda tidak akan dilog masuk.

Daftar tunggal (SSO) dijelaskan

Seterusnya, log masuk ke Blog Bowl, lawati jawatan yang sama sekali lagi (anda perlu log masuk untuk melihat kesannya). Perhatikan bahawa anda log masuk ke sistem komen di bawah.

Daftar tunggal (SSO) dijelaskan Satu lagi ciri menarik yang disediakan oleh Blog Bowl adalah tidak mahu namanya disiarkan semasa menyiarkan kandungan (seperti siaran ini). Fikirkan keadaan apabila anda mahu pengguna menyiarkan balasan kepada komen mengenai Disqus sebagai pengguna tanpa nama (seperti di Quora). Kami mengambil jalan mudah dan melambangkan sejumlah besar ke ID. Untuk mengaitkan e -mel yang unik untuk pengguna (supaya ia tidak muncul bersama dengan komen lain oleh pengguna), kami juga menghasilkan e -mel yang unik. Ini menyimpan komen tanpa nama anda bersama -sama, tetapi tidak menggabungkannya dengan profil asal anda atau komen tanpa nama oleh pengguna lain.

dan inilah kod: Daftar tunggal (SSO) dijelaskan

Kesimpulan

sso <span>= get_disqus_sso({ 
</span>    <span>'id': person.id, 
</span>    <span>'email': person.user.email, 
</span>    <span>'username': person.pen_name 
</span><span>})</span>
Walaupun proses SSO untuk perkhidmatan yang berbeza sedikit berbeza, idea asas di belakangnya adalah sama - menghasilkan token dan mengesahkannya! Saya harap siaran ini telah membantu anda mendapatkan gambaran tentang bagaimana aplikasi mengintegrasikan SSO dan mungkin ini akan membantu anda melaksanakan SSO sendiri.

Jika anda mempunyai pembetulan, soalan, atau mempunyai pengalaman anda sendiri untuk berkongsi dengan SSO, jangan ragu untuk memberi komen.

Soalan Lazim mengenai Single Sign-On (SSO)

Apakah tujuan utama Single Sign-On (SSO)? dengan satu set kelayakan log masuk. Ini menghapuskan keperluan untuk mengingati pelbagai nama pengguna dan kata laluan, dengan itu meningkatkan kemudahan dan produktiviti pengguna. SSO juga meningkatkan keselamatan dengan mengurangkan peluang salah urus kata laluan dan akses yang tidak dibenarkan.

Bagaimanakah Single Sign-On (SSO) berfungsi? SSO berfungsi dengan mewujudkan hubungan yang dipercayai antara pelbagai aplikasi atau laman web. Apabila pengguna log masuk ke satu aplikasi, sistem SSO mengesahkan kelayakan pengguna dan mengeluarkan tanda keselamatan. Token ini kemudiannya digunakan untuk mengesahkan pengguna untuk aplikasi lain dalam sistem SSO, menghapuskan keperluan untuk pelbagai log masuk. SSO menawarkan beberapa faedah. Ia memudahkan pengalaman pengguna dengan mengurangkan keperluan untuk pelbagai log masuk, dengan itu menjimatkan masa dan mengurangkan kekecewaan. Ia juga meningkatkan keselamatan dengan meminimumkan risiko pelanggaran yang berkaitan dengan kata laluan. Di samping itu, ia dapat mengurangkan kosnya dengan mengurangkan bilangan permintaan semula kata laluan.

Adakah terdapat risiko yang berkaitan dengan tanda tunggal (SSO)? Dilengkapi dengan potensi risiko. Sekiranya kelayakan SSO pengguna dikompromikan, penyerang boleh mendapatkan akses kepada semua aplikasi yang dikaitkan dengan kelayakan tersebut. Oleh itu, adalah penting untuk melaksanakan langkah-langkah keselamatan yang kukuh, seperti pengesahan multi-faktor dan kemas kini kata laluan biasa, untuk mengurangkan risiko ini. MFA)? SSO memudahkan proses log masuk dengan membenarkan pengguna mengakses pelbagai aplikasi dengan satu set kelayakan. Sebaliknya, MFA meningkatkan keselamatan dengan menghendaki pengguna menyediakan dua atau lebih bentuk pengenalan sebelum memberikan akses. , SSO boleh digunakan dengan aplikasi mudah alih. Banyak penyelesaian SSO menawarkan sokongan mudah alih, membolehkan pengguna mengakses pelbagai aplikasi pada peranti mudah alih mereka dengan satu set kelayakan. Meningkatkan pengalaman pengguna dengan memudahkan proses log masuk. Pengguna hanya perlu mengingati satu set kelayakan, mengurangkan kekecewaan kata laluan yang dilupakan. Ia juga menjimatkan masa, kerana pengguna tidak perlu berulang kali memasukkan kelayakan mereka semasa mengakses aplikasi yang berbeza. mendapat manfaat daripada SSO. Industri yang sangat bergantung pada pelbagai aplikasi, seperti penjagaan kesihatan, pendidikan, kewangan, dan teknologi, terutamanya boleh mendapat manfaat daripada kemudahan dan keselamatan yang disediakan oleh SSO.

Bagaimana Single Sign-On (SSO) Meningkatkan Keselamatan? Ini mengurangkan kemungkinan kata laluan yang lemah atau digunakan semula, yang merupakan sasaran umum untuk cyberattacks. Di samping itu, banyak penyelesaian SSO menggabungkan langkah-langkah keselamatan tambahan, seperti pengesahan dan penyulitan multi-faktor, untuk melindungi data pengguna lagi. > Ya, kebanyakan penyelesaian SSO boleh diintegrasikan dengan sistem sedia ada. Walau bagaimanapun, proses integrasi mungkin berbeza -beza bergantung kepada penyelesaian SSO tertentu dan sistem yang ada. Adalah penting untuk bekerjasama dengan pasukan IT yang berpengalaman atau penyedia SSO untuk memastikan integrasi yang lancar dan selamat.

Atas ialah kandungan terperinci Daftar tunggal (SSO) dijelaskan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Menyenaraikan senarai di Python: Memilih kaedah yang betulMenyenaraikan senarai di Python: Memilih kaedah yang betulMay 14, 2025 am 12:11 AM

Tomergelistsinpython, operator youCanusethe, extendmethod, listcomprehension, oritertools.chain, eachwithspecificadvantages: 1) operatorSimpleButlessefficientficorlargelists;

Bagaimana untuk menggabungkan dua senarai dalam Python 3?Bagaimana untuk menggabungkan dua senarai dalam Python 3?May 14, 2025 am 12:09 AM

Dalam Python 3, dua senarai boleh disambungkan melalui pelbagai kaedah: 1) Pengendali penggunaan, yang sesuai untuk senarai kecil, tetapi tidak cekap untuk senarai besar; 2) Gunakan kaedah Extend, yang sesuai untuk senarai besar, dengan kecekapan memori yang tinggi, tetapi akan mengubah suai senarai asal; 3) menggunakan * pengendali, yang sesuai untuk menggabungkan pelbagai senarai, tanpa mengubah suai senarai asal; 4) Gunakan itertools.chain, yang sesuai untuk set data yang besar, dengan kecekapan memori yang tinggi.

Rentetan senarai concatenate pythonRentetan senarai concatenate pythonMay 14, 2025 am 12:08 AM

Menggunakan kaedah Join () adalah cara yang paling berkesan untuk menyambungkan rentetan dari senarai di Python. 1) Gunakan kaedah Join () untuk menjadi cekap dan mudah dibaca. 2) Kitaran menggunakan pengendali tidak cekap untuk senarai besar. 3) Gabungan pemahaman senarai dan menyertai () sesuai untuk senario yang memerlukan penukaran. 4) Kaedah mengurangkan () sesuai untuk jenis pengurangan lain, tetapi tidak cekap untuk penyambungan rentetan. Kalimat lengkap berakhir.

Pelaksanaan Python, apa itu?Pelaksanaan Python, apa itu?May 14, 2025 am 12:06 AM

PythonexecutionistheprocessoftransformingpythoncodeIntoExecutableInstructions.1) TheinterpreterreadsTheCode, convertingIntoByteCode, yang mana -mana

Python: Apakah ciri -ciri utamaPython: Apakah ciri -ciri utamaMay 14, 2025 am 12:02 AM

Ciri -ciri utama Python termasuk: 1. Sintaks adalah ringkas dan mudah difahami, sesuai untuk pemula; 2. Sistem jenis dinamik, meningkatkan kelajuan pembangunan; 3. Perpustakaan standard yang kaya, menyokong pelbagai tugas; 4. Komuniti dan ekosistem yang kuat, memberikan sokongan yang luas; 5. Tafsiran, sesuai untuk skrip dan prototaip cepat; 6. Sokongan multi-paradigma, sesuai untuk pelbagai gaya pengaturcaraan.

Python: pengkompil atau penterjemah?Python: pengkompil atau penterjemah?May 13, 2025 am 12:10 AM

Python adalah bahasa yang ditafsirkan, tetapi ia juga termasuk proses penyusunan. 1) Kod python pertama kali disusun ke dalam bytecode. 2) Bytecode ditafsirkan dan dilaksanakan oleh mesin maya Python. 3) Mekanisme hibrid ini menjadikan python fleksibel dan cekap, tetapi tidak secepat bahasa yang disusun sepenuhnya.

Python untuk gelung vs semasa gelung: Bila menggunakan yang mana?Python untuk gelung vs semasa gelung: Bila menggunakan yang mana?May 13, 2025 am 12:07 AM

UseAforLoopWheniteratingOvereForforpecificNumbimes; Useaphileloopwhencontinuinguntilaconditionismet.forloopsareidealforknownownsequences, sementara yang tidak digunakan.

Gelung Python: Kesalahan yang paling biasaGelung Python: Kesalahan yang paling biasaMay 13, 2025 am 12:07 AM

Pythonloopscanleadtoerrorslikeinfiniteloops, pengubahsuaianListsduringiteration, off-by-oneerrors, sifar-indexingissues, andnestedloopinefficies.toavoidthese: 1) use'i

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular