Google Workspace menawarkan layanan Single Sign-On (SSO) kepada pelanggan dengan Google Workspace atau Google Workspace for Education. Layanan Login Tunggal Google Workspace menerima kunci dan sertifikat publik yang dibuat dengan algoritma RSA atau DSA. Untuk menggunakan layanan, Anda perlu membuat serangkaian kunci publik dan pribadi serta sertifikat X.509 yang berisi kunci publik. Setelah memiliki kunci publik atau sertifikat, Anda harus mendaftarkannya ke Google. Anda dapat melakukannya dengan cukup mengupload kunci atau sertifikat melalui konsol Google Admin.
Cara Anda membuat kunci dan sertifikat sering kali bergantung pada platform pengembangan dan preferensi bahasa pemrograman Anda. Berikut beberapa cara untuk membuat kunci dan sertifikat yang diperlukan oleh layanan SSO Google Workspace.
Menggunakan OpenSSL
Meskipun ada banyak metode untuk membuat pasangan kunci publik dan pribadi, alat OpenSSL open source adalah salah satu yang paling populer. Tool ini telah di-porting ke semua platform utama dan menyediakan antarmuka command line sederhana untuk pembuatan kunci.
Membuat Kunci Pribadi RSA
Pembuatan kunci pribadi RSA dengan OpenSSL hanya memerlukan satu langkah:
openssl genrsa -out rsaprivkey.pem 2048
Perintah ini akan menghasilkan kunci pribadi yang dienkode PEM dan menyimpannya dalam file
rsaprivkey.pem. Contoh ini membuat kunci 2048-bit, yang akan berfungsi untuk
hampir semua tujuan. Kunci pribadi yang dihasilkan harus dirahasiakan dan digunakan
untuk menandatangani dan mendekripsi data.
Beberapa penerapan, khususnya yang berbasis Java, mungkin memerlukan DER atau PKCS8 yang misalnya dapat dibuat menggunakan langkah-langkah tambahan berikut:
openssl rsa -in rsaprivkey.pem -pubout -outform DER -out rsapubkey.deropenssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivkey.pem -out rsaprivkey.der -nocrypt
Langkah 1 membuat kunci publik dalam format DER.
Langkah 2 menghasilkan kunci pribadi dalam format
pkcs8 dan DER. Setelah
dibuat, Anda dapat menggunakan kunci ini (rsapubkey.der dan rsaprivkey.der).
Membuat Kunci Pribadi DSA
Pembuatan kunci DSA mencakup dua langkah:
openssl dsaparam -out dsaparam.pem 2048openssl gendsa -out dsaprivkey.pem dsaparam.pem
Langkah pertama membuat file parameter DSA, dsaparam.pem, yang dalam hal ini
menginstruksikan OpenSSL untuk membuat kunci 2048-bit pada Langkah 2. File dsaparam.pem itu sendiri bukan kunci, dan dapat dihapus setelah kunci publik dan pribadi dibuat. Langkah kedua sebenarnya membuat kunci pribadi dalam file
dsaprivkey.pem yang harus dirahasiakan.
Untuk mengekspor kunci ke dalam format DER (biner), Anda dapat menggunakan langkah-langkah berikut:
openssl dsa -in dsaprivkey.pem -outform DER -pubout -out dsapubkey.deropenssl pkcs8 -topk8 -inform PEM -outform DER -in dsaprivkey.pem -out dsaprivkey.der -nocrypt
Langkah 1 mengekstrak kunci publik ke dalam format DER.
Langkah 2 mengonversi kunci pribadi ke format
pkcs8 dan DER. Setelah
melakukannya, Anda dapat menggunakan pasangan kunci publik (dsapubkey.der) dan pribadi
(dsaprivkey.der) ini
Membuat sertifikat
Setelah memiliki pasangan kunci, membuat sertifikat X.509 menjadi lebih mudah. Sertifikat berisi kunci publik yang sesuai, beserta beberapa metadata yang terkait dengan organisasi yang membuat sertifikat. Ikuti langkah ini untuk membuat sertifikat yang ditandatangani sendiri dari kunci pribadi RSA atau DSA:
openssl req -new -x509 -key dsaprivkey.pem -out dsacert.pem
Setelah Anda menjawab sejumlah pertanyaan, sertifikat akan dibuat dan disimpan sebagai dsacert.pem. File ini adalah file yang Anda upload ke Google Workspace melalui
Panel Kontrol saat mengonfigurasi SSO.
Membuat sidik jari sertifikat
Beberapa aplikasi memerlukan sidik jari sertifikat X.509, bukan sertifikat X.509 itu sendiri. Sidik jari adalah ringkasan sertifikat dalam format biner x509. Jenis sidik jari bergantung pada algoritma yang digunakan untuk membuat sidik jari, seperti SHA-1 atau SHA-256.
Untuk membuat sidik jari SHA-256 dari sertifikat X.509, gunakan perintah berikut (ganti nama file .pem sertifikat Anda yang sebenarnya):
openssl x509 -noout -fingerprint -sha256 -inform pem -in "GoogleIDPCertificate-domain.com.pem"
Menggunakan Microsoft Visual Studio untuk .NET
Microsoft Visual Studio 2005 menyediakan utilitas (di direktori Common7ToolsBin
) yang dapat digunakan untuk membuat sertifikat yang akan digunakan dengan
Google Workspace. Ikuti langkah-langkah di bawah untuk membuat pasangan kunci dan sertifikat publik dan pribadi di .NET:
makecert -r -pe -n "CN=Test Certificate" -sky exchange -sv testcert.pvk testcert.cerpvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx
Secara default, algoritma RSA digunakan dalam perintah di atas. Langkah 1 menggunakan Alat
Pembuatan
Sertifikat
(makecert.exe) untuk membuat sertifikat X.509 yang ditandatangani sendiri bernama testcert.cer
dan kunci pribadi yang sesuai.
Langkah 2 menggunakan Alat
pvk2pfx (pvk2pfx.exe) untuk membuat file Personal Information Exchange (PFX) dari file
CER dan PVK. PFX berisi kunci publik dan pribadi Anda.
File testcert.cer yang dibuat pada Langkah 1 dapat diupload ke
Google Workspace menggunakan Panel Kontrol; dan, testcert.pfx dari Langkah 2
dapat digunakan untuk membuat instance X509Certificate2 (.NET 2.0+) untuk menandatangani
respons SAML.
Menggunakan Keytool di Java
Developer Java dapat menggunakan utilitas keytool yang ada di JDK standar untuk
membuat pasangan kunci publik/pribadi dan sertifikat X.509. keytool adalah utilitas pengelolaan kunci dan sertifikat yang memungkinkan pengguna mengelola pasangan kunci publik/pribadi mereka sendiri dan sertifikat terkait untuk digunakan dalam skema autentikasi yang memerlukan tanda tangan digital. keytool menyimpan kunci dan sertifikat di
"keystore" yang untuk penerapan default hanyalah file (.keystore)
di direktori beranda pengguna. Kunci pribadi dilindungi dengan sandi.
Membuat pasangan kunci DSA
keytool -genkey -alias dsassokey -keyalg "DSA" -keysize 2048 -validity 180 -sigalg "SHA256withDSA"keytool -export -alias dsassokey -file dsasso.cer
Langkah 1 menghasilkan pasangan kunci publik/pribadi dengan ukuran 2048 dan validitas 180 hari menggunakan algoritma DSA.
Langkah 2 membuat sertifikat X.509 (dsasso.cer) dari kunci publik. Kemudian, Anda mengupload dsasso.cer ke Google Workspace menggunakan Panel Kontrol.
Membuat pasangan kunci RSA
keytool -genkey -alias rsassokey -keyalg "RSA" -keysize 2048 -validity 180keytool -export -alias rsassokey -file rsasso.cer
Langkah 1 menghasilkan pasangan kunci publik/pribadi dengan ukuran 2048 dan validitas 180 hari menggunakan algoritma RSA.
Langkah 2 membuat sertifikat X.509 (rsasso.cer) dari kunci publik. Kemudian, Anda
mengupload
rsasso.cer ke Google Workspace menggunakan Panel Kontrol.
Menggunakan Java Cryptography Architecture
Java Cryptography Architecture (JCA) menyediakan class dan antarmuka inti untuk membuat dan memanipulasi properti keamanan. JCA mencakup bagian dari Java 2 SDK Security API yang terkait dengan kriptografi. Dengan menggunakan API ini, Anda dapat dengan mudah membuat pasangan kunci publik dan pribadi dalam algoritma yang diinginkan. Di bawah ini adalah kode contoh yang membuat kunci DSA atau RSA untuk digunakan dengan layanan SSO Google Workspace.
Buat pasangan kunci publik dan pribadi
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();
}
}
}
Kode di atas menggunakan KeyPairGenerator untuk membuat pasangan kunci DSA. Kunci yang dihasilkan akan dalam format biner dan dikeluarkan ke dalam file individual.
Setelah memiliki kunci, Anda dapat mendaftarkan kunci publik dengan
Google Workspace dan menggunakan kunci pribadi untuk menandatangani SAMLResponse. Untuk membuat pasangan kunci RSA, bukan DSA, yang perlu Anda lakukan adalah mengganti "DSA" dalam kode dengan "RSA".
Mendaftarkan sertifikat atau kunci publik Anda dengan Google Workspace
Setelah Anda menyelesaikan bagian sulit dalam membuat kunci dan sertifikat, bagian berikutnya sangat sederhana. Untuk mendaftarkan sertifikat atau kunci publik Anda ke Google Workspace, Anda harus membuka Konsol admin dan login sebagai administrator. Pilih Keamanan, lalu Siapkan single sign-on (SSO), dan isi semua kolom di halaman pada bagian Siapkan SSO dengan penyedia identitas pihak ketiga.