Benachrichtigung

Duet AI heißt jetzt Gemini für Google Workspace. Weitere Informationen

Schlüssel und Zertifikate für die Einmalanmeldung (SSO) generieren

Google Workspace bietet für Kunden mit Google Workspace oder Google Workspace for Education die Möglichkeit der Einmalanmeldung (SSO). Der Dienst für die Google Workspace-Einmalanmeldung akzeptiert öffentliche Schlüssel und Zertifikate, die mit dem RSA- oder DSA-Algorithmus generiert wurden. Um diesen Dienst zu nutzen, müssen Sie ein Schlüsselpaar mit einem öffentlichen und einem privaten Schlüssel generieren, sowie ein X.509-Zertifikat, das den öffentlichen Schlüssel enthält. Danach müssen der öffentliche Schlüssel bzw. das Zertifikat bei Google registriert werden. Laden Sie hierfür einfach den Schlüssel oder das Zertifikat über die Google Admin-Konsole hoch.

Wie Sie Schlüssel und Zertifikate generieren, hängt in der Regel von der verwendeten Entwicklungsplattform und Programmiersprache ab. Im Folgenden finden Sie verschiedene Möglichkeiten, um die für den SSO-Dienst in Google Workspace benötigten Schlüssel und Zertifikate zu generieren.

OpenSSL

Es gibt viele Methoden zum Erstellen von Schlüsselpaaren mit einem öffentlichen und einem privaten Schlüssel. Zu den beliebtesten zählt das Open Source-Tool OpenSSL. Es ist auf allen gängigen Plattformen verfügbar und ermöglicht das Generieren von Schlüsseln über eine einfache Befehlszeilenschnittstelle.

Privaten RSA-Schlüssel erstellen

Ein privater RSA-Schlüssel lässt sich mit OpenSSL in nur einem Schritt generieren:

openssl genrsa -out rsaprivkey.pem 2048

Damit wird ein PEM-codierter privater Schlüssel erstellt und in der Datei „rsaprivkey.pem“ gespeichert. Der in diesem Beispiel erstellte Schlüssel ist ein 2.048-Bit-Schlüssel, der für praktisch alle Zwecke verwendet werden kann. Dieser private Schlüssel dient der Signatur und Entschlüsselung von Daten und sollte geheim gehalten werden.

Für einige Implementierungen, insbesondere Implementierungen auf Java-Basis, ist DER oder PKCS8 erforderlich. Diese Formate lassen sich mit den folgenden zusätzlichen Schritten generieren:

1. openssl rsa -in rsaprivkey.pem -pubout -outform DER -out rsapubkey.der
2. openssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivkey.pem -out rsaprivkey.der -nocrypt

In Schritt 1 wird der öffentliche Schlüssel im DER-Format generiert.

In Schritt 2 wird der private Schlüssel im PKCS8- und im DER-Format generiert. Anschließend können Sie diese Schlüssel nutzen („rsapubkey.der“ und „rsaprivkey.der“).

Privaten DSA-Schlüssel erstellen

Ein DSA-Schlüssel wird in zwei Schritten erstellt:

1. openssl dsaparam -out dsaparam.pem 2048
2. openssl gendsa -out dsaprivkey.pem dsaparam.pem

Im ersten Schritt wird die DSA-Parameterdatei dsaparam.pem erstellt, mit der OpenSSL angewiesen wird, einen 2.048-Bit-Schlüssel zu erstellen (Schritt 2). Die Datei „dsaparam.pem“ selbst ist kein Schlüssel und kann gelöscht werden, nachdem der öffentliche und der private Schlüssel erstellt wurden. Im zweiten Schritt wird in der Datei „dsaprivkey.pem“ der private Schlüssel erstellt, der geheim gehalten werden sollte.

Gehen Sie folgendermaßen vor, um den Schlüssel in ein binäres Format (DER) zu exportieren:

1. openssl dsa -in dsaprivkey.pem -outform DER -pubout -out dsapubkey.der
2. openssl pkcs8 -topk8 -inform PEM -outform DER -in dsaprivkey.pem -out dsaprivkey.der -nocrypt

In Schritt 1 wird der öffentliche Schlüssel in ein DER-Format extrahiert.

