2017 © Pedro Peláez
 

library openid-connect-php

Bare-bones OpenID Connect client

image

jimbolino/openid-connect-php

Bare-bones OpenID Connect client

  • Monday, December 4, 2017
  • by Jimbolino
  • Repository
  • 1 Watchers
  • 0 Stars
  • 3 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 145 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

PHP OpenID Connect Basic Client

A simple library that allows an application to authenticate a user through the basic OpenID Connect flow. This library hopes to encourage OpenID Connect use by making it simple enough for a developer with little knowledge of the OpenID Connect protocol to setup authentication., (*1)

A special thanks goes to Justin Richer and Amanda Anganes for their help and support of the protocol., (*2)

Requirements

  1. PHP 5.4 or greater
  2. CURL extension
  3. JSON extension

Install

  1. Install library using composer
composer require jimbolino/openid-connect-php
  1. Include composer autoloader
require '/vendor/autoload.php';

Example 1: Basic Client

use Jimbolino\OpenIDConnectClient;

$oidc = new OpenIDConnectClient('https://id.provider.com',
                                'ClientIDHere',
                                'ClientSecretHere');
$oidc->setCertPath('/path/to/my.cert');
$oidc->authenticate();
$name = $oidc->requestUserInfo('given_name');

[See openid spec for available user attributes][1], (*3)

Example 2: Dynamic Registration

use Jimbolino\OpenIDConnectClient;

$oidc = new OpenIDConnectClient("https://id.provider.com");

$oidc->register();
$client_id = $oidc->getClientID();
$client_secret = $oidc->getClientSecret();

// Be sure to add logic to store the client id and client secret

Example 3: Network and Security

// Configure a proxy
$oidc->setHttpProxy("http://my.proxy.com:80/");

// Configure a cert
$oidc->setCertPath("/path/to/my.cert");

Example 4: Request Client Credentials Token

use Jimbolino\OpenIDConnectClient;

$oidc = new OpenIDConnectClient('https://id.provider.com',
                                'ClientIDHere',
                                'ClientSecretHere');
$oidc->providerConfigParam(array('token_endpoint'=>'https://id.provider.com/connect/token'));
$oidc->addScope('my_scope');

// this assumes success (to validate check if the access_token property is there and a valid JWT) :
$clientCredentialsToken = $oidc->requestClientCredentialsToken()->access_token;

Example 5: Request Resource Owners Token (with client auth)

use Jimbolino\OpenIDConnectClient;

$oidc = new OpenIDConnectClient('https://id.provider.com',
                                'ClientIDHere',
                                'ClientSecretHere');
$oidc->providerConfigParam(array('token_endpoint'=>'https://id.provider.com/connect/token'));
$oidc->addScope('my_scope');

//Add username and password
$oidc->addAuthParam(array('username'=>'<Username>'));
$oidc->addAuthParam(array('password'=>'<Password>'));

//Perform the auth and return the token (to validate check if the access_token property is there and a valid JWT) :
$token = $oidc->requestResourceOwnerToken(TRUE)->access_token;

Development Environments

In some cases you may need to disable SSL security on on your development systems. Note: This is not recommended on production systems., (*4)

$oidc->setVerifyHost(false);
$oidc->setVerifyPeer(false);

Todo

  • Dynamic registration does not support registration auth tokens and endpoints

Contributing

  • All pull requests, once merged, should be added to the changelog.md file.

The Versions

04/12 2017

dev-master

9999999-dev

Bare-bones OpenID Connect client

  Sources   Download

The Requires

 

04/12 2017

0.4.0

0.4.0.0

Bare-bones OpenID Connect client

  Sources   Download

The Requires

 

20/02 2017

0.3.0

0.3.0.0

Bare-bones OpenID Connect client

  Sources   Download

The Requires

 

13/08 2016

0.2.0

0.2.0.0

Bare-bones OpenID Connect client

  Sources   Download

The Requires

 

04/03 2016

0.1.0

0.1.0.0

Bare-bones OpenID Connect client

  Sources   Download

The Requires