Authentication

Identity v2.0

We recommend users to use identity v3 when possible.

RackSpace cloud and OVH cloud, however, are still using Keystone v2.0. This following code will work for such providers.

Show auth code
<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use OpenStack\Common\Transport\Utils as TransportUtils;
use OpenStack\Identity\v2\Service;
use OpenStack\OpenStack;

$authUrl = 'https://keystone.example.com:5000/v2.0';

$httpClient = new Client([
    'base_uri' => TransportUtils::normalizeUrl($authUrl),
    'handler'  => HandlerStack::create(),
]);
$options = [
    'authUrl'         => $authUrl,
    'region'          => 'RegionOne',
    'username'        => 'foo',
    'password'        => 'bar',
    'tenantName'      => 'baz',
    'identityService' => Service::factory($httpClient),
];

/** @var OpenStack $openstack */
$openstack = new OpenStack($options);

/** @var \OpenStack\Compute\v2\Models\Server[] $servers */
$servers = $openstack->computeV2()->listServers();