Azure AD 与前端 React 和后端 GoLang 集成
Azure AD integrate with frontend React and backend GoLang
我有一个单独的后端结构,使用 GoLang Gin 和前端 ReactJS,我想集成 Azure AD Oauth2 登录。
但是GoLang App或者React App认证是可以的,但是前端使用msal-react认证时如何将认证信息传递给后端呢?
在我当前的后端 API 中,我像这样使用 JWT 来保护 APIs:
v1.Use(jwtauth.JWTAuth())
还是我应该验证后端并将信息传递给前端?但我无法让它重定向(Azure 登录),因为它们在不同的端口...
谢谢!
典型的模式是:
- Front-end(在您的案例中是 React 应用程序)使用 msal(或其他兼容库)将用户重定向到登录
- Front-end 使用 API 应用注册(或相同应用注册)
中定义的范围获取 back-end 的访问令牌
- Front-end 将访问令牌附加到 back-end 个请求
- Back-end 验证访问令牌(使用来自 Azure AD 的 public 密钥签名、到期时间、受众、颁发者、范围等)
在 .NET 中,我们为 JWT 身份验证配置了一个“权限”,例如“https://login.microsoftonline.com/”,然后身份验证处理程序从“https://login.microsoftonline.com//.well-known/openid-configuration”下载元数据 + public 密钥。
也可以为您的图书馆配置类似的东西。
您通常需要自己检查的范围。
我有一个单独的后端结构,使用 GoLang Gin 和前端 ReactJS,我想集成 Azure AD Oauth2 登录。
但是GoLang App或者React App认证是可以的,但是前端使用msal-react认证时如何将认证信息传递给后端呢?
在我当前的后端 API 中,我像这样使用 JWT 来保护 APIs:
v1.Use(jwtauth.JWTAuth())
还是我应该验证后端并将信息传递给前端?但我无法让它重定向(Azure 登录),因为它们在不同的端口...
谢谢!
典型的模式是:
- Front-end(在您的案例中是 React 应用程序)使用 msal(或其他兼容库)将用户重定向到登录
- Front-end 使用 API 应用注册(或相同应用注册) 中定义的范围获取 back-end 的访问令牌
- Front-end 将访问令牌附加到 back-end 个请求
- Back-end 验证访问令牌(使用来自 Azure AD 的 public 密钥签名、到期时间、受众、颁发者、范围等)
在 .NET 中,我们为 JWT 身份验证配置了一个“权限”,例如“https://login.microsoftonline.com/”,然后身份验证处理程序从“https://login.microsoftonline.com//.well-known/openid-configuration”下载元数据 + public 密钥。 也可以为您的图书馆配置类似的东西。 您通常需要自己检查的范围。