WordPress: OKTA İle Güvenli Kimlik Doğrulaması

Bir web sayfanız veya web uygulamanız var ve kullanıcılarınızı ayrı bir kullanıcı listesi üzerinden yönetmek istediğinizi varsayalım. Bu ihtiyacın pek çok nedeni olabilir.

AA

Güvenlik bu nedenler arasında en öncelikli olanı diyebiliriz. Peki, ne yapmamız gerekir? Cevap oldukça basit, iki faktörlü kimlik doğrulama (two-factor authentication) bu aşamada ihtiyaç duyduğumuz çözüm yolu olacaktır.

Bildiğimiz üzere, WordPress kullanıcı bilgileri kurulum aşamasında oluşturulan veritabanı tablosunda tutulur. Ancak birden fazla web sitesi veya web uygulaması ile çalıştığımızda her biri için ayrı kullanıcı hesabını yönetmek durumunda kalırız. İhtiyacımız ise bu kullanıcı hesaplarını senkronize edebilmek, değil mi? Tüm kullanıcıları tek bir yerden yönetebilsek ve aynı kullanıcı bilgilerini kullanarak tüm web sitesi ve web uygulamalarına erişebilmek harika olmaz mıydı? Peki, nasıl?

OKTA - WordPress Giriş Formu

OKTA İle Güvenli Kimlik Doğrulaması

OKTA hakkında detaylı bir yazı yayınlayacağım. Ancak, şimdilik kısaca bahsetmek gerekirse; OKTA, kullanıcı hesaplarını ve bu hesaplara ait diğer verileri oluşturup düzenleyebilmemizi sağlayan, verileri güvenli bir şekilde depolayan ve gerektiği zaman bu verileri bir veya daha fazla uygulama ile ilişkilendirebilmemize olanak tanıyan bir API hizmetidir. Ek olarak, her uygulama için özel giriş formu oluşturabileceğimiz ve uygulamalara uygun şekilde yerleştirebileceğimiz bir de oturum açma widget’ı (sign-in widget) sağlar.

OKTA Kullanıcı Ekleme İşlemi

OKTA hesabınızda bulunan ve/veya yeni oluşturacağınız tüm kullanıcılar tanımlı web sayfası ve web uygulamalarına giriş yapabilirler. Onaylanan tüm kullanıcıların bu web sayfası ve web uygulamalarında kullanıcı hesapları otomatik olarak oluşturulur. Ek olarak, eğer çok faktörlü kimlik doğrulaması (multi-factor authentication) etkinleştirirseniz kullanıcılar oturum başlatmak istediklerinde sizden oturumun başlaması için izin istenir ve onaylamanız durumunda kullanıcının giriş işlemi gerçekleştirilir. Peki, bu işlemin gerçekleştirilmesi için neler gerekir?

WordPress ve OKTA Entegrasyon İşlemleri

Yazının başlığında da belirttiğim üzere, şimdilik WordPress temelinde OKTA entegrasyonuna değineceğim. Ancak, aşağıdaki ilk adımlar tüm web sitesi kurulumları için aynı. Dolayısıyla bir noktaya kadar aynı adımları izleyebilirsiniz. O halde başlayalım. Öncelikle elbette OKTA servisine üye olmanız gerekiyor. Üyelik işlemi için okta/developer sayfasını ziyaret edebilirsiniz. Üyelik işleminin başarıyla tamamlanmasının ardından dev-123456-admin.okta.com gibi size özel bir OktaDomain oluşturulacak ve bu URL üzerinden console işlemlerini gerçekleştirebileceğiz. Unutmadan, bu URL içerisindeki admin console erişimi için kullanılmakta. Ancak, OktaDomain‘iniz dev-123456.okta.com. Bu bilgi kurulum aşamasında işimize yarayacak. Evet, Web sayfamız için artık Application tanımlama aşamasına geçebiliriz. OKTA console sayfasındaki Applications sekmesini tıklayarak var olan uygulamalarımızı listeleyebilir veya yeni uygulamalar tanımlayabiliriz. Bu aşamada ilk kez uygulama tanımı yapacağımız için Add Application butonunu tıklayarak ilerleyelim.

OKTA Yeni Uygulama Tanımlama

Bu kurulumu WordPress web sayfamızda kullanacağımız için Web seçeneği seçiyoruz. Bu seçimin ardından uygulama ayarları karşımıza çıkacak ve bizden web sayfamızın URL’i başta olmak üzere bazı bilgileri girmemiz istenecek.

OKTA WordPress Application Ayarları

Bizim için önemli ve düzenlememiz gereken alanlar; Base URIs, Login redirect URIs ve Logout redirect URIs. Base URIs, OKTA üzerinden erişim sağlayacağımız web sayfalarını tanımlayacağımız alan. Bu alanı boş bırakabilir veya ilgili alan adlarını (domain) girerek sınırlandırma sağlayabiliriz. Login redirect URIs, kullanıcı girişi onaylandığında yönlendirilecek sayfanın URL’ini bu alanda tanımlamalıyız. WordPress kurulumlarında kullanacağımız URL alanadi.com/wp-login.php şeklinde olmalı. Bu URL aynı zamanda console’da Org URL olarak da belirtilmekte. Logout redirect URIs, kullanıcı oturumunu sonlandırıldığında (logout) yönlendirecek sayfa URL’ini bu alanda belirtmeliyiz. WordPress kurulumu için bu alanı alanadi.com/wp-login.php?action=logout şeklinde doldurabiliriz. Elbette alanadi.com yazan yerleri kendi URL’iniz ile değiştirmeyi unutmamalısınız. Bu bilgilerin yukarıda bahsettiğim şekilde doldurduktan ve Done butonu ile kayıt ettikten sonra Client Credentials tanımlarımız bize iletilecek. Buradaki Client ID ve Client secret bilgilerini web sayfalarımızı OKTA üzerinden birbirleri ile ilişkilendirebilmek için kullanacağız. WordPress için gerekli olan adımlara geçebiliriz.

