Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie OpenID Connect für die API-Authentifizierung in PHP

So verwenden Sie OpenID Connect für die API-Authentifizierung in PHP

WBOY
WBOYOriginal
2023-06-17 19:33:081132Durchsuche

Im heutigen digitalen Zeitalter ist die API-Authentifizierung zu einem weit verbreiteten technischen Mittel geworden. Um die Sicherheit der API-Informationen zu gewährleisten, verwenden viele Websites und Anwendungen das OpenID Connect-Protokoll zur Authentifizierung. Mit diesem Protokoll können Sie einen externen Identitätsanbieter (IdP) verwenden, um Benutzer zu authentifizieren und Ihrer API die Möglichkeit zu geben, Identitäts- und Zugriffstoken auszutauschen. In diesem Artikel erfahren Sie, wie Sie OpenID Connect für die API-Authentifizierung in PHP verwenden.

  1. PHP-Entwicklungspaket installieren

Zuerst müssen Sie das entsprechende PHP-Entwicklungspaket von OpenID Connect in Ihrem PHP-Projekt installieren, um die OpenID Connect-API in Ihrer Anwendung verwenden zu können. Wenn Sie den Composer-Aktionsmanager verwenden, führen Sie zum Herunterladen und Installieren den folgenden Befehl in Ihrem Projektstammverzeichnis aus:

composer erfordert php-openid/php-openid-connect

Wenn Sie Composer nicht verwenden, können Sie ihn herunterladen und installieren Laden Sie es von GitHub herunter. Installieren Sie es manuell, indem Sie das OpenID Connect PHP-Paket herunterladen und in Ihrem Projektverzeichnis ablegen.

  1. Registrieren Sie Ihre Anwendung

Um mit der Nutzung des OpenID Connect-Protokolls zu beginnen, müssen Sie Ihre Anwendung bei dem von Ihnen gewählten Anbieter registrieren und eine Client-ID und ein Client-Geheimnis erhalten. Je nachdem, welchen Anbieter Sie verwenden, kann der Registrierungsprozess variieren, die Registrierungen der meisten Anbieter basieren jedoch auf der OAuth2-Spezifikation.

  1. Authentifizierungscode schreiben

Sobald Sie das OpenID Connect-Paket in Ihrem PHP-Projekt installiert und Ihre Anwendung registriert haben, können Sie mit dem Schreiben des Authentifizierungscodes beginnen.

In diesem Beispiel verwenden wir Auth0 als offenen ID-Anbieter. Zuerst müssen Sie Konfigurationsoptionen einrichten und Ihre Client-ID und Ihr Client-Geheimnis eingeben:

require_once "vendor/autoload.php";

$config = [
    'auth0' => [
        'domain' => 'YOUR_AUTH0_DOMAIN',
        'client_id' => 'YOUR_AUTH0_CLIENT_ID',
        'client_secret' => 'YOUR_AUTH0_CLIENT_SECRET',
        'redirect_uri' => 'YOUR_AUTH0_REDIRECT_URI',
        'scope' => 'openid profile email'
    ]
];

Als Nächstes müssen Sie ein Authentifizierungsobjekt erstellen und die Authentifizierungs-URL erstellen:

$auth0 = new Auth0SDKAuth0($config['auth0']);
$auth_url = $auth0->get_login_url();

Dadurch wird dem Benutzer eine Anmeldeseite angezeigt. Zur Authentifizierung müssen sie ihre Anmeldeinformationen eingeben. Sobald sich der Benutzer authentifiziert hat, wird der Code durch Festlegen des Umleitungs-URI an den bereitgestellten URI umgeleitet.

Sie müssen dann das Zugriffstoken erhalten, indem Sie den Autorisierungscode abrufen:

$auth0 = new Auth0SDKAuth0($config['auth0']);
$access_token = $auth0->get_access_token();

An diesem Punkt haben Sie die Authentifizierung erfolgreich abgeschlossen und das Zugriffstoken vom OpenID Connect-Austauschdienst erhalten. Mit diesem Zugriffstoken können Sie nun auf den geschützten API-Endpunkt zugreifen und damit Benutzeranfragen autorisieren.

  1. Zugriffstoken für den Zugriff auf die API verwenden

Mit dem erhaltenen Zugriffstoken (Zugriffstoken) können Sie Anfragen an den geschützten API-Endpunkt stellen, um auf zugehörige Daten und Ressourcen zuzugreifen.

$auth0 = new Auth0SDKAuth0($config['auth0']);
$access_token = $auth0->get_access_token();

$api_url = "https://example.com/api/protected-endpoint";

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $api_url,
    CURLOPT_HTTPHEADER => array(
        'Authorization: Bearer ' . $access_token,
        'Content-Type: application/json'
    )
));
$response = curl_exec($curl);
curl_close($curl);

echo $response;

Im obigen Beispiel verwenden wir cURL, um eine GET-Anfrage für den Zugriff auf den API-Endpunkt mithilfe des erhaltenen Zugriffstokens zu stellen. Beachten Sie, dass wir den Authorization-Header im Anforderungsheader festlegen und den Bearer-Token-Typ mit dem Zugriffstoken verwenden.

Fazit

Durch die Verwendung der Protokolle OAuth 2.0 und OpenID Connect ist die Implementierung der API-Authentifizierung in PHP kein Problem mehr. Durch korrektes Befolgen der oben genannten Schritte und Codebeispiele können Sie sicherstellen, dass Ihre Anwendungen und API-Endpunkte hinsichtlich der Authentifizierung sicher und zuverlässig sind.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie OpenID Connect für die API-Authentifizierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn