{"title":"Pembuktian keaslian terhadap pengguna basisdata Django dari Apache","version":"1.9","locale":"id","docname":"howto/deployment/wsgi/apache-auth","url":"/id/1.9/howto/deployment/wsgi/apache-auth/","canonical":"https://djangodocs.dev/id/1.9/howto/deployment/wsgi/apache-auth/","summary":"Sejak menjaga banyak pembuktian keaslian basisdata di sinkronasi adalah masalah utama ketika berhadapan dengan Apache, anda dapat mengkonfigurasi Apache untuk…","html":"<h1>Pembuktian keaslian terhadap pengguna basisdata Django dari Apache<a class=\"heading-anchor\" href=\"#authenticating-against-django-s-user-database-from-apache\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Sejak menjaga banyak pembuktian keaslian basisdata di sinkronasi adalah masalah utama ketika berhadapan dengan Apache, anda dapat mengkonfigurasi Apache untuk membuktikan keaslian terhadap <a class=\"reference internal\" href=\"/id/1.9/topics/auth/\"><span class=\"doc\">sistem pembuktian keaslian</span></a> Django secara langsung. Ini membutuhkan Apache versi &gt;= 2.2 dan mod_wsgi &gt;= 2.0. Sebagai contoh, anda dapat:</p>\n<ul class=\"simple\">\n<li><p>Melayani berkas statis/media secara langsung dari Apache hanya untuk membuktikan keaslian pengguna.</p></li>\n<li><p>Akses pembuktian keaslian pada sebuah gudang <a class=\"reference external\" href=\"http://subversion.apache.org/\">Subversion</a> terhadap pengguna Django dengan perizinan tertentu.</p></li>\n<li><p>Mengizinkan pengguna tertentu untuk terhubung ke berbagi WebDAV dibuat dengan <a class=\"reference external\" href=\"https://httpd.apache.org/docs/2.2/mod/mod_dav.html\">mod_dav</a>.</p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Jika anda telah memasang sebuah <a class=\"reference internal\" href=\"/id/1.9/topics/auth/customizing/#auth-custom-user\"><span class=\"std std-ref\">custom User model</span></a> dan ingin menggunakan penangan pembuktian keaslian awal ini, itu harus mendukung sebuah atribut <code class=\"docutils literal notranslate\"><span class=\"pre\">is_active</span></code>. Jika anda ingin menggunakan kelompok berdasarkan pembuktian keaslian, pengguna disesuaikan anda harus mempunyai hubungan dinamai 'groups', mengacu pada obyek terhubung yang mempunyai bidang 'name'. Anda dapat juga menentukan penangan pembuktian keaslian mod_wsgi disesuaikan jika sistem anda tidak dapat sesuai ke persyaratan ini.</p>\n</aside>\n<section id=\"authentication-with-mod-wsgi\">\n<h2>Pembuktian keaslian dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code><a class=\"heading-anchor\" href=\"#authentication-with-mod-wsgi\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Catatan</p>\n<p>Penggunaan dari <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIApplicationGroup</span> <span class=\"pre\">%{GLOBAL}</span></code> di konfigurasi dibawah menganggap bahwa instance Apache anda sedang menjalankan hanya satu alikasi Django. Jika anda sedang menjalankan lebih dati satu aplikasi Django, silahkan mengacu pada bagian <a class=\"reference external\" href=\"https://modwsgi.readthedocs.io/en/develop/user-guides/configuration-guidelines.html#defining-application-groups\">Menentukan Aplikasi Kelompok</a> dari dokumen mod_wsgi untuk informasi lebih tentang pengaturan ini.</p>\n</aside>\n<p>Pastikan bahwa mod_wsgi telah dipasang dan diaktivasi dan bahwa anda telah mengikuti langkah-langkah untuk mengatur <a class=\"reference internal\" href=\"/id/1.9/howto/deployment/wsgi/modwsgi/\"><span class=\"doc\">Apache dengan mod_wsgi</span></a>.</p>\n<p>Selanjutnya, sunting konfigurasi Apache anda untuk menambahkan tempat yang anda ingin dibuktikan keaslian pengguna untuk dapat melihat:</p>\n<div class=\"code-block\" data-language=\"apache\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Apache</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Apache code\"><code><span class=\"nb\">WSGIScriptAlias</span><span class=\"w\"> </span>/<span class=\"w\"> </span><span class=\"sx\">/path/to/mysite.com/mysite/wsgi.py</span>\n<span class=\"nb\">WSGIPythonPath</span><span class=\"w\"> </span><span class=\"sx\">/path/to/mysite.com</span>\n\n<span class=\"nb\">WSGIProcessGroup</span><span class=\"w\"> </span>%{GLOBAL}\n<span class=\"nb\">WSGIApplicationGroup</span><span class=\"w\"> </span>%{GLOBAL}\n\n<span class=\"nt\">&lt;Location</span><span class=\"w\"> </span><span class=\"s\">&quot;/secret&quot;</span><span class=\"nt\">&gt;</span>\n<span class=\"w\">    </span><span class=\"nb\">AuthType</span><span class=\"w\"> </span>Basic\n<span class=\"w\">    </span><span class=\"nb\">AuthName</span><span class=\"w\"> </span><span class=\"s2\">&quot;Top Secret&quot;</span>\n<span class=\"w\">    </span><span class=\"nb\">Require</span><span class=\"w\"> </span>valid-user\n<span class=\"w\">    </span><span class=\"nb\">AuthBasicProvider</span><span class=\"w\"> </span>wsgi\n<span class=\"w\">    </span><span class=\"nb\">WSGIAuthUserScript</span><span class=\"w\"> </span><span class=\"sx\">/path/to/mysite.com/mysite/wsgi.py</span>\n<span class=\"nt\">&lt;/Location&gt;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIAuthUserScript</span></code> yang memerintahkan memberitahu mod_wsgi untuk menjalankan fungsi <code class=\"docutils literal notranslate\"><span class=\"pre\">check_password</span></code> di tulisan wsgi yang lebih khusus, melewati nama pengguna dan sandi yang dia menerimanya dari prompt. Di contoh ini, <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIAuthUserScript</span></code> adalah sama seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIScriptAlias</span></code> yang menentukan aplikasi anda <a class=\"reference internal\" href=\"/id/1.9/howto/deployment/wsgi/\"><span class=\"doc\">yang dibuat oleh django-admin startproject</span></a>.</p>\n<aside class=\"admonition-using-apache-2-2-with-authentication admonition\">\n<p class=\"admonition-title\">Menggunakan Apache 2.2 dengan pembuktian keaslian</p>\n<p>Pastikan bahwa <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_auth_basic</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_authz_user</span></code> dimuat.</p>\n<p>Ini mungkin disusun secara tetap kedalam Apache, atau anda mungkin butuh menggunakan LoadModule untuk memuat mereka secara dinamis dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">httpd.conf</span></code> anda:</p>\n<div class=\"code-block\" data-language=\"apache\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Apache</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Apache code\"><code><span class=\"nb\">LoadModule</span><span class=\"w\"> </span>auth_basic_module<span class=\"w\"> </span>modules/mod_auth_basic.so\n<span class=\"nb\">LoadModule</span><span class=\"w\"> </span>authz_user_module<span class=\"w\"> </span>modules/mod_authz_user.so\n</code></pre></div>\n</aside>\n<p>Akhirnya sunting tulisan WSGI anda <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.wsgi</span></code> ke pembuktian keaslian Apache ke mekanisme pembuktian keaslian situs anda dengan mengimpor fungsi <code class=\"docutils literal notranslate\"><span class=\"pre\">check_password</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">os</span>\n\n<span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s1\">&#39;DJANGO_SETTINGS_MODULE&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;mysite.settings&#39;</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.handlers.modwsgi</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">check_password</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.core.handlers.wsgi</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">WSGIHandler</span>\n<span class=\"n\">application</span> <span class=\"o\">=</span> <span class=\"n\">WSGIHandler</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Permintaan dimulai dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">/secret/</span></code> akan sekarang membutuhkan pengguna untuk dibuktikan keasliannya.</p>\n<p>mod_wsgi <a class=\"reference external\" href=\"https://modwsgi.readthedocs.io/en/develop/user-guides/access-control-mechanisms.html\">dokumentasi mekanisme kendali akses</a> menyediakan tambahan rincian dan informasi tentang cara lain dari pembuktian keaslian.</p>\n<section id=\"authorization-with-mod-wsgi-and-django-groups\">\n<h3>Otorisasi dengan <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code> dan kelompok Django<a class=\"heading-anchor\" href=\"#authorization-with-mod-wsgi-and-django-groups\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>mod_wsgi juga menyediakan fungsi untuk membatasi sebagian tempat untuk anggota kelompok.</p>\n<p>Dalam kasus ini, konfigurasi Apache harus kelihatan seperti ini:</p>\n<div class=\"code-block\" data-language=\"apache\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Apache</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Apache code\"><code><span class=\"nb\">WSGIScriptAlias</span><span class=\"w\"> </span>/<span class=\"w\"> </span><span class=\"sx\">/path/to/mysite.com/mysite/wsgi.py</span>\n\n<span class=\"nb\">WSGIProcessGroup</span><span class=\"w\"> </span>%{GLOBAL}\n<span class=\"nb\">WSGIApplicationGroup</span><span class=\"w\"> </span>%{GLOBAL}\n\n<span class=\"nt\">&lt;Location</span><span class=\"w\"> </span><span class=\"s\">&quot;/secret&quot;</span><span class=\"nt\">&gt;</span>\n<span class=\"w\">    </span><span class=\"nb\">AuthType</span><span class=\"w\"> </span>Basic\n<span class=\"w\">    </span><span class=\"nb\">AuthName</span><span class=\"w\"> </span><span class=\"s2\">&quot;Top Secret&quot;</span>\n<span class=\"w\">    </span><span class=\"nb\">AuthBasicProvider</span><span class=\"w\"> </span>wsgi\n<span class=\"w\">    </span><span class=\"nb\">WSGIAuthUserScript</span><span class=\"w\"> </span><span class=\"sx\">/path/to/mysite.com/mysite/wsgi.py</span>\n<span class=\"w\">    </span><span class=\"nb\">WSGIAuthGroupScript</span><span class=\"w\"> </span><span class=\"sx\">/path/to/mysite.com/mysite/wsgi.py</span>\n<span class=\"w\">    </span><span class=\"nb\">Require</span><span class=\"w\"> </span><span class=\"k\">group</span><span class=\"w\"> </span>secret-agents\n<span class=\"w\">    </span><span class=\"nb\">Require</span><span class=\"w\"> </span>valid-user\n<span class=\"nt\">&lt;/Location&gt;</span>\n</code></pre></div>\n<p>Untuk mendukung perintah <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIAuthGroupScript</span></code>, tulisan WSGI sama <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.wsgi</span></code> harus juga mengimpor fungsi <code class=\"docutils literal notranslate\"><span class=\"pre\">groups_for_user</span></code> yang mengembalikan daftar kelompok milik pengguna yang diberikan.</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.handlers.modwsgi</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">check_password</span><span class=\"p\">,</span> <span class=\"n\">groups_for_user</span>\n</code></pre></div>\n<p>Permintaan untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">/secret/</span></code> akan juga membutuhkan pengguna menjadi anggota dari kelompok &quot;secret-agents&quot;.</p>\n</section>\n</section>","rootId":"authenticating-against-django-s-user-database-from-apache","toc":[{"title":"Pembuktian keaslian dengan mod_wsgi","anchor":"authentication-with-mod-wsgi","children":[{"title":"Otorisasi dengan mod_wsgi dan kelompok Django","anchor":"authorization-with-mod-wsgi-and-django-groups","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Panduan \"Bagaimana\"","url":"/id/1.9/howto/"},{"docname":"howto/deployment/index","title":"Menyebarkan Django","url":"/id/1.9/howto/deployment/"},{"docname":"howto/deployment/wsgi/index","title":"Bagaimana menyebarkan dengan WSGI","url":"/id/1.9/howto/deployment/wsgi/"}],"prev":{"docname":"howto/deployment/wsgi/modwsgi","title":"Bagaimana menggunakan Django dengan Apache dan mod_wsgi","url":"/id/1.9/howto/deployment/wsgi/modwsgi/"},"next":{"docname":"howto/deployment/wsgi/gunicorn","title":"Bagaimana menggunakan Django dengan Gunicorn","url":"/id/1.9/howto/deployment/wsgi/gunicorn/"},"formats":{"html":"/id/1.9/howto/deployment/wsgi/apache-auth/","markdown":"/id/1.9/howto/deployment/wsgi/apache-auth.md","json":"/id/1.9/howto/deployment/wsgi/apache-auth.json"},"source":"https://github.com/django/django/blob/stable/1.9.x/docs/howto/deployment/wsgi/apache-auth.txt","official":"https://docs.djangoproject.com/id/1.9/howto/deployment/wsgi/apache-auth/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","fr","ja","id","pt-br","es"]}