Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie OpenID Connect für die API-Authentifizierung in PHP
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.
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.
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.
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.
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!