OAuth und OpenID

Um IServ-Benutzer für eine Drittanbietersoftware zu authentifizieren können OAuth und OpenID verwendet werden. Eine Anleitung für die Konfiguration innerhalb des IServs befindet sich unter Single-Sign-On.

Im Folgenden wird eine exemplarische PHP-Applikation erstellt, welche einen Benutzer mittels OpenID authentifizieren kann. Diese Applikation wird die PHP OpenID-Bibliothek von jumbojett verwenden:

composer require jumbojett/openid-connect-php
<?php
// index.php
error_reporting(E_ALL);


require "vendor/autoload.php";

use Jumbojett\OpenIDConnectClient;

$server = 'https://mein-iserv.de';
$clientID = 'client id aus der Verwaltung';
$clientSecret = 'client secret aus der Verwaltung';

$oidc = new OpenIDConnectClient($server, $clientID, $clientSecret);
$oidc->addScope('openid');
$oidc->addScope('profile');
$oidc->addScope('email');

$oidc->authenticate();

$name = $oidc->requestUserInfo('name');
$email = $oidc->requestUserInfo('email');
$info = $oidc->requestUserInfo(); // more info, such as groups according to OAuth scopes

printf("Hallo %s (%s)", $name, $email);

Nach der Benutzer der Applikation den Zugriff erlaubt hat wird er mit seinem Namen und seiner E-Mail Adresse begrüßt.