anglemx/onelogin-azure-saml-bundle
Pros:
entityId, singleSignOnService) from just the azure_app_id and base_url, reducing manual errors.use_attribute_friendly_name: false), avoiding common misconfigurations.debug:saml) to validate SP settings, improving debugging and compliance checks.Cons:
TO-DO in README) and lack of advanced use cases (e.g., multi-tenancy, custom claims mapping).onelogin/php-saml: Relies on a third-party library with its own maintenance risks (e.g., SAML protocol updates, security patches).entityId format, certificate handling), reducing trial-and-error in setup.saml_acs, saml_login paths).x509cert and SP’s privateKey, which may need automation (e.g., Azure Key Vault integration).replyURL, missing permissions) or SAML settings (e.g., strict: true in production).onelogin/php-saml (v3.x) may have unpatched CVEs or unsupported SAML features (e.g., newer bindings).x509cert and SP’s privateKey be rotated securely (e.g., automated renewal via Azure Key Vault or HashiCorp Vault)?groups, extensionAttributes) required? The bundle may need extension for complex mappings.entityId, AssertionConsumerService, etc.user_class in security config), but user provisioning logic must be implemented in the app.trust_proxy for load balancers).Pre-Integration:
Azure App ID and x509cert.privateKey (e.g., via OpenSSL) and configure Azure AD with the AssertionConsumerService URL (e.g., https://{base_url}/saml/acs).Bundle Installation:
composer require anglemx/onelogin-azure-saml-bundle
Enable the bundle in config/bundles.php:
Angle\OneLoginAzureSamlBundle\AngleOneLoginAzureSamlBundle::class => ['all' => true],
Configuration:
# config/packages/angle_one_login_azure_saml.yaml
angle_one_login_azure_saml:
azure_app_id: 'your-azure-app-id'
azure_x509_cert: '-----BEGIN CERTIFICATE-----...'
app_base_url: 'https://your-app.com'
# config/packages/security.yaml
security:
providers:
saml_provider:
saml:
user_class: App\Entity\User
default_roles: ['ROLE_USER']
firewalls:
app:
pattern: ^/
saml:
username_attribute: uid
use_attribute_friendly_name: false
check_path: saml_acs
login_path: saml_login
access_control:
- { path: ^/saml/, roles: PUBLIC_ACCESS }
- { path: ^/, roles: ROLE_USER }
# config/routes.yaml
angle_one_login_azure_saml:
resource: "@AngleOneLoginAzureSamlBundle/Resources/config/routing.yml"
Validation:
php bin/console debug:saml
Post-Integration:
User entity or a custom UserProvider.monolog channel for onelogin/php-saml logs).trust_proxy for apps behind load balancers (configurable via trust_proxy parameter).Phase 1: Core Integration
Phase 2: Advanced Features
groups for role assignment).Phase 3: Optimization
Phase 4: Compliance
anglemx/onelogin-azure-saml-bundle and onelogin/php-saml for updates/patches. Test thoroughly before upgrading.How can I help you explore Laravel packages today?