Overview
, (*1)
Auth - https://www.duosecurity.com/docs/authapi, (*2)
Admin - https://www.duosecurity.com/docs/adminapi, (*3)
Accounts - https://www.duosecurity.com/docs/accountsapi, (*4)
Tested Against PHP Versions:
TLS 1.2 and 1.3 Support
Duo_api_php uses PHP's cURL extension and OpenSSL for TLS operations. TLS support will depend on the versions of multiple libraries:, (*5)
TLS 1.2 support requires PHP 5.5 or higher, curl 7.34.0 or higher, and OpenSSL 1.0.1 or higher., (*6)
TLS 1.3 support requires PHP 7.3 or higher, curl 7.61.0 or higher, and OpenSSL 1.1.1 or higher., (*7)
Installing
Development:, (*8)
$ git clone https://github.com/duosecurity/duo_api_php.git
$ cd duo_api_php
$ composer install
System:, (*9)
$ composer global require duosecurity/duo_api_php:dev-master
Or add the following to your project:, (*10)
{
"require": {
"duosecurity/duo_api_php": "dev-master"
}
}
Using
$ php -a -d auto_prepend_file=vendor/autoload.php
Interactive mode enabled
php > $D = new DuoAPI\Auth($ikey, $skey, $host);
php > var_dump($D->preauth($username));
array(2) {
'response' =>
array(2) {
'response' =>
array(3) {
'enroll_portal_url' =>
string(23) "https://api-example.com"
'result' =>
string(6) "enroll"
'status_msg' =>
string(42) "Enroll an authentication device to proceed"
}
'stat' =>
string(2) "OK"
}
'success' =>
bool(true)
}
Testing
$ ./vendor/bin/phpunit -c phpunit.xml
Note that the tests in tests/SSL/SSLTest.php
require stunnel3
., (*11)
Linting
$ ./vendor/bin/phpcs --standard=PSR2 -n src/* tests/*