80 lines
3.1 KiB
PHP
80 lines
3.1 KiB
PHP
<?php
|
|
|
|
$config = require_once(storage_path('samlidp/config.php'));
|
|
|
|
foreach (SpsEnum::cases() as $sp) {
|
|
$sp_slo_redirects[$sp->url()] = $sp->url();
|
|
$sp_configs[$sp->acsBase64()] = [
|
|
'destination' => $sp->destination(),
|
|
'logout' => $sp->logout(),
|
|
'certificate' => $sp->certificate()
|
|
];
|
|
}
|
|
|
|
return [
|
|
/**
|
|
|--------------------------------------------------------------------------
|
|
| SAML idP configuration file
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Use this file to configure the service providers you want to use.
|
|
|
|
|
*/
|
|
// Outputs data to your laravel.log file for debugging.
|
|
'debug' => (bool)env('APP_DEBUG', false),
|
|
// Define the email address field name in the users table.
|
|
'email_field' => 'email',
|
|
// Define the name field in the users table.
|
|
'name_field' => 'name',
|
|
// The URI to your login page.
|
|
'login_uri' => 'login',
|
|
// Log out of the IdP after SLO.
|
|
'logout_after_slo' => env('LOGOUT_AFTER_SLO', false),
|
|
// The URI to the saml metadata file, this describes your idP.
|
|
'issuer_uri' => 'saml/metadata',
|
|
// The certificate.
|
|
'cert' => env('SAMLIDP_CERT'),
|
|
// Name of the certificate PEM file, ignored if cert is used.
|
|
'certname' => 'cert.pem',
|
|
// The certificate key.
|
|
'key' => env('SAMLIDP_KEY'),
|
|
// Name of the certificate key PEM file, ignored if key is used.
|
|
'keyname' => 'key.pem',
|
|
// Encrypt requests and responses.
|
|
'encrypt_assertion' => true,
|
|
// Make sure messages are signed.
|
|
'messages_signed' => true,
|
|
// Defind what digital algorithm you want to use.
|
|
'digest_algorithm' => \RobRichards\XMLSecLibs\XMLSecurityDSig::SHA256,
|
|
// List of all service providers.
|
|
// 'sp' => [
|
|
// Base64 encoded ACS URL
|
|
// 'aHR0cHM6Ly9teWZhY2Vib29rd29ya3BsYWNlLmZhY2Vib29rLmNvbS93b3JrL3NhbWwucGhw' => [
|
|
// Your destination is the ACS URL of the Service Provider
|
|
// 'destination' => 'https://myfacebookworkplace.facebook.com/work/saml.php',
|
|
// 'logout' => 'https://myfacebookworkplace.facebook.com/work/sls.php',
|
|
// 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
|
|
// ].
|
|
// ],.
|
|
'sp' => $sp_configs,
|
|
|
|
// 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' => $sp_slo_redirects,
|
|
|
|
// All of the Laravel SAML IdP event / listener mappings.
|
|
'events' => [
|
|
'CodeGreenCreative\SamlIdp\Events\Assertion' => [],
|
|
'Illuminate\Auth\Events\Logout' => ['CodeGreenCreative\SamlIdp\Listeners\SamlLogout'],
|
|
'Illuminate\Auth\Events\Authenticated' => ['CodeGreenCreative\SamlIdp\Listeners\SamlAuthenticated'],
|
|
'Illuminate\Auth\Events\Login' => ['CodeGreenCreative\SamlIdp\Listeners\SamlLogin'],
|
|
],
|
|
|
|
// List of guards saml idp will catch Authenticated, Login and Logout events.
|
|
'guards' => ['backend'],
|
|
];
|