Google Workspace, Google Workspace veya Google Workspace for Education kullanan müşterilere Tek Oturum Açma (TOA) hizmeti sunar. Google Workspace Tek Oturum Açma hizmeti, RSA veya DSA algoritmasıyla oluşturulan ortak anahtarları ve sertifikaları kabul eder. Hizmeti kullanmak için ortak ve özel anahtar kümesini ve ortak anahtarı içeren bir X.509 sertifikası oluşturmanız gerekir. Ortak anahtar veya sertifika aldıktan sonra bunu Google'a kaydetmeniz gerekir. Bunu, anahtarı veya sertifikayı Google Yönetici Konsolunuz üzerinden yükleyerek yapabilirsiniz.
Anahtar ve sertifika oluşturma şekliniz genellikle geliştirme platformunuza ve programlama dili tercihinize bağlıdır. Google Workspace SSO hizmeti için gereken anahtarları ve sertifikayı oluşturmanın çeşitli yolları vardır.
OpenSSL'i kullanma
Herkese açık ve özel anahtar çiftleri oluşturmak için birçok yöntem olsa da açık kaynaklı OpenSSL aracı en popüler olanlardan biridir. Tüm büyük platformlara taşınmış olup anahtar oluşturma için basit bir komut satırı arayüzü sağlar.
RSA Özel Anahtarını oluşturma
OpenSSL üzerinden RSA özel anahtarı oluşturma işlemi tek adımdan oluşur:
openssl genrsa -out rsaprivkey.pem 2048
Bu komut, PEM kodlamalı bir özel anahtar oluşturur ve bunu rsaprivkey.pem dosyasına kaydeder. Bu örnekte, neredeyse her amaç için uygun olan 2048 bitlik bir anahtar oluşturulur. Elde edilen özel anahtar gizli tutulmalı ve verileri imzalamak ile şifrelerini çözmek için kullanılmalıdır.
Bazı uygulamalar (özellikle Java tabanlı olanlar), DER veya PKCS8 gerektirebilir. Bu sertifikalar, örneğin aşağıdaki ek adımlar kullanılarak oluşturulabilir:
openssl rsa -in rsaprivkey.pem -pubout -outform DER -out rsapubkey.deropenssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivkey.pem -out rsaprivkey.der -nocrypt
1. adım, ortak anahtarı DER biçiminde oluşturur.
2. adımda özel anahtar pkcs8 ve DER biçiminde oluşturulur. Oluşturulduktan sonra bu anahtarları (rsapubkey.der ve rsaprivkey.der) kullanabilirsiniz.
DSA Özel Anahtarı oluşturma
DSA anahtarı oluşturma işlemi iki adımdan oluşur:
openssl dsaparam -out dsaparam.pem 2048openssl gendsa -out dsaprivkey.pem dsaparam.pem
İlk adımda bir DSA parametre dosyası (dsaparam.pem) oluşturulur. Bu dosya, 2. adımda OpenSSL'ye 2048 bitlik bir anahtar oluşturma talimatı verir. dsaparam.pem dosyası anahtar değildir ve ortak anahtar ile özel anahtar oluşturulduktan sonra silinebilir. İkinci adımda, gizli tutulması gereken dsaprivkey.pem dosyasında özel anahtar oluşturulur.
Anahtarı DER (ikili) biçiminde dışa aktarmak için aşağıdaki adımları kullanabilirsiniz:
openssl dsa -in dsaprivkey.pem -outform DER -pubout -out dsapubkey.deropenssl pkcs8 -topk8 -inform PEM -outform DER -in dsaprivkey.pem -out dsaprivkey.der -nocrypt
1. adım, ortak anahtarı DER biçiminde çıkarır.
2. adımda özel anahtar, pkcs8 ve DER biçimine dönüştürülür. Bu işlemi tamamladıktan sonra genel (dsapubkey.der) ve özel (dsaprivkey.der) anahtar çiftini kullanabilirsiniz.
Sertifika oluşturma
Anahtar çiftini oluşturduktan sonra X.509 sertifikasını basitçe oluşturabilirsiniz. Sertifika, ilgili ortak anahtarı ve sertifikayı oluşturan kuruluşla ilgili bazı meta verileri içerir. RSA veya DSA özel anahtarından kendinden imzalı sertifika oluşturmak için bu adımı uygulayın:
openssl req -new -x509 -key dsaprivkey.pem -out dsacert.pem
Bir dizi soruyu yanıtladıktan sonra sertifika oluşturulur ve dsacert.pem olarak kaydedilir. Bu dosya, TOA'yı yapılandırırken Kontrol Paneli üzerinden Google Workspace'e yüklediğiniz dosyadır.
Sertifika parmak izi oluşturma
Bazı uygulamalar, X.509 sertifikası yerine X.509 sertifika parmak izi kullanılmasını gerektirir. Parmak izi, x509 ikili biçimindeki sertifikanın özetidir. Parmak izi türü, parmak izini oluşturmak için kullanılan algoritmaya (ör. SHA-1 veya SHA-256) bağlıdır.
X.509 sertifikasından SHA-256 parmak izi oluşturmak için aşağıdaki komutu kullanın (gerçek sertifika .pem dosya adınızı girin):
openssl x509 -noout -fingerprint -sha256 -inform pem -in "GoogleIDPCertificate-domain.com.pem"
.NET için Microsoft Visual Studio'yu kullanma
Microsoft Visual Studio 2005, Google Workspace ile kullanılacak bir sertifika oluşturmak için kullanılabilecek yardımcı programlar (Common7ToolsBin dizininde) sağlar. .NET'te genel ve özel anahtar çifti ile sertifika oluşturmak için aşağıdaki adımları uygulayın:
makecert -r -pe -n "CN=Test Certificate" -sky exchange -sv testcert.pvk testcert.cerpvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx
Varsayılan olarak, yukarıdaki komutlarda RSA algoritması kullanılır. 1. adımda, testcert.cer adlı kendi kendine imzalanmış bir X.509 sertifikası ve ilgili özel anahtarı oluşturmak için Certificate
Creation Tool (Sertifika Oluşturma Aracı) (makecert.exe) kullanılır.
2. adımda, CER ve PVK dosyasından Kişisel Bilgi Değişimi (PFX) dosyası oluşturmak için pvk2pfx aracı (pvk2pfx.exe) kullanılır. PFX hem genel hem de özel anahtarınızı içerir.
1. adımda oluşturulan testcert.cer dosyası, Kontrol Paneli kullanılarak Google Workspace'e yüklenebilir. 2. adımdaki testcert.pfx ise SAML yanıtını imzalamak için X509Certificate2 (.NET 2.0+) örneği oluşturmak üzere kullanılabilir.
Java'da Keytool'u kullanma
Java geliştiriciler, ortak/özel anahtar çiftini ve X.509 sertifikasını oluşturmak için standart JDK'da bulunan keytool yardımcı programını kullanabilir. keytool, kullanıcıların kimlik doğrulama şemalarında kullanılmak üzere kendi ortak/özel anahtar çiftlerini ve ilişkili sertifikalarını yönetmelerine olanak tanıyan bir anahtar ve sertifika yönetimi yardımcı programıdır. keytool, anahtarları ve sertifikaları, varsayılan uygulamada kullanıcının ana dizinindeki basit bir dosya (.keystore) olan "anahtar deposunda" saklar. Özel anahtarlar şifrelerle korunur.
DSA anahtar çiftleri oluşturma
keytool -genkey -alias dsassokey -keyalg "DSA" -keysize 2048 -validity 180 -sigalg "SHA256withDSA"keytool -export -alias dsassokey -file dsasso.cer
1. adımda, DSA algoritması kullanılarak 2048 boyutunda ve 180 gün geçerliliğe sahip bir ortak/özel anahtar çifti oluşturulur.
2. adımda, ortak anahtardan bir X.509 sertifikası (dsasso.cer) oluşturulur. Ardından, Kontrol Paneli'ni kullanarak dsasso.cer dosyasını Google Workspace'e yüklersiniz.
DSA anahtar çiftleri oluşturma
keytool -genkey -alias rsassokey -keyalg "RSA" -keysize 2048 -validity 180keytool -export -alias rsassokey -file rsasso.cer
1. adımda, RSA algoritması kullanılarak 2048 boyutunda ve 180 gün geçerliliğe sahip bir ortak/özel anahtar çifti oluşturulur.
2. adımda, ortak anahtardan bir X.509 sertifikası (rsasso.cer) oluşturulur. Ardından, Kontrol Paneli'ni kullanarak rsasso.cer'yı Google Workspace'e yüklersiniz.
Java Cryptography Architecture (Java Şifreleme Mimarisi) Kullanımı
Java Cryptography Architecture (JCA), güvenlik özelliklerini oluşturmak ve değiştirmek için temel sınıflar ve arayüzler sağlar. JCA, Java 2 SDK Security API'nin kriptografiyle ilgili kısımlarını kapsar. Bu API'yi kullanarak istediğiniz algoritmayla kolayca ortak ve özel anahtar çiftleri oluşturabilirsiniz. Aşağıda, Google Workspace TOA hizmetiyle kullanılacak DSA veya RSA anahtarları oluşturan örnek bir kod verilmiştir.
Genel ve özel anahtar çifti oluşturma
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();
}
}
}
Yukarıdaki kod, DSA anahtarı çifti oluşturmak için KeyPairGenerator kullanır. Oluşturulan anahtarlar ikili biçimde olur ve ayrı dosyalara aktarılır.
Anahtarları aldıktan sonra ortak anahtarı Google Workspace'e kaydedebilir ve özel anahtarı SAMLResponse dosyanızı imzalamak için kullanabilirsiniz. DSA yerine RSA anahtar çifti oluşturmak için kodda "DSA" yerine "RSA" yazmanız yeterlidir.
Sertifikanızı veya genel anahtarınızı Google Workspace'e kaydetme
Anahtarları ve sertifikaları oluşturma gibi zorlu kısmı tamamladıktan sonraki adım oldukça basittir. Sertifikanızı veya genel anahtarınızı Google Workspace'e kaydetmek için Yönetici Konsolu'na gidip yönetici olarak giriş yapmanız gerekir. Güvenlik'i, ardından Tek oturum açma (TOA) ayarlarını yap'ı seçin ve Üçüncü taraf kimlik sağlayıcı ile TOA ayarlarını yap bölümündeki tüm alanları doldurun.