Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Sicherheitsauthentifizierung mit Google Cloud Identity-Aware Proxy

PHP-Sicherheitsauthentifizierung mit Google Cloud Identity-Aware Proxy

WBOY
WBOYOriginal
2023-07-26 16:41:101115Durchsuche

PHP-Sicherheitsauthentifizierung mit Google Cloud Identity-Aware Proxy

Übersicht:
Google Cloud Identity-Aware Proxy (IAP) ist ein Dienst zum Sichern von Anwendungen, indem er Authentifizierung und Autorisierung verwendet, um den Zugriff auf Anwendungen zu steuern. In diesem Artikel erfahren Sie, wie Sie mithilfe von IAP eine sichere Authentifizierung in PHP-Anwendungen implementieren.

Schritt 1: Authentifizierung einrichten
Zuerst müssen wir IAP aktivieren und die Authentifizierung in der Google Cloud Console einrichten. Bitte folgen Sie diesen Schritten:

  1. Melden Sie sich bei der Google Cloud Console an und wählen Sie Ihr Projekt aus.
  2. Navigieren Sie zur Seite Sicherheit >
  3. Wählen Sie auf der Seite „IAP“ die App aus, die Sie schützen möchten.
  4. Klicken Sie im Abschnitt „Webanwendungen schützen“ auf die Schaltfläche „Aktivieren“.
  5. Wählen Sie im Popup-Dialogfeld „Externer IDP (Upstream-Server)“ als Authentifizierungsmethode und konfigurieren Sie die entsprechende Client-ID und das Client-Geheimnis.
  6. Klicken Sie auf „Speichern“.

Schritt 2: Konfigurieren Sie die Anwendung
Als nächstes müssen wir IAP in der PHP-Anwendung konfigurieren. Zuerst müssen wir die Google API-Clientbibliothek installieren. Sie können die Bibliothek mit Composer installieren, indem Sie den folgenden Befehl ausführen:

composer require google/apiclient

Fügen Sie nach der Installation den folgenden Code zu Ihrer PHP-Datei hinzu:

require_once 'vendor/autoload.php';

session_start();
$client = new Google_Client();
$client->setAuthConfig('<path_to_your_client_secret_json>');
$client->addScope('email');

if (!$client->isAccessTokenExpired()) {
  $accessToken = $_SESSION['access_token'];
  $client->setAccessToken($accessToken);
} else {
  $client->authenticate($_SERVER['HTTP_X_GOOG_AUTHENTICATED_USER_EMAIL']);
  $_SESSION['access_token'] = $client->getAccessToken();
}

if (!$client->getAccessToken()) {
  header('Location: ' . $client->createAuthUrl());
  exit;
}

Stellen Sie sicher, dass Sie b349e94957a07cf1f3d288c64b7511ca durch Ihren Client The ersetzen Weg zum Schlüssel. b349e94957a07cf1f3d288c64b7511ca 替换为您的客户端密钥的路径。

步骤3:验证访问权限
最后,我们需要在 PHP 文件中添加一些代码来验证访问权限。以下代码将检查用户是否有权访问应用程序:

$allowed_users = [
  'user1@gmail.com',
  'user2@gmail.com'
];

$user_email = $_SERVER['HTTP_X_GOOG_AUTHENTICATED_USER_EMAIL'];

if (!in_array($user_email, $allowed_users)) {
  http_response_code(403);
  die('Unauthorized');
}

// 执行您的应用程序逻辑
echo '欢迎访问应用程序!';

$allowed_users

Schritt 3: Zugriff überprüfen

Abschließend müssen wir der PHP-Datei etwas Code hinzufügen, um den Zugriff zu überprüfen. Der folgende Code prüft, ob der Benutzer berechtigt ist, auf die Anwendung zuzugreifen:
rrreee

Im Array $allowed_users können Sie die E-Mail-Adressen von Benutzern hinzufügen, die auf die Anwendung zugreifen dürfen. 🎜🎜Zusammenfassung: 🎜In diesem Artikel haben wir gelernt, wie man mithilfe von Google Cloud Identity-Aware Proxy (IAP) eine sichere Authentifizierung in PHP-Anwendungen implementiert. Durch die Konfiguration der Authentifizierung und die Überprüfung des Zugriffs können wir sicherstellen, dass nur authentifizierte Benutzer auf die Anwendung zugreifen können. Die Verwendung von IAP kann die Sicherheit Ihrer Anwendung verbessern und unbefugten Zugriff verhindern. 🎜

Das obige ist der detaillierte Inhalt vonPHP-Sicherheitsauthentifizierung mit Google Cloud Identity-Aware Proxy. 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