{"title":"Conas fíordheimhniú ag baint úsáide as REMOTE_USER","version":"5.2","locale":"ga","docname":"howto/auth-remote-user","url":"/ga/5.2/howto/auth-remote-user/","canonical":"https://djangodocs.dev/ga/5.2/howto/auth-remote-user/","summary":"Déanann an doiciméad seo cur síos ar conas foinsí fíordheimhnithe seachtracha a úsáid (áit a shocraíonn an freastalaí gréasáin an athróg timpeallachta REMOTE_USER )…","html":"<h1>Conas fíordheimhniú ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code><a class=\"heading-anchor\" href=\"#how-to-authenticate-using-remote-user\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Déanann an doiciméad seo cur síos ar conas foinsí fíordheimhnithe seachtracha a úsáid (áit a shocraíonn an freastalaí gréasáin an athróg timpeallachta <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code>) i d'iarratais Django. Is gnách go bhfeictear an cineál réiteach fíordheimhnithe seo ar shuíomhanna inlín, le réitigh sínithe aonair mar IIS agus Fíordheimhniú Comhtháite Windows nó Apache agus <a class=\"reference external\" href=\"https://httpd.apache.org/docs/current/mod/mod_authnz_ldap.html\">mod_authnz_ldap</a>, <a class=\"reference external\" href=\"https://www.apereo.org/projects/cas\">CAS</a>, <a class=\"reference external\" href=\"https://uit.stanford.edu/service/authentication\">WebAuth</a>, <a class=\"reference external\" href=\"https://sourceforge.net/projects/mod-auth-sspi\">mod_auth_sspi</a>, srl.</p>\n<p>Nuair a thugann an freastalaí gréasáin aire d'fhíordheimhniú de ghnáth socraíonn sé an t-athróg timpeallachta <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code> le húsáid san fheidhmchlár bunúsach. &lt;django.http.HttpRequest.META&gt;I Django, cuirtear <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code> ar fáil sa tréith: attr: Request.meta `. Is féidir Django a chumrú chun úsáid a bhaint as an luach ``REMOTE_USER` ag baint úsáide as na ranganna <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleware</span></code> nó <code class=\"docutils literal notranslate\"><span class=\"pre\">PersistentRemoteUserMiddleware</span></code>, agus:class: ~django.contrib.auth.backends.remoteUserBackend atá le fáil in:mod: django.contrib.auth.</p>\n<section id=\"configuration\">\n<h2>Cumraíocht<a class=\"heading-anchor\" href=\"#configuration\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ar dtús, ní mór duit an:class: django.contrib.auth.middleware.remoteUserMiddleware a chur leis an socrú:setting: MIDDLEWARE <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>tar éis ** an:class: django.contrib.auth.middleware.AuthenticationMiddleware:</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=\"n\">MIDDLEWARE</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;...&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.middleware.AuthenticationMiddleware&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.middleware.RemoteUserMiddleware&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;...&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Ansin, ní mór duit:class: ~django.contrib.auth.backends.modelBackend a chur in ionad la:class: ~django.contrib.auth.backends.remoteUserBackend sa socrú: AUTHENTICATION_BACKENDS:</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=\"n\">AUTHENTICATION_BACKENDS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;django.contrib.auth.backends.RemoteUserBackend&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Leis an socrú seo, braithfidh <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleWare</span></code> an t-ainm úsáideora in <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>request.meta ['REMOTE_USER'] <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>agus déanfaidh sé fíordheimhniú agus logáil isteach go huathoibríoch an t-úsáideoir sin ag baint úsáide as an: class: ~django.contrib.auth.backends.remoteUserBackend.</p>\n<p>Bí ar an eolas go ndíchumasaíonn an socrú áirithe seo fíordheimhniú leis an réamhshocraithe <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelBackend</span></code>. Ciallaíonn sé seo mura socraítear an luach REMOTE_USER` ansin níl an t-úsáideoir in ann logáil isteach, fiú ag baint úsáide as comhéadan riaracháin Django. Ag cur <code class=\"docutils literal notranslate\"><span class=\"pre\">`Django.contrib.auth.backends.ModelBackend'</span></code> leis an liosta <code class=\"docutils literal notranslate\"><span class=\"pre\">AUTHENTICATION_BACKENDS</span></code>, úsáidfear <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelBackend</span></code> mar fhillback má tá <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code> as láthair, rud a réiteoidh na saincheisteanna seo.</p>\n<p>Ní chomhtháthaíonn bainistíocht úsáideora Django, mar shampla na tuairimí i contrib.admin ``agus an t-ordú bainistíochta: djadmin: `createsuperuser, le húsáideoirí iargúlta. Oibríonn na comhéadain seo le húsáideoirí atá stóráilte sa bhunachar sonraí beag beann ar <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>AUTHENTICATION_BACKENDS`.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Ós rud é go dtagann an RemoteUserBackend` oidhreacht ó <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelBackend</span></code>, beidh na ceadanna céanna go léir agat fós a chuirtear i bhfeidhm i <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelBackend</span></code>.</p>\n<p>&lt;django.contrib.auth.models.User.is_active&gt;Ní cheadfar d'úsáideoirí le:attr: is_active=false `fíordheimhniú. Úsáid:class: `~django.contrib.auth.backends.allowAllUsersRemoteUserBackend más mian leat ligean dóibh.</p>\n</aside>\n<p>If your authentication mechanism uses a custom HTTP header and not\n<code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code>, you can subclass <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleware</span></code> and set the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">header</span></code> attribute to the desired <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META</span></code> key.  For example:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">mysite/middleware.py</span></code></figcaption>\n<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.middleware</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">RemoteUserMiddleware</span>\n\n\n <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CustomHeaderRemoteUserMiddleware</span><span class=\"p\">(</span><span class=\"n\">RemoteUserMiddleware</span><span class=\"p\">):</span>\n     <span class=\"n\">header</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;HTTP_AUTHUSER&quot;</span>\n</code></pre></figure>\n<p>This custom middleware is then used in the <a class=\"reference internal\" href=\"/ga/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> setting\ninstead of <a class=\"reference internal\" href=\"/ga/5.2/ref/middleware/#django.contrib.auth.middleware.RemoteUserMiddleware\" title=\"django.contrib.auth.middleware.RemoteUserMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.middleware.RemoteUserMiddleware</span></code></a>:</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=\"n\">MIDDLEWARE</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;...&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.middleware.AuthenticationMiddleware&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;mysite.middleware.CustomHeaderRemoteUserMiddleware&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;...&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Bí an-chúramach má úsáideann tú fo-aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleware`</span> <span class=\"pre\">le</span> <span class=\"pre\">ceannteideal</span> <span class=\"pre\">saincheaptha</span> <span class=\"pre\">HTTP.</span> <span class=\"pre\">Caithfidh</span> <span class=\"pre\">tú</span> <span class=\"pre\">a</span> <span class=\"pre\">bheith</span> <span class=\"pre\">cinnte</span> <span class=\"pre\">go</span> <span class=\"pre\">socraíonn</span> <span class=\"pre\">nó</span> <span class=\"pre\">stiallann</span> <span class=\"pre\">do</span> <span class=\"pre\">fhreastalaí</span> <span class=\"pre\">gréasáin</span> <span class=\"pre\">tosaigh</span> <span class=\"pre\">an</span> <span class=\"pre\">ceannteideal</span> <span class=\"pre\">sin</span> <span class=\"pre\">bunaithe</span> <span class=\"pre\">ar</span> <span class=\"pre\">na</span> <span class=\"pre\">seiceálacha</span> <span class=\"pre\">fíordheimhnithe</span> <span class=\"pre\">cuí,</span> <span class=\"pre\">gan</span> <span class=\"pre\">ligean</span> <span class=\"pre\">riamh</span> <span class=\"pre\">d'úsáideoir</span> <span class=\"pre\">deiridh</span> <span class=\"pre\">luach</span> <span class=\"pre\">ceanntásc</span> <span class=\"pre\">bréige</span> <span class=\"pre\">(nó</span> <span class=\"pre\">“spoofed”)</span> <span class=\"pre\">a</span> <span class=\"pre\">chur</span> <span class=\"pre\">isteach.</span> <span class=\"pre\">Ós</span> <span class=\"pre\">rud</span> <span class=\"pre\">é</span> <span class=\"pre\">go</span> <span class=\"pre\">ndéanann</span> <span class=\"pre\">na</span> <span class=\"pre\">ceannteidil</span> <span class=\"pre\">HTTP</span> <span class=\"pre\">``X-Auth-User</span></code> agus <code class=\"docutils literal notranslate\"><span class=\"pre\">X-Auth_User</span></code> (mar shampla) normalú go eochair HTTP_X_AUTH_USER` i Request.meta`, ní mór duit a sheiceáil freisin nach gceadaíonn do fhreastalaí gréasáin ceanntásc foláraithe ag úsáid béim in áit na dtaitíní.</p>\n<p>Ní bhaineann an rabhadh seo le RemoteUserMiddleware` ina chumraíocht réamhshocraithe le <code class=\"docutils literal notranslate\"><span class=\"pre\">header</span> <span class=\"pre\">=</span> <span class=\"pre\">'REMOTE_USER'`,</span> <span class=\"pre\">ós</span> <span class=\"pre\">rud</span> <span class=\"pre\">é</span> <span class=\"pre\">nach</span> <span class=\"pre\">féidir</span> <span class=\"pre\">le</span> <span class=\"pre\">eochair</span> <span class=\"pre\">nach</span> <span class=\"pre\">dtosaíonn</span> <span class=\"pre\">le</span> <span class=\"pre\">`HTTP_</span></code> i request.meta` a shocrú ach ag do fhreastalaí WSGI, ní go díreach ó cheannteideal iarratais HTTP.</p>\n</aside>\n<p>Má theastaíonn níos mó smachta uait, is féidir leat do chúltaca fíordheimhnithe féin a chruthú a fhaigheann oidhreacht ó:class: ~django.contrib.auth.backends.remoteUserBackend agus ceann amháin nó níos mó dá thréithe agus modhanna a shárú.</p>\n</section>\n<section id=\"using-remote-user-on-login-pages-only\">\n<span id=\"persistent-remote-user-middleware-howto\"></span><h2>Ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code> ar leathanaigh logála isteach amháin<a class=\"heading-anchor\" href=\"#using-remote-user-on-login-pages-only\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Glacann an middleware fíordheimhnithe <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleware</span></code> go bhfuil an ceannteideal iarratais HTTP <code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code> i láthair le gach iarratas fíordheimhnithe. D'fhéadfaí súil leis sin agus praiticiúil nuair a úsáidtear Basic HTTP Auth le htpasswd nó meicníochtaí den chineál céanna, ach le Negoate (GSSAPI/KerberOS) nó modhanna fíordheimhnithe dian-acmhainní eile, de ghnáth ní bhunaítear an fíordheimhniú sa bhfreastalaí HTTP tosaigh ach le haghaidh URL amháin nó cúpla URL, agus tar éis fíordheimhniú rathúil, ceaptar an feidhmchlár an seisiún fíordheimhnithe féin a choinneáil.</p>\n<p><a class=\"reference internal\" href=\"/ga/5.2/ref/middleware/#django.contrib.auth.middleware.PersistentRemoteUserMiddleware\" title=\"django.contrib.auth.middleware.PersistentRemoteUserMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PersistentRemoteUserMiddleware</span></code></a>\nprovides support for this use case. It will maintain the authenticated session\nuntil explicit logout by the user. The class can be used as a drop-in\nreplacement of <a class=\"reference internal\" href=\"/ga/5.2/ref/middleware/#django.contrib.auth.middleware.RemoteUserMiddleware\" title=\"django.contrib.auth.middleware.RemoteUserMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleware</span></code></a>\nin the documentation above.</p>\n</section>","rootId":"how-to-authenticate-using-remote-user","toc":[{"title":"Cumraíocht","anchor":"configuration","children":[]},{"title":"Ag baint úsáide as REMOTE_USER ar leathanaigh logála isteach amháin","anchor":"using-remote-user-on-login-pages-only","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Treoracha conas","url":"/ga/5.2/howto/"}],"prev":{"docname":"howto/static-files/deployment","title":"Conas comhaid statacha a imscaradh","url":"/ga/5.2/howto/static-files/deployment/"},"next":{"docname":"howto/csrf","title":"Conas cosaint CSRF Django a úsáid","url":"/ga/5.2/howto/csrf/"},"formats":{"html":"/ga/5.2/howto/auth-remote-user/","markdown":"/ga/5.2/howto/auth-remote-user.md","json":"/ga/5.2/howto/auth-remote-user.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/howto/auth-remote-user.txt","official":"https://docs.djangoproject.com/ga/5.2/howto/auth-remote-user/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}