ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Better Auth 接入 Azure AD:企业账号登录配置指南

Better Auth 接入 Azure AD:企业账号登录配置指南 Better Auth 接入 Azure AD企业账号登录配置指南【免费下载链接】better-authThe most comprehensive authentication framework项目地址: https://gitcode.com/GitHub_Trending/be/better-auth本文带你完成 Better Auth 的 Azure AD 集成从 Azure 应用注册到最小可运行配置再到多租户与单租户 Azure AD 配置。读完后你可以在自己的 TypeScript 项目里让用户直接用公司 Microsoft 账号登录。场景引入假设你给一家公司做内部 SaaS。员工邮箱全是企业域名IT 部门的要求只有一条别做邮箱密码登录用公司现有的 Microsoft 账号统一进来员工离职时权限随账号自动失效。如果手工对接 Azure AD你要读 OAuth 2.0 授权码流程的文档拼授权 URL、拿 code 换令牌、校验 ID token 的签名和颁发者、处理令牌刷新再自己定用户表里放哪个字段当唯一标识。每一步都容易踩坑。Better Auth 内置了 Microsoft 提供程序把这条链路整段接管。你只需要在 auth 配置里填clientId和clientSecret两个参数授权、换令牌、验签、建会话都交给它。 快速上手在 Azure 门户创建应用注册登录 Azure 门户进入 Entra ID 的应用注册新建一个注册。完成后记下三样东西概览页的应用客户端ID在证书和密码里新建一条客户端密码记下客户端密码值它只显示一次把回调地址http://localhost:3000/api/auth/callback/microsoft加进重定向 URI 列表生产环境再补一条换成你的正式域名。如果系统提示该 URI 格式无效就把它加到移动和桌面应用程序一栏。安装 better-auth 依赖npm install better-auth配置 Microsoft 社交登录的最小 auth 代码下面是全文唯一一段完整代码。socialProviders.microsoft就是 Better Auth 的 Azure AD 集成入口两个必填项之外全部可省。import { betterAuth } from better-auth export const auth betterAuth({ socialProviders: { microsoft: { clientId: process.env.MICROSOFT_CLIENT_ID!, clientSecret: process.env.MICROSOFT_CLIENT_SECRET!, }, }, })启动后前端调用authClient.signIn.social({ provider: microsoft })就会跳到微软登录页。用户授权后Better Auth 自动完成换令牌、校验 ID token 和创建会话。 多租户 Azure AD 配置tenantId 怎么改微软的tenantId决定授权 URL 指向哪个入口。不传时默认是common登录页接受任意租户的工作账号也接受个人账号。此时 Better Auth 的 ID token 校验会按令牌自身所属租户去拉对应的 JWKS微软公开的公钥集合验证签名。想收紧范围就改tenantId这一个参数设成organizations登录页只显示工作或学校账号个人账号的令牌会被 Better Auth 在校验环节拒绝。设成某个租户的 GUID微软把登录限定在那个租户内ID token 的颁发者固定为该租户校验也只认这一家。为什么这样改就有效因为tenantId同时改变了微软的授权入口和令牌颁发者。比如锁定到某租户后Better Auth 会要求令牌的颁发者正是login.microsoftonline.com加这个租户 GUID 的地址来源不符直接拒绝。你的用户群固定在一个租户就锁到具体 GUID这是最稳的写法产品要卖给很多家公司就用organizations再按需要排除个人账号。 常见坑排查登录跳转后报AAD.redirect_uri_mismatch400现象点登录后微软页面报回调地址不匹配错误码AAD.redirect_uri_mismatch。原因Better Auth 实际发出的回调地址和你在 Azure 侧登记的地址不完全一致。通常是端口写错或者改了baseURL却没同步改 Azure 里的重定向 URI。解决把两边地址逐字对齐本地用http://localhost:3000/api/auth/callback/microsoft生产换成部署域名后回 Azure 补登。令牌校验失败登录中断现象微软侧授权成功Better Auth 侧报 ID token 校验错误。原因你把tenantId设成了某个具体租户但登录的人来自别的租户。微软会按该账号真实所属的租户签发令牌颁发者和你的预期对不上Better Auth 拒绝接受。解决确认用户群落在哪个范围跨租户就改回organizations单租户才锁具体 GUID。登录成功但 profile 里 email 为空现象用户登进来了用户记录里邮箱却是空值。原因Entra 对托管账户默认不输出email声明Better Auth 不会凭空补一个。解决在应用注册的令牌声明里添加email这个 optional claim之后新签发的令牌就会带上邮箱。资源Better Auth 的 Microsoft 提供程序源码见 microsoft-entra-id.ts完整应用示例见 demo/nextjs/lib/auth.ts。【免费下载链接】better-authThe most comprehensive authentication framework项目地址: https://gitcode.com/GitHub_Trending/be/better-auth创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表