In Schritt 2 wird der private Schlüssel in das PKCS8- und in das DER-Format konvertiert. Anschließend können Sie dieses Paar aus öffentlichem Schlüssel (dsapubkey.der) und privatem Schlüssel (dsaprivkey.der) verwenden.

Zertifikat erstellen

Wenn Sie das Schlüsselpaar haben, lässt sich ganz einfach ein X.509-Zertifikat erstellen. Das Zertifikat enthält den entsprechenden öffentlichen Schlüssel und darüber hinaus einige Metadaten zu der Organisation, die das Zertifikat erstellt hat. Gehen Sie wie folgt vor, um ein selbst signiertes Zertifikat aus einem privaten RSA- oder DSA-Schlüssel zu erstellen:

openssl req -new -x509 -key dsaprivkey.pem -out dsacert.pem

Sie müssen einige Fragen beantworten. Dann wird das Zertifikat erstellt und als „dsacert.pem“ gespeichert. Dies ist die Datei, die Sie über das Steuerfeld auf Google Workspace hochladen, wenn Sie die SSO konfigurieren.

Zertifikatfingerabdruck erstellen

Für einige Anwendungen ist ein X.509-Zertifikatfingerabdruck statt des X.509-Zertifikats erforderlich. Ein Fingerabdruck ist ein Hashwert des Zertifikats im x509-Binärformat. Der Fingerabdrucktyp hängt vom Algorithmus ab, mit dem der Fingerabdruck erzeugt wird, z. B. SHA-1 oder SHA-256. 

Verwenden Sie den folgenden Befehl, um einen SHA-256-Fingerabdruck aus einem X.509-Zertifikat zu erstellen. Ersetzen Sie dabei den PEM-Dateinamen durch Ihren eigenen PEM-Dateinamen:

openssl x509 -noout -fingerprint -sha256 -inform pem -in "GoogleIDPCertificate-domain.com.pem"

Microsoft Visual Studio .NET

Im Verzeichnis „Common7\Tools\Bin directory“ von Microsoft Visual Studio 2005 finden Sie Dienstprogramme, mit denen Sie ein Zertifikat für Google Workspace generieren können. So erstellen Sie das Schlüsselpaar mit öffentlichem und privatem Schlüssel sowie das Zertifikat in .NET:

1. makecert -r -pe -n "CN=Test Certificate" -sky exchange -sv testcert.pvk testcert.cer
2. pvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx

In den oben stehenden Befehlen wird standardmäßig der RSA-Algorithmus verwendet. In Schritt 1 werden mit dem Tool zum Erstellen von Zertifikaten (makecert.exe) ein selbst signiertes X.509-Zertifikat mit dem Namen „testcert.cer“ und der zugehörige private Schlüssel erstellt.

In Schritt 2 wird mit dem pvk2pfx-Tool (pvk2pfx.exe) aus einer CER- und einer PVK-Datei eine PFX-Datei (Personal Information Exchange) erstellt. Die PFX-Datei enthält den öffentlichen und den privaten Schlüssel.

Die in Schritt 1 erstellte Datei „testcert.cer“ kann über das Steuerfeld in Google Workspace hochgeladen werden. Mit der Datei „testcert.pfx“ aus Schritt 2 kann eine Instanz „X509Certificate2 (.NET 2.0+)“ zur Signatur der SAML-Antwort erstellt werden.

Keytool in Java

Java-Entwickler können mit dem Dienstprogramm keytool im Standard-JDK das öffentliche/private Schlüsselpaar und das X.509-Zertifikat erstellen. keytool ist ein Dienstprogramm zur Schlüssel- und Zertifikatsverwaltung, mit dem Nutzer ihre eigenen öffentlichen/privaten Schlüsselpaare sowie zugehörige Zertifikate für die Authentifizierungsschemas verwalten können, die digitale Signaturen erfordern. In keytool werden Schlüssel und Zertifikate in einem Schlüsselspeicher gespeichert, der für die Standardimplementierung einfach eine Datei („.keystore“) im Basisverzeichnis des Nutzers ist. Private Schlüssel sind passwortgeschützt.

DSA-Schlüsselpaare erstellen

