2017 © Pedro Peláez
 

library credentials

Credentials

image

xp-forge/credentials

Credentials

  • Friday, June 8, 2018
  • by thekid
  • Repository
  • 2 Watchers
  • 0 Stars
  • 860 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 20 % Grown

The README.md

Credentials

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version, (*1)

Credentials storage, (*2)

Backends

This API supports the following backends:, (*3)

Files

Via the FromFile class. Files are expected to have the following format:, (*4)

rest_password=abcdefg
ldap_password=qwertzu

Environment variables

Via the FromEnvironment class. Credential names map to environment variables by uppercasing them and replacing forward slashes by two underscores:, (*5)

use security\credentials\{Credentials, FromEnvironment};

$credentials= new Credentials(new FromEnvironment());
$secret= $credentials->named('ldap_password');     // Reads $ENV{LDAP_PASSWORD} => util.Secret

Hashicorp's Vault

Via the FromVault class. Credentials are read from the backend mounted at /secret., (*6)

use security\credentials\{Credentials, FromVault};

// Set token to NULL to use VAULT_TOKEN from environment
$token= new Secret('72698676-4988-94a4-...');

$credentials= new Credentials(new FromVault('http://127.0.0.1:8200', $token));
$secret= $credentials->named('ldap_password');     // Reads ldap_password key from /secret

$credentials= new Credentials(new FromVault('http://127.0.0.1:8200', $token, 'vendor/name'));
$secret= $credentials->named('mysql');             // Reads mysql key from /secret/vendor/name

KeePass databases

Via the KeePass class., (*7)

use security\credentials\{Credentials, FromKeePass};
use util\Secret;

$secret= new Secret('key');

$credentials= new Credentials(new FromKeePass('database.kdbx', $secret));
$secret= $credentials->named('ldap_password');     // Reads top-level entry ldap_password

$credentials= new Credentials(new FromKeePass('database.kdbx', $secret, 'vendor/name'));
$secret= $credentials->named('mysql');             // Reads mysql entry in vendor/name subfolder

Docker secrets

See https://docs.docker.com/engine/swarm/secrets/. Uses Docker's default locations on both Windows and Un*x systems if constructed without argument., (*8)

use security\credentials\{Credentials, FromDockerSecrets};
use util\Secret;

$credentials= new Credentials(new FromDockerSecrets());
$secret= $credentials->named('ldap_password');     // Reads top-level entry ldap_password

See also

https://github.com/xp-framework/rfc/issues/316, (*9)

The Versions

12/01 2018

dev-feature/docker-secrets

dev-feature/docker-secrets http://xp-framework.net/

Credentials

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

module xp

29/09 2016
29/09 2016