1. Go to this page and download the library: Download oyoun-media/academy-saml library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
return [
// The URI to your login page
'login_uri' => 'login',
// The URI to the saml metadata file, this describes your idP
'issuer_uri' => 'saml/metadata',
// List of all Service Providers
'sp' => [
// Base64 encoded ACS URL
'aHR0cHM6Ly9teWZhY2Vib29rd29ya3BsYWNlLmZhY2Vib29rLmNvbS93b3JrL3NhbWwucGhw' => [
// ACS URL of the Service Provider
'destination' => 'https://example.com/saml/acs',
// Simple Logout URL of the Service Provider
'logout' => 'https://example.com/saml/sls',
// SP certificate
// 'certificate' => '',
// Turn off auto appending of the idp query param
// 'query_params' => false,
// Turn off the encryption of the assertion per SP
// 'encrypt_assertion' => false
],
],
// List of guards saml idp will catch Authenticated, Login and Logout events (thanks @abublihi)
'guards' => ['web'],
];
// config/samlidp.php
return [
// If you need to redirect after SLO depending on SLO initiator
// key is beginning of HTTP_REFERER value from SERVER, value is redirect path
'sp_slo_redirects' => [
'mysp.com' => 'https://mysp.com',
],
];
namespace App\Listeners;
use LightSaml\ClaimTypes;
use LightSaml\Model\Assertion\Attribute;
use CodeGreenCreative\SamlIdp\Events\Assertion;
class SamlAssertionAttributes
{
public function handle(Assertion $event)
{
$event->attribute_statement
->addAttribute(new Attribute(ClaimTypes::PPID, auth()->user()->id))
->addAttribute(new Attribute(ClaimTypes::NAME, auth()->user()->name));
}
}
return [
// Defind what digital algorithm you want to use
'digest_algorithm' => \RobRichards\XMLSecLibs\XMLSecurityDSig::SHA1,
];