1. keytool -genkey -alias dsassokey -keyalg "DSA" -keysize 2048 -validity 180 -sigalg "SHA256withDSA"
2. keytool -export -alias dsassokey -file dsasso.cer

In Schritt 1 wird mithilfe des DSA-Algorithmus ein 2.048-Bit-Schlüsselpaar mit einem öffentlichen und einem privaten Schlüssel erstellt, das 180 Tage gültig ist.

In Schritt 2 wird aus dem öffentlichen Schlüssel ein X.509-Zertifikat („dsasso.cer“) erstellt. Laden Sie dann „dsasso.cer“ über das Steuerfeld in Google Workspace hoch.

RSA-Schlüsselpaare erstellen

1. keytool -genkey -alias rsassokey -keyalg "RSA" -keysize 2048 -validity 180
2. keytool -export -alias rsassokey -file rsasso.cer

In Schritt 1 wird mithilfe des RSA-Algorithmus ein 2.048-Bit-Schlüsselpaar mit einem öffentlichen und einem privaten Schlüssel erstellt, das 180 Tage gültig ist.

In Schritt 2 wird aus dem öffentlichen Schlüssel ein X.509-Zertifikat („rsasso.cer“) erstellt. Laden Sie dann „rsasso.cer“ über das Steuerfeld in Google Workspace hoch.

Java Cryptography Architecture

Die Java Cryptography Architecture (JCA) bietet wichtige Klassen und Schnittstellen zum Generieren und Bearbeiten von Sicherheitseigenschaften. Die JCA enthält die Komponenten der Java 2 SDK-Sicherheits-API für kryptografische Aufgaben. Mit dieser API können Sie ganz einfach im gewünschten Algorithmus Schlüsselpaare aus öffentlichen und privaten Schlüsseln erstellen. Mit dem folgenden Beispielcode werden DSA- oder RSA-Schlüssel erstellt, die für die Einmalanmeldung in Google Workspace verwendet werden können.

Schlüsselpaar aus öffentlichem und privatem Schlüssel erstellen

import java.io.*;
import java.security.*;

public class KeyGenDSA {

  public static void main(String[] args) {
        try {
          KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
          SecureRandom random = SecureRandom.getInstanceStrong();
          keyGen.initialize(2048, random);

          KeyPair pair = keyGen.generateKeyPair();
          PrivateKey priv = pair.getPrivate();
          PublicKey pub = pair.getPublic();

          byte[] encPriv = priv.getEncoded();
          FileOutputStream privfos = new FileOutputStream("DSAPrivateKey.key");
          privfos.write(encPriv);
          privfos.close();

          byte[] encPub = pub.getEncoded();
          FileOutputStream pubfos = new FileOutputStream("DSAPublicKey.key");
          pubfos.write(encPub);
          pubfos.close();

   } catch (Exception e) {
         e.printStackTrace();
   }
  }
}

In diesem Code wird mithilfe von KeyPairGenerator ein DSA-Schlüsselpaar erstellt. Die Schlüssel im Binärformat werden in separate Dateien ausgegeben. Anschließend können Sie den öffentlichen Schlüssel in Google Workspace registrieren und Ihre SAML-Antwort mit dem privaten Schlüssel signieren. Wenn Sie statt DSA-Schlüsseln ein RSA-Schlüsselpaar generieren möchten, ersetzen Sie einfach im Code „DSA“ durch „RSA“.

Zertifikat oder öffentlichen Schlüssel in Google Workspace registrieren

Den etwas komplizierteren Teil haben Sie jetzt hinter sich! Der nächste Schritt ist einfach. Um das Zertifikat oder den öffentlichen Schlüssel bei Google Workspace zu registrieren, gehen Sie zur Admin-Konsole und melden Sie sich als Administrator an. Wählen Sie Sicherheit aus und klicken Sie dann auf Einmalanmeldung (SSO) einrichten. Geben Sie auf der Seite unter Einmalanmeldung (SSO) mit externem Identitätsanbieter einrichten in alle Felder die erforderlichen Informationen ein.

War das hilfreich?

Wie können wir die Seite verbessern?
Suche
Suche löschen
Suche schließen
Hauptmenü
16988683054559687950
true
Suchen in der Hilfe
true
true
true
true
true
73010
false
false