Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengesahan keselamatan PHP dengan OneLogin

Pengesahan keselamatan PHP dengan OneLogin

WBOY
WBOYasal
2023-07-24 14:18:221617semak imbas

Pengesahan keselamatan PHP melalui OneLogin

Dengan perkembangan pesat Internet, isu keselamatan rangkaian menjadi semakin penting. Dalam laman web dan aplikasi, pengesahan dan kebenaran pengguna adalah kunci untuk memastikan keselamatan. Dalam pembangunan PHP, kami boleh menggunakan penyelesaian pengesahan seperti OneLogin untuk mengukuhkan keselamatan. Artikel ini akan memperkenalkan cara menggunakan OneLogin untuk melaksanakan fungsi pengesahan keselamatan PHP dan menyediakan contoh kod yang sepadan.

1. Apakah itu OneLogin?

OneLogin ialah penyelesaian pengesahan awan yang membantu pembangun melaksanakan log masuk tunggal (SSO) dan pengurusan identiti. Ia menyediakan lapisan kawalan akses selamat yang memastikan identiti dan kebenaran pengguna disahkan dan dibenarkan dengan betul. OneLogin menyokong berbilang kaedah pengesahan, termasuk nama pengguna dan pengesahan berasaskan kata laluan, pengesahan dua faktor, OpenID Connect, SAML, OAuth dan banyak lagi.

2. Mula menggunakan OneLogin

  1. Daftar akaun OneLogin

Pertama, kita perlu mendaftar akaun di laman web rasmi OneLogin dan membuat aplikasi.

  1. Buat Apl

Dalam konsol OneLogin, klik "Aplikasi" di penjuru kiri sebelah atas dan pilih "Tambah Apl". Pilih "SAML Test Connector (Advanced)" dan tetapkan nama untuk aplikasi.

  1. Mengkonfigurasi Apl

Dalam halaman konfigurasi apl, kami perlu menyediakan beberapa maklumat untuk disepadukan dengan OneLogin. Contohnya, sediakan URL ACS (Assertion Consumer Service) dan URL ubah hala SP (Service Provider) selepas pengesahan berjaya.

Kod contoh:

$settings = [
    'sp' => [
        'entityId' => 'https://www.example.com/metadata.php',
        'assertionConsumerService' => [
            'url' => 'https://www.example.com/acs.php',
            'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'
        ],
        'singleLogoutService' => [
            'url' => 'https://www.example.com/slo.php',
            'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'
        ],
        'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
    ],
    'idp' => [
        'entityId' => 'https://app.onelogin.com/saml/metadata/123456',
        'singleSignOnService' => [
            'url' => 'https://app.onelogin.com/trust/saml2/http-post/sso/123456',
            'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'
        ],
        'singleLogoutService' => [
            'url' => 'https://app.onelogin.com/trust/saml2/http-redirect/slo/123456',
            'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'
        ],
        'x509cert'  => '-----BEGIN CERTIFICATE-----
                       MIICNTCCAZ2gAwIBAgIEDQxI2zANBgkqh ... 
                       -----END CERTIFICATE-----',
    ],
];
  1. Mengendalikan permintaan SAML

Apabila pengguna cuba log masuk dan dialihkan ke halaman pengesahan OneLogin, OneLogin memberikan kami respons SAML. Kita perlu menulis kod untuk mengendalikan respons ini dan mengesahkan pengguna.

Kod Contoh:

require 'vendor/autoload.php';

$samlResponse = $_POST['SAMLResponse'];

$auth = new OneLoginSaml2Auth($settings);
$auth->processResponse($samlResponse);

if ($auth->isAuthenticated()) {
    // 用户已验证成功,可以进行后续操作
    $attributes = $auth->getAttributes();
    echo "Welcome, " . $attributes['name'][0];
} else {
    // 用户验证失败,显示错误信息
    echo "Authentication failed.";
}
  1. Single Sign-On (SSO)

Selepas melaksanakan pengesahan melalui OneLogin, kami boleh melaksanakan Single Sign-On (SSO) dalam aplikasi lain. Apabila pengguna log masuk ke satu aplikasi, aplikasi lain boleh berkongsi maklumat pengesahan mereka tanpa perlu memasukkan nama pengguna dan kata laluan mereka sekali lagi.

Kod contoh:

session_start();

if (!isset($_SESSION['username'])) {
    // 用户未登录,将其重定向到 OneLogin 的登录页面
    header('Location: https://app.onelogin.com/login');
    exit;
}

// 用户已登录,可以进行后续操作
echo "Welcome, " . $_SESSION['username'];

Melalui langkah di atas, kita boleh menggunakan OneLogin untuk melaksanakan fungsi pengesahan keselamatan PHP. Dengan keupayaan SSO OneLogin, kami boleh meningkatkan pengalaman pengguna dengan berkesan dan mengukuhkan keselamatan tapak web dan aplikasi.

Atas ialah kandungan terperinci Pengesahan keselamatan PHP dengan OneLogin. 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