|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Articles d’actualité sur les crypto-monnaies
Comment configurer une configuration SAML par client pour mon application SaaS
May 27, 2024 at 05:03 am
Pour mon application SaaS, je souhaite configurer une configuration SAML par client. Je souhaite pouvoir modifier la configuration de mon pack de connexion Symfony One pour l'adapter à la configuration de mon client en fonction de ses besoins.

This guide will help you configure SAML SSO for your Symfony application on a per-customer basis. You'll need to adjust the configuration of the Symfony One Login Bundle to match the specific requirements of each customer.
Ce guide vous aidera à configurer SAML SSO pour votre application Symfony par client. Vous devrez ajuster la configuration du Symfony One Login Bundle pour répondre aux exigences spécifiques de chaque client.
First, determine the appropriate bundle based on your Symfony version:
Tout d’abord, déterminez le bundle approprié en fonction de votre version Symfony :
* For Symfony 6, install the nbgrp/onelogin-saml-bundle from GitHub.
* Pour Symfony 6, installez le nbgrp/onelogin-saml-bundle depuis GitHub.
* For earlier Symfony versions, start with the hslaovich/OneloginSamlBundle from GitHub.
* Pour les versions antérieures de Symfony, commencez par hslaovich/OneloginSamlBundle de GitHub.
Next, add the default configuration. If this step is skipped, the application will fail to function properly. Edit the config/packages/nbgrp_onelogin_saml.yaml file as follows:
Ensuite, ajoutez la configuration par défaut. Si cette étape est ignorée, l'application ne fonctionnera pas correctement. Modifiez le fichier config/packages/nbgrp_onelogin_saml.yaml comme suit :
```yaml
```yaml
nbgrp_onelogin_saml:
nbgrp_onelogin_saml :
idp:
IdP :
default:
défaut:
settings:
paramètres:
assertionConsumerService:
assertionConsumerService :
url: '%env(SAML_ASSERTION_CONSUMER_SERVICE)%'
URL : '%env(SAML_ASSERTION_CONSUMER_SERVICE)%'
issuer: '%env(SAML_ISSUER)%'
émetteur : '%env(SAML_ISSUER)%'
spEntityId: '%env(SAML_SP_ENTITY_ID)%'
spEntityId : '%env(SAML_SP_ENTITY_ID)%'
x509cert: '%env(SAML_X509_CERT)%'
x509cert : '%env(SAML_X509_CERT)%'
```
```
Update the config/packages/security.yaml file as well:
Mettez également à jour le fichier config/packages/security.yaml :
```yaml
```yaml
security:
sécurité:
encoders:
encodeurs :
Symfony\Component\Security\Core\User\User: plaintext
Symfony\Component\Security\Core\User\User : texte brut
providers:
fournisseurs:
saml:
saml :
nbgrp_onelogin_saml
nbgrp_onelogin_saml
firewalls:
pare-feu :
main:
principal:
saml:
saml :
path: ^/saml
chemin : ^/saml
provider: saml
fournisseur : saml
entry_point: nbgrp_onelogin_saml_entry_point
point_d'entrée : nbgrp_onelogin_saml_entry_point
logout_entry_point: nbgrp_onelogin_saml_logout_entry_point
logout_entry_point : nbgrp_onelogin_saml_logout_entry_point
logout_success_handler: nbgrp_onelogin_saml_logout_success_handler
logout_success_handler : nbgrp_onelogin_saml_logout_success_handler
logout:
Se déconnecter:
path: ^/logout$
chemin : ^/déconnexion$
```
```
The nbgrp/onelogin-saml-bundle utilizes compilerpass to inject configuration into a registry in an array indexed by idp, which is then used throughout the application. We'll override this functionality and load the configuration dynamically from the database based on the hostname.
Le nbgrp/onelogin-saml-bundle utilise compilerpass pour injecter la configuration dans un registre dans un tableau indexé par idp, qui est ensuite utilisé dans toute l'application. Nous remplacerons cette fonctionnalité et chargerons la configuration dynamiquement à partir de la base de données en fonction du nom d'hôte.
Create a new service in the api/config/services.yaml file:
Créez un nouveau service dans le fichier api/config/services.yaml :
```yaml
```yaml
services:
prestations de service:
app.saml_configuration_loader:
app.saml_configuration_loader :
class: App\Security\SamlConfigurationLoader
classe : App\Security\SamlConfigurationLoader
arguments:
arguments:
- '@doctrine.orm.default_entity_manager'
- '@doctrine.orm.default_entity_manager'
```
```
Override relevant portions of the bundle:
Remplacez les parties pertinentes du bundle :
Those files will be overridden to enable dynamic configuration of the login controller, metadata, and authenticator.
Ces fichiers seront remplacés pour permettre la configuration dynamique du contrôleur de connexion, des métadonnées et de l'authentificateur.
Login Controller
Contrôleur de connexion
Override the api/vendor/nbgrp/onelogin-saml-bundle/src/Controller/Login.php file to utilize our configuration.
Remplacez le fichier api/vendor/nbgrp/onelogin-saml-bundle/src/Controller/Login.php pour utiliser notre configuration.
In the __construct method, we autowire and add our service.
Dans la méthode __construct, nous câblons automatiquement et ajoutons notre service.
```php
```php
use App\Security\SamlConfigurationLoader;
utilisez App\Security\SamlConfigurationLoader ;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
utilisez Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\DependencyInjection\ContainerInterface;
utilisez Symfony\Component\DependencyInjection\ContainerInterface ;
use Symfony\Component\HttpFoundation\Request;
utilisez Symfony\Component\HttpFoundation\Request ;
use Symfony\Component\HttpFoundation\Response;
utilisez Symfony\Component\HttpFoundation\Response ;
use Symfony\Component\Routing\Annotation\Route;
utilisez Symfony\Component\Routing\Annotation\Route ;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
utilisez Symfony\Component\Security\Http\Authentication\AuthenticationUtils ;
class LoginController extends AbstractController
la classe LoginController étend AbstractController
{
{
private $samlConfigurationLoader;
privé $samlConfigurationLoader ;
public function __construct(ContainerInterface $container, SamlConfigurationLoader $samlConfigurationLoader)
fonction publique __construct(ContainerInterface $container, SamlConfigurationLoader $samlConfigurationLoader)
{
{
parent::__construct($container);
parent::__construct($conteneur);
$this->samlConfigurationLoader = $samlConfigurationLoader;
$this->samlConfigurationLoader = $samlConfigurationLoader;
}
}
*/
public function login(AuthenticationUtils $authenticationUtils, Request $request): Response
connexion de fonction publique (AuthenticationUtils $authenticationUtils, Request $request) : Réponse
{
{
$host = $request->server->get('HTTP_HOST');
$host = $request->server->get('HTTP_HOST');
$samlSettings = $this->samlConfigurationLoader->getSettingsFromHost($host);
$samlSettings = $this->samlConfigurationLoader->getSettingsFromHost($host);
// ...
//...
}
}
}
}
```
```
Metadata
Métadonnées
Line 19: Add our service.
Ligne 19 : Ajoutez notre service.
```php
```php
use App\Security\SamlConfigurationLoader;
utilisez App\Security\SamlConfigurationLoader ;
use Symfony\Component\DependencyInjection\ContainerInterface;
utilisez Symfony\Component\DependencyInjection\ContainerInterface ;
class MetadataController extends Controller
la classe MetadataController étend le contrôleur
{
{
public static function create(ContainerInterface $container): MetadataController
fonction statique publique créer (ContainerInterface $container): MetadataController
{
{
$samlConfigurationLoader = $container->get(SamlConfigurationLoader::class);
$samlConfigurationLoader = $container->get(SamlConfigurationLoader::class);
return new self($samlConfigurationLoader);
return new self ($ samlConfigurationLoader);
}
}
public function __invoke(Request $request): Response
fonction publique __invoke(Request $request) : Réponse
{
{
$host = $request->server->get('HTTP_HOST');
$host = $request->server->get('HTTP_HOST');
$samlSettings = $this->samlConfigurationLoader->getSettingsFromHost($host);
$samlSettings = $this->samlConfigurationLoader->getSettingsFromHost($host);
// ...
//...
}
}
}
}
```
```
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
-
- Consensus 2026 Miami : Web3, Blockchain, Crypto-monnaie, NFT, Metaverse, conférence, 5 mai — Là où Wall Street rencontre la frontière numérique
- May 01, 2026 at 11:27 pm
- Miami vibre à l'approche du Consensus 2026 le 5 mai, mettant en avant le Web3, la blockchain, la crypto, les NFT et le passage du métaverse du battage médiatique à la réalité institutionnelle et durable.
-
- La Fed maintient ses taux stables, déclenchant une baisse du prix du Bitcoin dans un contexte de tensions géopolitiques
- May 01, 2026 at 04:04 am
- La décision de la Réserve fédérale de maintenir les taux d'intérêt, associée au conflit au Moyen-Orient, a un impact sur le prix du Bitcoin. Analyse des tendances récentes et des réactions du marché.
-
- Les mineurs de Bitcoin électrifient le réseau : l'acquisition d'une usine à gaz dans l'Ohio ouvre une nouvelle ère pour l'or numérique
- Apr 30, 2026 at 10:38 pm
- L’industrie minière du Bitcoin connaît une transformation significative, avec des acteurs majeurs développant de manière agressive leurs opérations et acquérant stratégiquement des actifs énergétiques comme les usines à gaz de l’Ohio pour solidifier leur avenir dans l’économie numérique.
-
- Le jeton MEGA de MegaETH arrive dans la Big Apple : définition de nouveaux critères de performance pour la blockchain en temps réel
- Apr 30, 2026 at 09:11 pm
- Le MEGA Token de MegaETH a été officiellement lancé, validant sa vision de la blockchain « en temps réel » avec un modèle de distribution axé sur les performances et une adoption rapide du stablecoin USDM.
-
- La pente glissante de Solana : les prévisions de prix indiquent une perte de résistance et de nouvelles baisses potentielles
- Apr 30, 2026 at 09:08 pm
- Solana a du mal à briser la résistance clé, signalant un potentiel de baisse. Des refus répétés entre 86 et 88 dollars, associés à une tendance à court terme brisée, laissent présager des objectifs aussi bas que 67 dollars, voire 40 dollars, alors que les vendeurs gardent le contrôle. Les investisseurs doivent surveiller de près les niveaux de support critiques.
-
- BTC, pétrole, bénéfices : la géopolitique alimente le brut, le dérapage des cryptos, les triomphes et les essais de la technologie
- Apr 30, 2026 at 04:51 pm
- Les marchés mondiaux sont en tourbillon : le BTC chute alors que le pétrole atteint des sommets pluriannuels en raison des tensions géopolitiques, tandis que les géants de la technologie affichent des bénéfices mitigés, révélant un paysage financier complexe.
-
- Le nouveau rythme de New York : les systèmes de jalonnement, l'USD1 et la gouvernance conduisent la prochaine vague de crypto
- Apr 30, 2026 at 03:02 pm
- Des événements lucratifs générant 1 USD aux modèles de gouvernance robustes, la sphère crypto regorge d'innovations qui remodèlent la façon dont nous interagissons avec les actifs numériques, en nous concentrant sur l'engagement à long terme et l'utilité du stablecoin.
-
- OKX dévoile le protocole de paiement des agents : inaugurant une nouvelle ère de transactions IA
- Apr 30, 2026 at 02:53 pm
- OKX lance son Agent Payments Protocol (APP), une norme ouverte pour le commerce piloté par l'IA, permettant aux agents de gérer des cycles économiques complets. Explorez les implications pour les transactions IA et les paiements agents.

