WordPress OKTA Eklenti İşlemleri

OKTA entegrasyonunu OKTA tarafından hazırlanmış olan WordPress eklentisi (plugin) üzerinden kolaylıkla gerçekleştirebiliriz. Bunun için ilk olarak ilgili eklentiyi (okta-wordpress-sign-in-widget) OKTA’nın GitHub hesabı altından indirebiliriz. Eklentiyi WordPress eklenti dizinine yüklememizin ardından ilk olarak env.example.php dosya adını env.php şeklinde değiştirmeliyiz.

OKTA WordPress Eklentisi

Ardından env.php dosyasını açarak OKTA_BASE_URL, OKTA_CLIENT_ID, OKTA_CLIENT_SECRET alanlarını doldurmamız gerekmekte. OKTA_BASE_URL, yazının başında da belirttiğim üzere, OKTA console erişiminde bizim için tanımlanan URL bilgisini gireceğimiz ve admin tanımını sildiğimiz URL; dev-123456.okta.com gibi. OKTA_CLIENT_ID ve OKTA_CLIENT_SECRET ise Application kaydı oluşturduğumuzda bizimle paylaşılan bilgileri gireceğimiz alan. İlgili bilgileri girdiğimizde aşağı yukarı şu sonuca sahip olmalıyız.

define('OKTA_BASE_URL', 'https://dev-123456.okta.com');
define('OKTA_CLIENT_ID', '1ab23defghjiK45lLM6n7');
define('OKTA_CLIENT_SECRET', 'Ab1CdE_2FghIJK3Lm4noPrSTuUvyzXQ5ABCD67Ef');

# If you're using API Access Management, define the auth server ID below.
# Otherwise leave it commented out.

# define('OKTA_AUTH_SERVER_ID', 'default');

Evet, artık bu bilgiler tanımlı eklentiyi kurduğumuz tüm WordPress sitelerimizi, eklenti haricinde farklı şekilde entegre ettiğimiz web sitesi ve uygulamalarımızı aynı client id üzerinden ilişkilendirebilir ve kullanıcılarımızın aynı kullanıcı bilgilerini kullanarak tüm bu web sitesi ve uygulamalara erişmesini sağlayabiliriz. Unutmadan, kullanıcı girişi dahil olmak üzere tüm sayfa ve form özelleştirmelerini Customization sayfası altından gerçekleştirebilirsiniz. Peki, WordPress için güvenlik seviyesini daha da artırmak ve çok faktörlü kimlik doğrulamasını kullanmak istersek ne yapmalıyız?

OKTA Çok Faktörlü Kimlik Doğrulama

WordPress için Çok Faktörlü Kimlik Doğrulama

Bu işlem için öncelikle çok faktörlü kimlik doğrulama (multifactor authentication) işlemini seçili hale getirmeliyiz. İlk olarak Applications altından oluşturduğumuz uygulama tanımına gidelim ve uygulama adını tıklayarak ilgili uygulama ayarlarını görüntüleyelim. Ardından, ayarlar sayfasında yer alan Sign On sekmesini tıklayarak ilgili detayları görüntüleyebiliriz.

OKTA Sign On

Sign On sekmesi altında bulunan Sign On Policy > Add Rule butonunu üzerinden çok faktörlü kimlik doğrulama işlemini başlatabiliriz. Ancak, ilk kurulumda standart olarak bu seçenek pasif durumda olacaktır. Dolayısıyla, Allowed with multifactor authentication seçiminin aktif hale gelebilmesi için önce Multifactor Authentication bağlantısını tıklayarak ilgili aktivasyonu sağlamalıyız. Ayrıca, bu sayfa üzerinden SMS Authentication, Google Authenticator, Symantec VIP, On-Prem MFA, RSA SecurID işlemlerini de gerçekleştirebiliriz.

OKTA Verify

Multifactor Authentication aktivasyon işleminin ardından, tekrar App Sign On Rule alanına döndüğümüzde Prompt for re-authentication ve Prompt for factor: Multifactor Settings alanlarının seçilebilir hale geldiğiniz göreceğiz.

OKTA Multifactor

İhtiyaç duyduğumuz şekilde bu tanımları yapıp kayıt ettikten sonra çok faktörlü kimlik doğrulaması tüm web sitesi ve web uygulamaları için aktif hale gelecektir. Bir kullanıcı oturum başlatmak istediğinde kullanıcı bilgilerini doğru bir şekilde girmesinin ve onaylanmasının ardından mobil uygulama üzerinden de bir bildirim alacak (push notification) ve bu bildirimin de onaylanmasının sonrasında giriş işlemi gerçekleştirilebilecektir.

OKTA Sign On Rule

Unutmadan, bu işlemi sadece belirli kullanıcı grupları için geçerli olacak şekilde de düzenlememiz mümkün. Diğer yanında, istediğimiz zaman bu Rule tanımı pasif hale getirebilir ve/veya düzenleyebiliriz.