电脑知识铺
第二套高阶模板 · 更大气的阅读体验

网络认证协议面试题常见考点解析

发布时间:2026-01-18 14:10:57 阅读:215 次

最近帮朋友准备跳槽面试,翻了不少大厂的笔试题,发现“网络认证协议”这块问得特别多。别看它只是内网通信里的一环,真要讲清楚,没点实打实的经验还真容易卡壳。

常见的认证协议有哪些?

这个问题几乎是必问的。实际工作中用得最多的是 Kerberos、OAuth 2.0、JWT 和 LDAP。比如你在公司登录内部系统,可能背后就是 Kerberos 在做票据验证;而你用微信或支付宝扫码登录某个网站,基本就是 OAuth 的套路。

Kerberos 的特点是依赖密钥分发中心(KDC),适合封闭内网环境。我们公司以前做内网穿透方案时,就遇到过客户端在 NAT 后面拿不到 TGT(票据授予票据)的问题,最后是通过部署代理服务转发请求解决的。

OAuth 2.0 的四种模式怎么答?

面试官如果追问细节,大概率会问这个。四种授权模式分别是:授权码模式、隐式模式、密码模式和客户端凭证模式。

最常用的是授权码模式,比如你在家里调试一个穿透到公司内网的服务,前端跳转到认证服务器,拿到 code 后由后端换 token,这样比较安全。代码流程大概是这样:

GET /authorize?response_type=code&client_id=xxx&redirect_uri=callback&scope=read

// 用户同意后跳回 callback?code=abc123

POST /token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=abc123&redirect_uri=callback&client_id=xxx&client_secret=secret

隐式模式直接返回 token,适合纯前端应用,但风险高,现在用得少了。

JWT 结构能说清楚吗?

JWS(JSON Web Signature)格式,三段式:头部、载荷、签名。比如你用 frp 做内网穿透,加了个简单的 token 验证,就可以用 JWT 来传身份信息。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

第一段是 alg 和 typ,base64 解码就能看到;第二段是用户信息;第三段是签名,防止篡改。注意,JWT 不加密,敏感数据别往里放。

为什么不能只用 Basic Auth?

有些小项目图省事,直接上 Base64 编码用户名密码,其实很危险。Base64 不是加密,随便一解就明文了。之前有次测试环境被人扫了,就是因为用了 Basic Auth 又没走 HTTPS,账号密码全暴露。

正确做法是搭配 HTTPS 使用,或者干脆换成 token 机制。像 nginx 做反向代理时,可以加 auth_request 模块走 OAuth 校验,比硬编码靠谱多了。

单点登录(SSO)和认证协议的关系

很多公司内部系统多,不可能每个都输一遍密码。SSO 就是靠统一认证服务实现的,背后常结合 SAML 或 OIDC(基于 OAuth 2.0)。比如你登录企业微信后,再进内部 CRM 自动免登,这就是 OIDC 在起作用。

做内网穿透时,如果要把本地服务接入公司 SSO,就得模拟好回调流程,确保 redirect_uri 能被公网访问,不然认证链就断了。