Conas fíordheimhniú ag baint úsáide as REMOTE_USERLink to this heading

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) 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 mod_authnz_ldap, CAS, WebAuth, mod_auth_sspi, srl.

Nuair a thugann an freastalaí gréasáin aire d'fhíordheimhniú de ghnáth socraíonn sé an t-athróg timpeallachta REMOTE_USER le húsáid san fheidhmchlár bunúsach. <django.http.HttpRequest.META>I Django, cuirtear REMOTE_USER 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 RemoteUserMiddlewarePersistentRemoteUserMiddleware, agus:class: ~django.contrib.auth.backends.remoteUserBackend atá le fáil in:mod: django.contrib.auth.

CumraíochtLink to this heading

Ar dtús, ní mór duit an:class: django.contrib.auth.middleware.remoteUserMiddleware a chur leis an socrú:setting: MIDDLEWARE **tar éis ** an:class: django.contrib.auth.middleware.AuthenticationMiddleware:

Code
MIDDLEWARE = [
    "...",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.auth.middleware.RemoteUserMiddleware",
    "...",
]

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:

Code
AUTHENTICATION_BACKENDS = [
    "django.contrib.auth.backends.RemoteUserBackend",
]

Leis an socrú seo, braithfidh RemoteUserMiddleWare an t-ainm úsáideora in ``request.meta ['REMOTE_USER'] ``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.

Bí ar an eolas go ndíchumasaíonn an socrú áirithe seo fíordheimhniú leis an réamhshocraithe ModelBackend. 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 `Django.contrib.auth.backends.ModelBackend' leis an liosta AUTHENTICATION_BACKENDS, úsáidfear ModelBackend mar fhillback má tá REMOTE_USER as láthair, rud a réiteoidh na saincheisteanna seo.

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 ``AUTHENTICATION_BACKENDS`.

If your authentication mechanism uses a custom HTTP header and not REMOTE_USER, you can subclass RemoteUserMiddleware and set the header attribute to the desired request.META key. For example:

mysite/middleware.py
Python
 from django.contrib.auth.middleware import RemoteUserMiddleware


 class CustomHeaderRemoteUserMiddleware(RemoteUserMiddleware):
     header = "HTTP_AUTHUSER"

This custom middleware is then used in the MIDDLEWARE setting instead of django.contrib.auth.middleware.RemoteUserMiddleware:

Code
MIDDLEWARE = [
    "...",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "mysite.middleware.CustomHeaderRemoteUserMiddleware",
    "...",
]

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ú.

Ag baint úsáide as REMOTE_USER ar leathanaigh logála isteach amháinLink to this heading

Glacann an middleware fíordheimhnithe RemoteUserMiddleware go bhfuil an ceannteideal iarratais HTTP REMOTE_USER 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.

PersistentRemoteUserMiddleware provides support for this use case. It will maintain the authenticated session until explicit logout by the user. The class can be used as a drop-in replacement of RemoteUserMiddleware in the documentation above.