【发布时间】:2022-10-20 19:28:28
【问题描述】:
我已经设置了 Keycloak 服务器和前端,但我似乎无法理解如何在我的 .NET 5 后端 API 上设置它。我在 Keycloak 上设置了一个后端客户端和一个前端客户端。 客户端协议是 openid-connect 并且访问类型在两个客户端的 Keycloak 中都是公共的,但我可以在必要时更改它。
前端可以找到并且我可以登录,前端将根据请求将令牌发送到带有值“Bearer”+令牌的标头(授权)的API。
在控制器中,我添加了 Authorize 标签:
[Authorize]
[HttpGet]
public IActionResult GetAllRelays()
{
所有带有 [Authorize] 标签的端点都返回 401 atm。
在 Startup.cs 我有:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(o =>
{
o.Authority = KeycloakServerRealm;
o.Audience = KeycloakClientId;
o.MetadataAddress = KeycloakServerRealm + "/.well-known/openid-configuration";
});
KeycloakServerRealm 是:“https://dev.my-domain.com/auth/realms/my-realm”
KeycloakMetadata 是:“https://dev.my-domain.com/auth/realms/my-realm/.well-known/openid-configuration”
KeycloakClientId 是:“我的后端客户端 ID”
我还需要做什么?
【问题讨论】:
标签: c# .net-core keycloak openid