Google Workspace menawarkan layanan Single Sign-On (SSO) kepada pelanggan yang menggunakan Google Workspace atau Google Workspace for Education. Layanan Single Sign-On Google Workspace menerima kunci publik dan sertifikat yang dibuat dengan algoritma RSA atau DSA. Untuk menggunakan layanan ini, Anda perlu membuat kumpulan kunci publik dan kunci pribadi serta sertifikat X.509 yang berisi kunci publik. Setelah memiliki kunci publik atau sertifikat, Anda harus mendaftarkannya ke Google. Anda dapat melakukannya dengan 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. Alat 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 menghasilkan kunci pribadi berenkode 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 implementasi, terutama 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 di 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 menjadi 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 menyimpan 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. 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 publik dan pribadi serta sertifikat 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 di 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 implementasi default hanyalah file (.keystore)
di direktori utama 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 menghasilkan 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 menghasilkan 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-bagian Security API Java 2 SDK yang terkait dengan kriptografi. Dengan menggunakan API ini, Anda dapat dengan mudah membuat pasangan kunci publik dan kunci pribadi dalam algoritma yang diinginkan. Berikut adalah kode contoh yang membuat kunci DSA atau RSA untuk digunakan dengan layanan SSO Google Workspace.
Membuat 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 sepasang kunci DSA. Kunci yang dihasilkan akan dalam format biner dan di-output ke dalam file individual.
Setelah memiliki kunci, Anda dapat mendaftarkan kunci publik ke
Google Workspace dan menggunakan kunci pribadi untuk menandatangani SAMLResponse Anda. Untuk
membuat pasangan kunci RSA, bukan DSA, Anda hanya perlu mengganti
"DSA" dalam kode dengan "RSA".
Mendaftarkan sertifikat atau kunci publik Anda ke Google Workspace
Setelah Anda menyelesaikan bagian yang rumit dalam membuat kunci dan sertifikat, bagian berikutnya akan sangat mudah. 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.