PHP code example of asminog / yii2-saml
1. Go to this page and download the library: Download asminog/yii2-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/ */
asminog / yii2-saml example snippets
'components' => [
'saml' => [
'class' => 'asminog\yii2saml\Saml',
'configFileName' => '@app/config/saml.php', // OneLogin_Saml config file (Optional)
]
]
$urlManager = Yii::$app->urlManager;
$spBaseUrl = $urlManager->getHostInfo() . $urlManager->getBaseUrl();
return [
'sp' => [
'entityId' => $spBaseUrl.'/saml/metadata',
'assertionConsumerService' => [
'url' => $spBaseUrl.'/saml/acs',
],
'singleLogoutService' => [
'url' => $spBaseUrl.'/saml/sls',
],
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
],
'idp' => [
'entityId' => 'identity-provider',
'singleSignOnService' => [
'url' => 'https://idp.com/sso',
],
'singleLogoutService' => [
'url' => 'https://idp.com/sls',
],
'x509cert' => '<x509cert string>',
],
];
$urlManager = Yii::$app->urlManager;
$spBaseUrl = $urlManager->getHostInfo() . $urlManager->getBaseUrl();
$config = [
// some other configuration here
'components' => [
'saml' => [
'class' => 'asasmoyo\yii2saml\Saml',
'config' => [
'sp' => [
'entityId' => $spBaseUrl.'/saml/metadata',
'assertionConsumerService' => [
'url' => $spBaseUrl.'/saml/acs',
],
'singleLogoutService' => [
'url' => $spBaseUrl.'/saml/sls',
],
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
],
'idp' => [
'entityId' => 'identity-provider',
'singleSignOnService' => [
'url' => 'https://idp.com/sso',
],
'singleLogoutService' => [
'url' => 'https://idp.com/sls',
],
'x509cert' => '<x509cert string>',
],
];
]
],
// some other configuration here
];
return $config;
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\helpers\Url;
class SamlController extends Controller {
// Remove CSRF protection
public $enableCsrfValidation = false;
public function actions() {
return [
'login' => [
'class' => 'asminog\yii2saml\actions\LoginAction'
]
];
}
}
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\helpers\Url;
class SamlController extends Controller {
// Remove CSRF protection
public $enableCsrfValidation = false;
public function actions() {
return [
...
'acs' => [
'class' => 'asminog\yii2saml\actions\AcsAction',
'successCallback' => [$this, 'callback'],
'successUrl' => Url::to('site/welcome'),
]
];
}
/**
* @param array $attributes attributes sent by Identity Provider.
* @param string $nameId nameId sent by Identity Provider after v2.1.1.
*/
public function callback($attributes, $nameId = null) {
// do something
}
}
public function actions() {
return [
...
'metadata' => [
'class' => 'asminog\yii2saml\actions\MetadataAction'
]
];
}
public function actions() {
return [
...
'logout' => [
'class' => 'asminog\yii2saml\actions\LogoutAction',
'returnTo' => Url::to('site/bye'),
]
];
}
public function actions() {
...
return [
...
'sls' => [
'class' => 'asminog\yii2saml\actions\SlsAction',
'successUrl' => Url::to('site/bye'),
]
]
}
php composer.phar