{"id":34086,"date":"2025-11-11T01:40:55","date_gmt":"2025-11-10T22:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34086"},"modified":"2025-11-11T01:40:55","modified_gmt":"2025-11-10T22:40:55","slug":"ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/","title":{"rendered":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131 ve kurumsal a\u011f yap\u0131lar\u0131nda, kullan\u0131c\u0131lar\u0131n birden fazla servise tek bir kimlik bilgisiyle eri\u015febilmesi (Single Sign-On &#8211; SSO) kritik bir ihtiya\u00e7 haline gelmi\u015ftir. Bu ihtiyac\u0131 kar\u015f\u0131lamak i\u00e7in geli\u015ftirilen en yayg\u0131n standartlardan biri G\u00fcvenlik Onaylama \u0130\u015faretleme Dili (Security Assertion Markup Language &#8211; SAML)&#8217;dir. SAML, farkl\u0131 g\u00fcvenlik alanlar\u0131 aras\u0131nda kimlik do\u011frulama ve yetkilendirme verilerinin g\u00fcvenli bir \u015fekilde de\u011fi\u015fimini sa\u011flayan XML tabanl\u0131 bir protokold\u00fcr. Bu sayede kullan\u0131c\u0131lar, bir kimlik sa\u011flay\u0131c\u0131ya (Identity Provider &#8211; IdP) bir kez giri\u015f yaparak, birden fazla servis sa\u011flay\u0131c\u0131ya (Service Provider &#8211; SP) tekrar kimlik do\u011frulamas\u0131 yapmadan eri\u015febilirler.<\/p>\n<p>SimpleSAMLphp, PHP ile yaz\u0131lm\u0131\u015f, a\u00e7\u0131k kaynakl\u0131 ve kullan\u0131m\u0131 kolay bir SAML 2.0 IdP ve SP uygulamas\u0131d\u0131r. PHP tabanl\u0131 uygulamalar\u0131n\u0131za SAML kimlik do\u011frulama yetene\u011fi kazand\u0131rmak i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr. Hem IdP hem de SP rol\u00fcnde \u00e7al\u0131\u015fabilme yetene\u011fi, esnek yap\u0131land\u0131rma se\u00e7enekleri ve geni\u015f topluluk deste\u011fi sayesinde, SimpleSAMLphp bir\u00e7ok geli\u015ftirici ve sistem y\u00f6neticisi i\u00e7in tercih sebebi olmu\u015ftur.<\/p>\n<p>Bu makalede, Ubuntu 16.04 i\u015fletim sistemi \u00fczerinde SimpleSAMLphp&#8217;nin nas\u0131l kurulaca\u011f\u0131n\u0131 ve hem servis sa\u011flay\u0131c\u0131 (SP) hem de kimlik sa\u011flay\u0131c\u0131 (IdP) olarak nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ubuntu 16.04, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olmas\u0131 nedeniyle hala bir\u00e7ok kurumsal ortamda kullan\u0131lmaktad\u0131r, bu y\u00fczden bu platforma \u00f6zel kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 b\u00fcy\u00fck \u00f6nem ta\u015f\u0131maktad\u0131r. Makalenin sonunda, SimpleSAMLphp&#8217;yi kullanarak g\u00fcvenli ve esnek bir SAML tabanl\u0131 kimlik do\u011frulama sistemi kurmu\u015f olacaks\u0131n\u0131z.<\/p>\n<h3>\u00d6nko\u015fullar<\/h3>\n<p>SimpleSAMLphp kurulumuna ba\u015flamadan \u00f6nce, Ubuntu 16.04 sunucunuzda baz\u0131 temel bile\u015fenlerin kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekmektedir. Bu b\u00f6l\u00fcmde, gerekli t\u00fcm \u00f6nko\u015fullar\u0131 ve bunlar\u0131n kurulum ad\u0131mlar\u0131n\u0131 ele alaca\u011f\u0131z.<\/p>\n<h4>Sistem G\u00fcncellemesi<\/h4>\n<p>\u0130lk ad\u0131m olarak, sunucunuzdaki paket listelerini g\u00fcncelleyin ve mevcut paketleri y\u00fckseltin:<\/p>\n<pre><code>sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<h4>Apache2 Web Sunucusu Kurulumu<\/h4>\n<p>SimpleSAMLphp bir web uygulamas\u0131 oldu\u011fu i\u00e7in, bir web sunucusuna ihtiya\u00e7 duyar. Bu makalede Apache2 kullanaca\u011f\u0131z. Apache2&#8217;yi kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>sudo apt install apache2 -y<\/code><\/pre>\n<p>Kurulumdan sonra Apache2 servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code>sudo systemctl status apache2<\/code><\/pre>\n<h4>PHP ve Gerekli Uzant\u0131lar\u0131n Kurulumu<\/h4>\n<p>Ubuntu 16.04 varsay\u0131lan olarak PHP 7.0 s\u00fcr\u00fcm\u00fcn\u00fc sunar. SimpleSAMLphp&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in baz\u0131 PHP uzant\u0131lar\u0131na ihtiyac\u0131 vard\u0131r. Gerekli PHP paketlerini ve uzant\u0131lar\u0131n\u0131 kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code>sudo apt install php libapache2-mod-php php-xml php-mbstring php-gd php-json php-mysql php-ldap -y<\/code><\/pre>\n<p>*   <code>php<\/code>: PHP \u00e7ekirdek paketi.<br \/>\n*   <code>libapache2-mod-php<\/code>: Apache i\u00e7in PHP mod\u00fcl\u00fc.<br \/>\n*   <code>php-xml<\/code>: XML i\u015fleme yetenekleri i\u00e7in gereklidir (SAML XML mesajlar\u0131 i\u00e7in).<br \/>\n*   <code>php-mbstring<\/code>: \u00c7ok baytl\u0131 dizeleri i\u015flemek i\u00e7in gereklidir.<br \/>\n*   <code>php-gd<\/code>: G\u00f6r\u00fcnt\u00fc i\u015fleme yetenekleri i\u00e7in gereklidir (\u00f6rne\u011fin, CAPTCHA).<br \/>\n*   <code>php-json<\/code>: JSON i\u015fleme yetenekleri i\u00e7in gereklidir.<br \/>\n*   <code>php-mysql<\/code>: Veritaban\u0131 tabanl\u0131 kimlik do\u011frulama kaynaklar\u0131 kullanacaksan\u0131z gereklidir.<br \/>\n*   <code>php-ldap<\/code>: LDAP tabanl\u0131 kimlik do\u011frulama kaynaklar\u0131 kullanacaksan\u0131z gereklidir.<\/p>\n<p>Kurulumdan sonra, Apache&#8217;nin PHP mod\u00fcl\u00fcn\u00fc etkinle\u015ftirdi\u011finden emin olmak i\u00e7in Apache servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl restart apache2<\/code><\/pre>\n<h4>Composer Kurulumu<\/h4>\n<p>SimpleSAMLphp&#8217;nin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek i\u00e7in Composer&#8217;\u0131 kullanaca\u011f\u0131z. Composer&#8217;\u0131 kurmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<\/p>\n<pre><code>sudo apt install curl -y\ncurl -sS https:\/\/getcomposer.org\/installer | php\nsudo mv composer.phar \/usr\/local\/bin\/composer\nsudo chmod +x \/usr\/local\/bin\/composer<\/code><\/pre>\n<p>Composer&#8217;\u0131n do\u011fru \u015fekilde kuruldu\u011funu kontrol etmek i\u00e7in:<\/p>\n<pre><code>composer --version<\/code><\/pre>\n<h3>SimpleSAMLphp Kurulumu<\/h3>\n<p>\u00d6nko\u015fullar tamamland\u0131ktan sonra, SimpleSAMLphp&#8217;yi sunucumuza kurmaya ba\u015flayabiliriz. G\u00fcvenlik en iyi uygulama olarak, SimpleSAMLphp&#8217;yi web sunucusunun k\u00f6k dizini (document root) d\u0131\u015f\u0131na kurmak \u00f6nerilir.<\/p>\n<h4>SimpleSAMLphp Dosyalar\u0131n\u0131n \u0130ndirilmesi ve Yerle\u015ftirilmesi<\/h4>\n<p>SimpleSAMLphp&#8217;yi Composer kullanarak indirebilirsiniz. Bu, ba\u011f\u0131ml\u0131l\u0131klar\u0131 da otomatik olarak y\u00f6netece\u011finden \u00f6nerilen y\u00f6ntemdir. SimpleSAMLphp i\u00e7in <code>\/var\/simplesamlphp<\/code> gibi bir dizin olu\u015ftural\u0131m:<\/p>\n<pre><code>sudo mkdir \/var\/simplesamlphp\nsudo chown www-data:www-data \/var\/simplesamlphp\nsudo chmod 755 \/var\/simplesamlphp\ncd \/var\/simplesamlphp\nsudo -u www-data composer create-project simplesamlphp\/simplesamlphp --stability=stable .<\/code><\/pre>\n<p>Bu komut, <code>\/var\/simplesamlphp<\/code> dizinine SimpleSAMLphp&#8217;nin en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirecek ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 kuracakt\u0131r. <code>-u www-data<\/code> komutu, Composer&#8217;\u0131n Apache kullan\u0131c\u0131s\u0131 (www-data) olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar, bu da dosya izinleri sorunlar\u0131n\u0131 \u00f6nler.<\/p>\n<h4>Apache Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>SimpleSAMLphp&#8217;nin web aray\u00fcz\u00fcne eri\u015febilmek i\u00e7in Apache&#8217;de bir alias veya VirtualHost yap\u0131land\u0131rmas\u0131 yapmam\u0131z gerekiyor. Bu makalede, SimpleSAMLphp&#8217;nin <code>www<\/code> dizinini bir alias olarak yap\u0131land\u0131raca\u011f\u0131z.<\/p>\n<p>Apache yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131 d\u00fczenlemek i\u00e7in <code>sudo nano \/etc\/apache2\/conf-available\/simplesamlphp.conf<\/code> komutunu kullan\u0131n ve a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code>Alias \/simplesaml \/var\/simplesamlphp\/www\n\n<Directory \/var\/simplesamlphp\/www>\n    Require all granted\n<\/Directory><\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, <code>\/simplesaml<\/code> URL&#8217;sine gelen istekleri <code>\/var\/simplesamlphp\/www<\/code> dizinine y\u00f6nlendirecektir.<\/p>\n<p>Yap\u0131land\u0131rmay\u0131 etkinle\u015ftirin ve Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo a2enconf simplesamlphp\nsudo systemctl restart apache2<\/code><\/pre>\n<p>Art\u0131k taray\u0131c\u0131n\u0131zdan <code>http:\/\/your_server_ip_or_domain\/simplesaml<\/code> adresine giderek SimpleSAMLphp kurulum sihirbaz\u0131na eri\u015febiliyor olman\u0131z gerekir.<\/p>\n<h4>Dosya \u0130zinleri<\/h4>\n<p>SimpleSAMLphp&#8217;nin g\u00fcnl\u00fck dosyalar\u0131, sertifikalar ve oturum verileri gibi baz\u0131 dizinlere yazma iznine ihtiyac\u0131 vard\u0131r. Bu dizinlerin <code>www-data<\/code> kullan\u0131c\u0131s\u0131na ait oldu\u011fundan emin olun:<\/p>\n<pre><code>sudo chown -R www-data:www-data \/var\/simplesamlphp\/log\nsudo chown -R www-data:www-data \/var\/simplesamlphp\/cert\nsudo chown -R www-data:www-data \/var\/simplesamlphp\/data<\/code><\/pre>\n<h3>Temel Yap\u0131land\u0131rma<\/h3>\n<p>SimpleSAMLphp&#8217;nin temel yap\u0131land\u0131rmas\u0131, <code>config\/config.php<\/code> ve <code>config\/authsources.php<\/code> dosyalar\u0131 \u00fczerinden yap\u0131l\u0131r. Bu dosyalar, SimpleSAMLphp&#8217;nin davran\u0131\u015f\u0131n\u0131, g\u00fcvenlik ayarlar\u0131n\u0131 ve kimlik do\u011frulama kaynaklar\u0131n\u0131 tan\u0131mlar.<\/p>\n<h4>config.php Dosyas\u0131n\u0131n Yap\u0131land\u0131r\u0131lmas\u0131<\/h4>\n<p><code>config\/config.php<\/code> dosyas\u0131, SimpleSAMLphp&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. \u00d6rnek bir dosya (<code>config-templates\/config.php<\/code>) bulunur, bunu kopyalayarak d\u00fczenleyebilirsiniz:<\/p>\n<pre><code>sudo cp \/var\/simplesamlphp\/config-templates\/config.php \/var\/simplesamlphp\/config\/config.php\nsudo nano \/var\/simplesamlphp\/config\/config.php<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki \u00f6nemli parametreleri d\u00fczenleyin:<\/p>\n<p>*   <strong><code>baseurlpath<\/code><\/strong>: SimpleSAMLphp&#8217;nin web \u00fczerinden eri\u015filebilir oldu\u011fu yolu belirtir. Apache alias&#8217;\u0131n\u0131za g\u00f6re ayarlay\u0131n.<\/p>\n<pre><code>'baseurlpath' => 'simplesaml\/',<\/code><\/pre>\n<p>*   <strong><code>technicalcontact_name<\/code> ve <code>technicalcontact_email<\/code><\/strong>: Hata durumlar\u0131nda ileti\u015fim kurulacak teknik ki\u015finin ad\u0131 ve e-posta adresi.<\/p>\n<pre><code>'technicalcontact_name' => 'Y\u00f6netici',\n'technicalcontact_email' => 'admin@example.org',<\/code><\/pre>\n<p>*   <strong><code>auth.adminpassword<\/code><\/strong>: SimpleSAMLphp y\u00f6netim paneline eri\u015fim i\u00e7in kullan\u0131lacak \u015fifre. G\u00fcvenli bir \u015fifre belirleyin.<\/p>\n<pre><code>'auth.adminpassword' => 'cok_guclu_bir_sifre', \/\/ KES\u0130NL\u0130KLE DE\u011e\u0130\u015eT\u0130R\u0130N!<\/code><\/pre>\n<p>*   <strong><code>secretsalt<\/code><\/strong>: G\u00fcvenlik i\u00e7in kullan\u0131lan rastgele bir dize. Yeni ve benzersiz bir dize olu\u015fturun. Y\u00f6netim panelinde &#8220;Configuration&#8221; sekmesinde \u00f6nerilen bir de\u011fer bulabilirsiniz.<\/p>\n<pre><code>'secretsalt' => 'rastgele-benzersiz-bir-dize', \/\/ KES\u0130NL\u0130KLE DE\u011e\u0130\u015eT\u0130R\u0130N!<\/code><\/pre>\n<p>*   <strong><code>timezone<\/code><\/strong>: Sunucunuzun saat dilimi.<\/p>\n<pre><code>'timezone' => 'Europe\/Istanbul',<\/code><\/pre>\n<p>*   <strong><code>enable.saml20-idp<\/code> ve <code>enable.saml20-sp<\/code><\/strong>: Hangi rolleri etkinle\u015ftirmek istedi\u011finizi belirtin.<br \/>\n    *   Sadece SP olarak kullanacaksan\u0131z <code>enable.saml20-idp<\/code> de\u011ferini <code>false<\/code> yap\u0131n.<br \/>\n    *   Sadece IdP olarak kullanacaksan\u0131z <code>enable.saml20-sp<\/code> de\u011ferini <code>false<\/code> yap\u0131n.<br \/>\n    *   Hem SP hem IdP olarak kullanacaksan\u0131z ikisini de <code>true<\/code> b\u0131rak\u0131n.<\/p>\n<pre><code>'enable.saml20-idp' => true,\n'enable.saml20-sp' => true,<\/code><\/pre>\n<h4>authsources.php Dosyas\u0131n\u0131n Yap\u0131land\u0131r\u0131lmas\u0131<\/h4>\n<p><code>config\/authsources.php<\/code> dosyas\u0131, SimpleSAMLphp&#8217;nin kullanaca\u011f\u0131 kimlik do\u011frulama kaynaklar\u0131n\u0131 tan\u0131mlar. \u00d6rnek bir dosya (<code>config-templates\/authsources.php<\/code>) bulunur, bunu kopyalayarak d\u00fczenleyebilirsiniz:<\/p>\n<pre><code>sudo cp \/var\/simplesamlphp\/config-templates\/authsources.php \/var\/simplesamlphp\/config\/authsources.php\nsudo nano \/var\/simplesamlphp\/config\/authsources.php<\/code><\/pre>\n<p>Bu dosyada, <code>default-sp<\/code> ad\u0131nda bir servis sa\u011flay\u0131c\u0131 yap\u0131land\u0131rmas\u0131 ve <code>example-userpass<\/code> ad\u0131nda basit bir kullan\u0131c\u0131 ad\u0131\/\u015fifre tabanl\u0131 kimlik do\u011frulama kayna\u011f\u0131 g\u00f6receksiniz.<\/p>\n<p>*   <strong><code>default-sp<\/code><\/strong>: Bu, SimpleSAMLphp&#8217;yi bir servis sa\u011flay\u0131c\u0131 olarak kullan\u0131rken referans alaca\u011f\u0131n\u0131z varsay\u0131lan yap\u0131land\u0131rmad\u0131r.<\/p>\n<pre><code>'default-sp' => array(\n    'saml:SP',\n    \/\/ The entity ID of this SP.\n    \/\/ Can be omitted if the entity ID can be calculated from the base URL.\n    \/\/ 'entityID' => null,\n    \/\/ The IdP that this SP should contact.\n    \/\/ Can be omitted if you want to allow the user to choose an IdP from a list.\n    'idp' => null,\n    'privatekey' => 'saml.pem',\n    'certificate' => 'saml.crt',\n    \/*\n     * When using SAML 2.0, the IdP may request that the SP signs the authentication request.\n     * This setting controls whether the SP should sign the authentication requests.\n     * Note that this setting is ignored if the IdP does not request signed authentication requests.\n     *\/\n    'sign.authnrequest' => true,\n    \/*\n     * When using SAML 2.0, the IdP may request that the SP signs the logout request.\n     * This setting controls whether the SP should sign the logout requests.\n     * Note that this setting is ignored if the IdP does not request signed logout requests.\n     *\/\n    'sign.logoutrequest' => true,\n    \/*\n     * When using SAML 2.0, the IdP may request that the SP signs the logout response.\n     * This setting controls whether the SP should sign the logout responses.\n     * Note that this setting is ignored if the IdP does not request signed logout responses.\n     *\/\n    'sign.logoutresponse' => true,\n    ),<\/code><\/pre>\n<p>    <code>idp<\/code> parametresini bo\u015f b\u0131rakmak, kullan\u0131c\u0131n\u0131n birden fazla IdP varsa se\u00e7im yapmas\u0131na olanak tan\u0131r. Tek bir IdP kullanacaksan\u0131z, buraya IdP&#8217;nizin <code>entityID<\/code> de\u011ferini girebilirsiniz.<br \/>\n*   <strong><code>example-userpass<\/code><\/strong>: Bu, bir IdP olarak SimpleSAMLphp&#8217;yi test etmek i\u00e7in kullanabilece\u011finiz basit bir kimlik do\u011frulama kayna\u011f\u0131d\u0131r. Ger\u00e7ek d\u00fcnyada LDAP, SQL veya ba\u015fka bir dizin hizmeti kullanman\u0131z gerekir.<\/p>\n<pre><code>'example-userpass' => array(\n    'exampleauth:UserPass',\n    'admin:adminpassword', \/\/ Kullan\u0131c\u0131 ad\u0131:\u015fifre\n    'test:testpassword',\n    ),<\/code><\/pre>\n<p>    Bu k\u0131sma kendi kullan\u0131c\u0131lar\u0131n\u0131z\u0131 ve \u015fifrelerinizi ekleyebilir veya daha sonra LDAP\/SQL gibi ger\u00e7ek bir kimlik do\u011frulama kayna\u011f\u0131 ile de\u011fi\u015ftirebilirsiniz.<\/p>\n<h4>Sertifika Olu\u015fturma<\/h4>\n<p>SAML mesajlar\u0131n\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in dijital imzalar ve \u015fifreleme kullan\u0131l\u0131r. SimpleSAMLphp, bu i\u015flemler i\u00e7in bir \u00f6zel anahtar (<code>.pem<\/code>) ve bir genel sertifika (<code>.crt<\/code>) dosyas\u0131na ihtiya\u00e7 duyar. Bu dosyalar <code>cert<\/code> dizininde bulunur. E\u011fer mevcut de\u011fillerse, kendi kendine imzal\u0131 (self-signed) sertifikalar olu\u015fturabilirsiniz.<\/p>\n<pre><code>cd \/var\/simplesamlphp\/cert\nsudo openssl req -newkey rsa:2048 -new -x509 -days 3650 -nodes -out saml.crt -keyout saml.pem<\/code><\/pre>\n<p>Bu komut, 2048 bit RSA anahtar\u0131 kullanarak 10 y\u0131l ge\u00e7erli (<code>-days 3650<\/code>) bir sertifika ve \u00f6zel anahtar olu\u015fturur. Komut sizden baz\u0131 bilgiler isteyecektir (\u00fclke, \u015fehir, kurulu\u015f ad\u0131 vb.). <code>Common Name<\/code> (Ortak Ad) alan\u0131na sunucunuzun tam nitelikli alan ad\u0131n\u0131 (FQDN) veya IP adresini girmeniz \u00f6nemlidir.<br \/>\nOlu\u015fturulan dosyalar\u0131n <code>www-data<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan emin olun:<\/p>\n<pre><code>sudo chown www-data:www-data saml.crt saml.pem\nsudo chmod 644 saml.crt\nsudo chmod 600 saml.pem<\/code><\/pre>\n<h3>Servis Sa\u011flay\u0131c\u0131 (SP) Olarak Yap\u0131land\u0131rma<\/h3>\n<p>SimpleSAMLphp&#8217;yi bir servis sa\u011flay\u0131c\u0131 olarak yap\u0131land\u0131rmak, uygulaman\u0131z\u0131n bir kimlik sa\u011flay\u0131c\u0131dan kimlik do\u011frulama taleplerini almas\u0131n\u0131 ve kullan\u0131c\u0131 bilgilerini i\u015flemesini sa\u011flar.<\/p>\n<h4>SP Metadata Olu\u015fturma<\/h4>\n<p>SimpleSAMLphp y\u00f6netim paneline (\u00f6rne\u011fin, <code>http:\/\/your_server_ip_or_domain\/simplesaml<\/code>) gidin.<br \/>\n&#8220;Federation&#8221; sekmesine t\u0131klay\u0131n.<br \/>\n&#8220;Show metadata&#8221; ba\u015fl\u0131\u011f\u0131 alt\u0131nda, &#8220;Service Provider&#8221; b\u00f6l\u00fcm\u00fcndeki <code>default-sp<\/code> i\u00e7in &#8220;Show metadata&#8221; ba\u011flant\u0131s\u0131na t\u0131klay\u0131n.<br \/>\nBurada, SP&#8217;nizin XML metadata&#8217;s\u0131n\u0131 g\u00f6receksiniz. Bu metadata&#8217;y\u0131 kopyalay\u0131n ve kimlik sa\u011flay\u0131c\u0131n\u0131za (IdP) verin. IdP, bu metadata&#8217;y\u0131 kullanarak SP&#8217;nizi tan\u0131yacak ve SAML ileti\u015fimini kuracakt\u0131r. Metadata, SP&#8217;nizin <code>entityID<\/code>, Assertion Consumer Service (ACS) URL&#8217;si ve sertifika bilgilerini i\u00e7erir.<\/p>\n<h4>Kimlik Sa\u011flay\u0131c\u0131 (IdP) Metadata&#8217;s\u0131n\u0131 Ekleme<\/h4>\n<p>SP&#8217;nizin IdP ile ileti\u015fim kurabilmesi i\u00e7in IdP&#8217;nin metadata&#8217;s\u0131na ihtiyac\u0131 vard\u0131r. IdP&#8217;nizden metadata XML dosyas\u0131n\u0131 al\u0131n. Bu dosyay\u0131 <code>\/var\/simplesamlphp\/metadata<\/code> dizinine <code>saml20-idp-remote.php<\/code> ad\u0131yla kaydedin.<br \/>\n\u00d6rne\u011fin, IdP&#8217;nizin metadata&#8217;s\u0131 <code>idp-metadata.xml<\/code> ise:<\/p>\n<pre><code>sudo nano \/var\/simplesamlphp\/metadata\/saml20-idp-remote.php<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi d\u00fczenleyin (IdP&#8217;nizin <code>entityID<\/code> ve <code>SingleSignOnService<\/code> URL&#8217;sini kendi de\u011ferlerinizle de\u011fi\u015ftirin):<\/p>\n<pre><code><?php\n\/<em><\/em>\n * SAML 2.0 IdP Remote metadata for SimpleSAMLphp.\n *\n * Remember to replace 'idp.example.org' with the real entity ID of your IdP.\n *\/\n\n$metadata['https:\/\/idp.example.org\/simplesaml\/saml2\/idp\/metadata.php'] = array(\n    'entityid' => 'https:\/\/idp.example.org\/simplesaml\/saml2\/idp\/metadata.php',\n    'SingleSignOnService' => array(\n        0 => array(\n            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',\n            'Location' => 'https:\/\/idp.example.org\/simplesaml\/saml2\/idp\/SSOService.php',\n        ),\n    ),\n    'SingleLogoutService' => array(\n        0 => array(\n            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',\n            'Location' => 'https:\/\/idp.example.org\/simplesaml\/saml2\/idp\/SingleLogoutService.php',\n        ),\n    ),\n    'certData' => 'MIICQDCCASqgAwIBAgIJANcET... (IdP'nizin sertifika verisi)',\n);<\/code><\/pre>\n<p><code>certData<\/code> alan\u0131na IdP&#8217;nizin sertifikas\u0131n\u0131 Base64 kodlu olarak eklemelisiniz. Genellikle IdP metadata XML&#8217;inde <code><X509Certificate><\/code> etiketi alt\u0131nda bulunur.<\/p>\n<h4>Uygulama Entegrasyonu (PHP \u00d6rne\u011fi)<\/h4>\n<p>\u015eimdi SimpleSAMLphp SP&#8217;yi kendi PHP uygulaman\u0131za nas\u0131l entegre edece\u011finizi g\u00f6relim. Varsayal\u0131m ki uygulaman\u0131z <code>\/var\/www\/html\/myapp<\/code> dizininde bulunuyor.<br \/>\n\u00d6ncelikle, uygulaman\u0131z\u0131n <code>index.php<\/code> veya kimlik do\u011frulamas\u0131 gerektiren herhangi bir sayfas\u0131nda SimpleSAMLphp k\u00fct\u00fcphanesini y\u00fcklemeniz ve bir <code>SimpleSAML_Auth_Simple<\/code> nesnesi olu\u015fturman\u0131z gerekir.<\/p>\n<pre><code><?php\nrequire_once('\/var\/simplesamlphp\/lib\/_autoload.php'); \/\/ SimpleSAMLphp k\u00fct\u00fcphanesini y\u00fckle\n\n$as = new SimpleSAML_Auth_Simple('default-sp'); \/\/ 'default-sp' authsource'u kullan\n\n\/\/ Kullan\u0131c\u0131n\u0131n kimlik do\u011frulamas\u0131 yap\u0131l\u0131p yap\u0131lmad\u0131\u011f\u0131n\u0131 kontrol et\nif (!$as->isAuthenticated()) {\n    \/\/ Kimlik do\u011frulamas\u0131 yap\u0131lmad\u0131ysa, IdP'ye y\u00f6nlendir\n    $as->requireAuth();\n}\n\n\/\/ Kimlik do\u011frulamas\u0131 ba\u015far\u0131l\u0131ysa, kullan\u0131c\u0131 niteliklerini al\n$attributes = $as->getAttributes();\n\necho \"<h2>Ho\u015f Geldiniz, \" . htmlspecialchars($attributes['cn'][0]) . \"<\/h2>\";\necho \"<p>Kullan\u0131c\u0131 Nitelikleri:<\/p>\";\necho \"<pre>\";\nprint_r($attributes);\necho \"<\/pre>\n<p>\";<\/p>\n<p>\/\/ Oturumu kapatma linki<br \/>\necho '<\/p>\n<p><a href=\"' . $as->getLogoutURL() . '\">Oturumu Kapat<\/a><\/p>\n<p>';<br \/>\n?><\/code><br \/>\nBu basit \u00f6rnek, kullan\u0131c\u0131n\u0131n kimlik do\u011frulamas\u0131 yap\u0131lmam\u0131\u015fsa IdP&#8217;ye y\u00f6nlendirir. Ba\u015far\u0131l\u0131 bir kimlik do\u011frulamas\u0131ndan sonra, IdP&#8217;den gelen kullan\u0131c\u0131 niteliklerini (attributes) al\u0131r ve ekrana basar. <code>cn<\/code> (Common Name) gibi nitelikler, IdP&#8217;nizin sa\u011flad\u0131\u011f\u0131 \u00f6zniteliklere ba\u011fl\u0131 olacakt\u0131r.<\/p>\n<h3>Kimlik Sa\u011flay\u0131c\u0131 (IdP) Olarak Yap\u0131land\u0131rma<\/h3>\n<p>SimpleSAMLphp&#8217;yi bir kimlik sa\u011flay\u0131c\u0131 olarak yap\u0131land\u0131rmak, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n kimlik bilgilerini do\u011frulamas\u0131n\u0131 ve bu bilgileri servis sa\u011flay\u0131c\u0131lara (SP) g\u00f6ndermesini sa\u011flar.<\/p>\n<h4>IdP Metadata Olu\u015fturma<\/h4>\n<p>SimpleSAMLphp y\u00f6netim paneline (\u00f6rne\u011fin, <code>http:\/\/your_server_ip_or_domain\/simplesaml<\/code>) gidin.<br \/>\n&#8220;Federation&#8221; sekmesine t\u0131klay\u0131n.<br \/>\n&#8220;Show metadata&#8221; ba\u015fl\u0131\u011f\u0131 alt\u0131nda, &#8220;Identity Provider&#8221; b\u00f6l\u00fcm\u00fcndeki <code>saml20-idp-hosted<\/code> i\u00e7in &#8220;Show metadata&#8221; ba\u011flant\u0131s\u0131na t\u0131klay\u0131n.<br \/>\nBurada, IdP&#8217;nizin XML metadata&#8217;s\u0131n\u0131 g\u00f6receksiniz. Bu metadata&#8217;y\u0131 kopyalay\u0131n ve servis sa\u011flay\u0131c\u0131n\u0131za (SP) verin. SP, bu metadata&#8217;y\u0131 kullanarak IdP&#8217;nizi tan\u0131yacak ve SAML ileti\u015fimini kuracakt\u0131r.<\/p>\n<h4>Kimlik Do\u011frulama Kaynaklar\u0131n\u0131 Yap\u0131land\u0131rma<\/h4>\n<p><code>config\/authsources.php<\/code> dosyas\u0131nda, IdP&#8217;nizin kullan\u0131c\u0131lar\u0131 nas\u0131l do\u011frulayaca\u011f\u0131n\u0131 tan\u0131mlaman\u0131z gerekir. Daha \u00f6nce bahsetti\u011fimiz <code>example-userpass<\/code> basit bir test kayna\u011f\u0131d\u0131r. Ger\u00e7ek d\u00fcnyada genellikle LDAP veya SQL tabanl\u0131 bir kimlik do\u011frulama kayna\u011f\u0131 kullan\u0131l\u0131r.<\/p>\n<h5>LDAP Kimlik Do\u011frulama Kayna\u011f\u0131 \u00d6rne\u011fi<\/h5>\n<p>E\u011fer bir LDAP sunucunuz varsa (\u00f6rne\u011fin OpenLDAP, Active Directory), SimpleSAMLphp&#8217;yi buna ba\u011flayabilirsiniz. <code>authsources.php<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek a\u015fa\u011f\u0131daki gibi bir LDAP kimlik do\u011frulama kayna\u011f\u0131 ekleyebilirsiniz:<\/p>\n<pre><code>sudo nano \/var\/simplesamlphp\/config\/authsources.php<\/code><\/pre>\n<pre><code>'ldap-auth' => array(\n    'authsource:LDAP',\n    'hostname' => 'ldap.example.org', \/\/ LDAP sunucunuzun adresi\n    'port' => 389, \/\/ LDAP portu (LDAPS i\u00e7in 636)\n    'attributes' => array('uid', 'cn', 'mail'), \/\/ SP'ye g\u00f6nderilecek nitelikler\n    'searchbase' => 'dc=example,dc=org', \/\/ Kullan\u0131c\u0131lar\u0131n aranaca\u011f\u0131 temel DN\n    'searchattribute' => 'uid', \/\/ Kullan\u0131c\u0131 ad\u0131 niteli\u011fi\n    'usernameattribute' => 'uid', \/\/ Oturum a\u00e7ma i\u00e7in kullan\u0131lacak nitelik\n    'binddn' => 'cn=admin,dc=example,dc=org', \/\/ LDAP ba\u011flama kullan\u0131c\u0131s\u0131 (okuma izni olan)\n    'bindpw' => 'admin_password', \/\/ LDAP ba\u011flama \u015fifresi\n    'dnpattern' => 'uid=%username%,ou=users,dc=example,dc=org', \/\/ Kullan\u0131c\u0131 DN deseni\n    'privileges' => true, \/\/ Y\u00f6netici haklar\u0131n\u0131 kullan\n    'referrals' => false,\n    'debug' => false,\n    'timeout' => 30,\n),<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmada, IdP&#8217;niz kullan\u0131c\u0131lar\u0131 LDAP sunucusu \u00fczerinden do\u011frulayacak ve <code>uid<\/code>, <code>cn<\/code>, <code>mail<\/code> gibi nitelikleri SP&#8217;ye g\u00f6nderecektir.<\/p>\n<h4>Servis Sa\u011flay\u0131c\u0131 (SP) Metadata&#8217;s\u0131n\u0131 Ekleme<\/h4>\n<p>IdP&#8217;nizin SP ile ileti\u015fim kurabilmesi i\u00e7in SP&#8217;nin metadata&#8217;s\u0131na ihtiyac\u0131 vard\u0131r. SP&#8217;nizden metadata XML dosyas\u0131n\u0131 al\u0131n. Bu dosyay\u0131 <code>\/var\/simplesamlphp\/metadata<\/code> dizinine <code>saml20-sp-remote.php<\/code> ad\u0131yla kaydedin.<\/p>\n<pre><code>sudo nano \/var\/simplesamlphp\/metadata\/saml20-sp-remote.php<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi d\u00fczenleyin (SP&#8217;nizin <code>entityID<\/code> ve <code>AssertionConsumerService<\/code> URL&#8217;sini kendi de\u011ferlerinizle de\u011fi\u015ftirin):<\/p>\n<pre><code><?php\n\/<em><\/em>\n * SAML 2.0 SP Remote metadata for SimpleSAMLphp.\n *\n * Remember to replace 'sp.example.org' with the real entity ID of your SP.\n *\/\n\n$metadata['https:\/\/sp.example.org\/simplesaml\/module.php\/saml\/sp\/metadata.php\/default-sp'] = array(\n    'entityid' => 'https:\/\/sp.example.org\/simplesaml\/module.php\/saml\/sp\/metadata.php\/default-sp',\n    'AssertionConsumerService' => array(\n        0 => array(\n            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',\n            'Location' => 'https:\/\/sp.example.org\/simplesaml\/module.php\/saml\/sp\/saml2-acs.php\/default-sp',\n        ),\n    ),\n    'SingleLogoutService' => array(\n        0 => array(\n            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',\n            'Location' => 'https:\/\/sp.example.org\/simplesaml\/module.php\/saml\/sp\/saml2-logout.php\/default-sp',\n        ),\n    ),\n    'certData' => 'MIICQDCCASqgAwIBAgIJANcET... (SP'nizin sertifika verisi)',\n);<\/code><\/pre>\n<p><code>certData<\/code> alan\u0131na SP&#8217;nizin sertifikas\u0131n\u0131 Base64 kodlu olarak eklemelisiniz. Genellikle SP metadata XML&#8217;inde <code><X509Certificate><\/code> etiketi alt\u0131nda bulunur.<\/p>\n<h4>Nitelik E\u015fle\u015ftirme (Attribute Mapping)<\/h4>\n<p>IdP&#8217;nizden gelen kullan\u0131c\u0131 niteliklerini SP&#8217;nizin anlayaca\u011f\u0131 formata d\u00f6n\u00fc\u015ft\u00fcrmek gerekebilir. Bu i\u015flem <code>config\/authproc.php<\/code> dosyas\u0131nda yap\u0131l\u0131r. Bu dosya, kimlik do\u011frulama s\u00fcrecinde nitelikleri manip\u00fcle etmenizi sa\u011flar.<br \/>\n\u00d6rnek olarak, IdP&#8217;niz <code>uid<\/code> niteli\u011fini g\u00f6nderirken, SP&#8217;niz <code>username<\/code> bekliyorsa, bir nitelik e\u015fle\u015ftirme kural\u0131 ekleyebilirsiniz:<\/p>\n<pre><code>sudo cp \/var\/simplesamlphp\/config-templates\/authproc.php \/var\/simplesamlphp\/config\/authproc.php\nsudo nano \/var\/simplesamlphp\/config\/authproc.php<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin veya d\u00fczenleyin:<\/p>\n<pre><code>10 => array(\n    'class' => 'core:AttributeMap',\n    'uid' => 'username',\n),<\/code><\/pre>\n<p>Bu, <code>uid<\/code> niteli\u011fini <code>username<\/code> olarak yeniden adland\u0131r\u0131r.<\/p>\n<h3>Test ve Sorun Giderme<\/h3>\n<p>Kurulum ve yap\u0131land\u0131rma tamamland\u0131ktan sonra, SAML ak\u0131\u015f\u0131n\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in testler yapmal\u0131s\u0131n\u0131z.<\/p>\n<h4>SimpleSAMLphp Y\u00f6netim Paneli \u00dczerinden Test<\/h4>\n<p>Y\u00f6netim paneline (\u00f6rne\u011fin, <code>http:\/\/your_server_ip_or_domain\/simplesaml<\/code>) giri\u015f yap\u0131n.<br \/>\n*   <strong>Servis Sa\u011flay\u0131c\u0131 (SP) Testi<\/strong>: &#8220;Authentication&#8221; sekmesine t\u0131klay\u0131n. &#8220;Test configured authentication sources&#8221; alt\u0131nda, <code>default-sp<\/code> ba\u011flant\u0131s\u0131na t\u0131klay\u0131n. Bu sizi IdP&#8217;ye y\u00f6nlendirmeli, kimlik do\u011frulamas\u0131n\u0131 tamamlamal\u0131 ve ard\u0131ndan SP&#8217;ye geri d\u00f6nerek kullan\u0131c\u0131 niteliklerini g\u00f6stermelidir.<br \/>\n*   <strong>Kimlik Sa\u011flay\u0131c\u0131 (IdP) Testi<\/strong>: &#8220;Authentication&#8221; sekmesine t\u0131klay\u0131n. &#8220;Test configured authentication sources&#8221; alt\u0131nda, <code>example-userpass<\/code> (veya yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z LDAP\/SQL kayna\u011f\u0131) ba\u011flant\u0131s\u0131na t\u0131klay\u0131n. Bu, basit bir giri\u015f ekran\u0131 sunmal\u0131 ve ba\u015far\u0131l\u0131 bir giri\u015ften sonra kullan\u0131c\u0131 niteliklerini g\u00f6stermelidir.<\/p>\n<h4>Uygulama Entegrasyon Testi<\/h4>\n<p>SP olarak yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z uygulaman\u0131za (\u00f6rne\u011fin, <code>http:\/\/your_server_ip_or_domain\/myapp\/index.php<\/code>) eri\u015fmeyi deneyin. E\u011fer her \u015fey do\u011fru yap\u0131land\u0131r\u0131ld\u0131ysa, IdP&#8217;ye y\u00f6nlendirilecek, kimlik do\u011frulamas\u0131n\u0131 yapacak ve ard\u0131ndan uygulaman\u0131za geri d\u00f6nerek kullan\u0131c\u0131 niteliklerini g\u00f6receksiniz.<\/p>\n<h4>Yayg\u0131n Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h4>\n<p>*   <strong>Metadata Uyu\u015fmazl\u0131\u011f\u0131<\/strong>: SP ve IdP metadata&#8217;lar\u0131n\u0131n do\u011fru ve g\u00fcncel oldu\u011fundan emin olun. <code>entityID<\/code> de\u011ferleri, ACS\/SSO URL&#8217;leri ve sertifikalar e\u015fle\u015fmelidir.<br \/>\n*   <strong>Sertifika Hatalar\u0131<\/strong>: Sertifikalar\u0131n do\u011fru \u015fekilde olu\u015fturuldu\u011funu, <code>certData<\/code> alanlar\u0131n\u0131n do\u011fru Base64 kodlu sertifika verisini i\u00e7erdi\u011fini ve \u00f6zel anahtar\u0131n (<code>.pem<\/code>) izinlerinin do\u011fru (<code>600<\/code>) oldu\u011fundan emin olun.<br \/>\n*   <strong>Zaman Damgas\u0131 Farklar\u0131 (Clock Skew)<\/strong>: SAML mesajlar\u0131 zaman damgalar\u0131na duyarl\u0131d\u0131r. SP ve IdP sunucular\u0131n\u0131n sistem saatlerinin senkronize oldu\u011fundan emin olun (NTP kullanarak).<br \/>\n*   <strong>Nitelik E\u015fle\u015ftirme Sorunlar\u0131<\/strong>: IdP&#8217;den gelen niteliklerin SP&#8217;nin bekledi\u011fi isimlerle e\u015fle\u015fti\u011finden emin olun. <code>authproc.php<\/code> dosyas\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Y\u00f6nlendirme Hatalar\u0131<\/strong>: <code>baseurlpath<\/code> ayar\u0131n\u0131n <code>config.php<\/code> dosyas\u0131nda do\u011fru oldu\u011fundan emin olun. Apache alias veya VirtualHost yap\u0131land\u0131rmas\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Log Dosyalar\u0131n\u0131 Kontrol Etme<\/strong>: SimpleSAMLphp&#8217;nin <code>log\/simplesamlphp.log<\/code> dosyas\u0131n\u0131 kontrol ederek detayl\u0131 hata mesajlar\u0131na ula\u015fabilirsiniz. Apache error loglar\u0131n\u0131 (<code>\/var\/log\/apache2\/error.log<\/code>) da inceleyin.<br \/>\n*   <strong>Taray\u0131c\u0131 Geli\u015ftirici Ara\u00e7lar\u0131<\/strong>: Taray\u0131c\u0131n\u0131z\u0131n geli\u015ftirici ara\u00e7lar\u0131n\u0131 (Network sekmesi) kullanarak SAML mesaj ak\u0131\u015f\u0131n\u0131 izleyin. SAML mesajlar\u0131n\u0131 de\u015fifre etmek i\u00e7in SAML Chrome Panel gibi taray\u0131c\u0131 eklentileri kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>\u00dcretim ortam\u0131nda SimpleSAMLphp kullan\u0131rken a\u015fa\u011f\u0131daki g\u00fcvenlik ipu\u00e7lar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z \u00f6nemlidir:<\/p>\n<p>*   <strong>HTTPS Kullan\u0131m\u0131<\/strong>: T\u00fcm SAML ileti\u015fiminin HTTPS \u00fczerinden yap\u0131ld\u0131\u011f\u0131ndan emin olun. Bu, SAML mesajlar\u0131n\u0131n \u015fifrelenmesini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flar. Apache&#8217;de SSL\/TLS yap\u0131land\u0131rmas\u0131 yap\u0131n ve ge\u00e7erli bir SSL sertifikas\u0131 kullan\u0131n.<br \/>\n*   <strong>G\u00fc\u00e7l\u00fc \u015eifreler ve <code>secretsalt<\/code><\/strong>: <code>auth.adminpassword<\/code> ve <code>secretsalt<\/code> i\u00e7in karma\u015f\u0131k, tahmin edilemez de\u011ferler kullan\u0131n. <code>secretsalt<\/code> i\u00e7in SimpleSAMLphp y\u00f6netim panelinde \u00f6nerilen de\u011feri kullanmak iyi bir ba\u015flang\u0131\u00e7t\u0131r.<br \/>\n*   <strong>Web K\u00f6k Dizin D\u0131\u015f\u0131nda Kurulum<\/strong>: SimpleSAMLphp&#8217;yi web sunucusunun k\u00f6k dizini d\u0131\u015f\u0131nda bir yere kurmak (\u00f6rne\u011fin <code>\/var\/simplesamlphp<\/code>), hassas yap\u0131land\u0131rma dosyalar\u0131n\u0131n do\u011frudan web \u00fczerinden eri\u015filmesini engeller.<br \/>\n*   <strong>Dosya \u0130zinleri<\/strong>: Sertifika ve \u00f6zel anahtar dosyalar\u0131n\u0131n (<code>.pem<\/code>, <code>.crt<\/code>) ve yap\u0131land\u0131rma dosyalar\u0131n\u0131n do\u011fru izinlere sahip oldu\u011fundan emin olun. \u00d6zel anahtarlar\u0131n sadece web sunucusu kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir olmas\u0131 (<code>chmod 600<\/code>) kritik \u00f6neme sahiptir.<br \/>\n*   <strong>Loglar\u0131 \u0130zleme<\/strong>: SimpleSAMLphp ve web sunucusu loglar\u0131n\u0131 d\u00fczenli olarak izleyin. Anormal aktiviteler veya hata mesajlar\u0131 i\u00e7in uyar\u0131lar ayarlay\u0131n.<br \/>\n*   <strong>Gereksiz Mod\u00fclleri Devre D\u0131\u015f\u0131 B\u0131rakma<\/strong>: Kullanmad\u0131\u011f\u0131n\u0131z SimpleSAMLphp mod\u00fcllerini devre d\u0131\u015f\u0131 b\u0131rak\u0131n (<code>config.php<\/code> dosyas\u0131nda <code>module.enable<\/code> ayar\u0131). Bu, sald\u0131r\u0131 y\u00fczeyini azalt\u0131r.<br \/>\n*   <strong>G\u00fcncel Tutma<\/strong>: SimpleSAMLphp&#8217;yi ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (PHP, Apache, Composer) d\u00fczenli olarak g\u00fcncelleyin. G\u00fcvenlik a\u00e7\u0131klar\u0131 genellikle yaz\u0131l\u0131m g\u00fcncellemeleriyle giderilir.<br \/>\n*   <strong>IP K\u0131s\u0131tlamalar\u0131<\/strong>: Y\u00f6netim paneline eri\u015fimi belirli IP adresleriyle k\u0131s\u0131tlamak, yetkisiz eri\u015fimi \u00f6nleyebilir. Bu, Apache VirtualHost yap\u0131land\u0131rmas\u0131nda <code>Require ip<\/code> direktifi ile yap\u0131labilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 16.04 \u00fczerinde SimpleSAMLphp&#8217;nin nas\u0131l kurulaca\u011f\u0131n\u0131 ve SAML kimlik do\u011frulamas\u0131 i\u00e7in hem servis sa\u011flay\u0131c\u0131 (SP) hem de kimlik sa\u011flay\u0131c\u0131 (IdP) olarak nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele ald\u0131k. Ad\u0131m ad\u0131m kurulum, temel yap\u0131land\u0131rma, SP ve IdP rolleri i\u00e7in \u00f6zel ayarlar ve sorun giderme ipu\u00e7lar\u0131 sayesinde, art\u0131k kendi SAML tabanl\u0131 SSO \u00e7\u00f6z\u00fcm\u00fcn\u00fcz\u00fc kurabilecek bilgiye sahipsiniz.<\/p>\n<p>SimpleSAMLphp, esnekli\u011fi, geni\u015f \u00f6zelle\u015ftirme se\u00e7enekleri ve a\u00e7\u0131k kaynak yap\u0131s\u0131yla, PHP uygulamalar\u0131n\u0131za g\u00fc\u00e7l\u00fc bir kimlik do\u011frulama katman\u0131 eklemek i\u00e7in m\u00fckemmel bir ara\u00e7t\u0131r. Do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda ve g\u00fcvenlik en iyi uygulamalar\u0131 takip edildi\u011finde, kullan\u0131c\u0131lar\u0131n\u0131z i\u00e7in sorunsuz ve g\u00fcvenli bir SSO deneyimi sunar. SAML&#8217;nin karma\u015f\u0131kl\u0131\u011f\u0131na ra\u011fmen, SimpleSAMLphp bu s\u00fcreci b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirerek geli\u015ftiricilerin ve sistem y\u00f6neticilerinin i\u015fini kolayla\u015ft\u0131rmaktad\u0131r. Unutmay\u0131n, \u00fcretim ortam\u0131nda kullanmadan \u00f6nce kapsaml\u0131 testler yapmak ve g\u00fcvenlik \u00f6nlemlerini titizlikle uygulamak hayati \u00f6nem ta\u015f\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-34086","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-10T22:40:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2025-11-10T22:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\"},\"wordCount\":2846,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\",\"name\":\"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-10T22:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131","og_description":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-10T22:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131","datePublished":"2025-11-10T22:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/"},"wordCount":2846,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/","name":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-10T22:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-saml-kimlik-dogrulamasi-icin-simplesamlphp-kurulumu-ve-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 16.04 \u00dczerinde SAML Kimlik Do\u011frulamas\u0131 \u0130\u00e7in SimpleSAMLphp Kurulumu ve Yap\u0131land\u0131rmas\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=34086"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34086\/revisions"}],"predecessor-version":[{"id":34087,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34086\/revisions\/34087"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}