gpt4 book ai didi

asp.net-core - AddInMemoryClients 导致未知客户端或未启用

转载 作者:行者123 更新时间:2023-12-03 23:49:34 25 4
gpt4 key购买 nike

我正在尝试使用 "oidc-client": "1.10.1" 使身份服务器 4 在带有 Angular 8 SPA 的 ASP Net Core 3 应用程序中工作.

如果我将以下内容添加到我的 appsettings.json

  "IdentityServer": {
"Key": {
"Type": "File",
"FilePath": "acertificate.pfx",
"Password": "notmyrealpassword..orisit?"
},
"Clients": {
"dev-client": {
"Profile": "IdentityServerSPA",
}
}
}

使用这个客户端:
 {
authority: 'https://localhost:5001/',
client_id: 'dev-client',
redirect_uri: 'http://localhost:4200/auth-callback',
post_logout_redirect_uri: 'http://localhost:4200/',
response_type: 'id_token token',
scope: 'openid profile API',
filterProtocolClaims: true,
loadUserInfo: true
}

我得到: Invalid redirect_uri: http://localhost:4200/auth-callback
添加。
"dev-client": {
"Profile": "IdentityServerSPA",
"RedirectUris": [ "http://localhost:4200/auth-callback" ]
}

什么也没做。如果我添加(几乎)从文档中复制的客户端配置
"Clients": [
{
"Enabled": true,
"ClientId": "dev-client",
"ClientName": "Local Development",
"AllowedGrantTypes": [ "implicit" ],
"AllowedScopes": [ "openid", "profile", "API" ],
"RedirectUris": [ "http://localhost:4200/auth-callback" ],
"RequireConsent": false,
"RequireClientSecret": false
}
]

我得到: System.InvalidOperationException: 'Type '' is not supported.'启动时

如果我尝试在代码中配置客户端,并且只在 appsettings 中保留“Key”部分
services
.AddIdentityServer(options =>
{
options.Cors.CorsPolicyName = _CorsPolicyName;
})
.AddInMemoryClients(new IdentityServer4.Models.Client[] {
new IdentityServer4.Models.Client
{
ClientId = "dev-client",
ClientName = "JavaScript Client",
ClientUri = "http://localhost:4200",

AllowedGrantTypes = { IdentityModel.OidcConstants.GrantTypes.Implicit },
AllowAccessTokensViaBrowser = true,

RedirectUris = { "http://localhost:4200/auth-callback" },
PostLogoutRedirectUris = { "http://localhost:4200" },
AllowedCorsOrigins = { "http://localhost:4200" },

AllowedScopes =
{
IdentityServer4.IdentityServerConstants.StandardScopes.OpenId,
IdentityServer4.IdentityServerConstants.StandardScopes.Profile,
IdentityServer4.IdentityServerConstants.StandardScopes.Email,
"API"
}
}
})

我得到: Unknown client or not enabled: dev-client .

有人帮助我保持理智并指出我的错误,这很可能是显而易见的错误。

最佳答案

ASP.NET Identity 覆盖了 IdentityServer 客户端配置的文档化方法,期望一个 dictionary of well-known values .您可以通过创建一个名为 的部分来绕过此问题。不是 命名 Clients并明确阅读该部分。此外,AddApiAuthorization在 ApiAuthorizationOptions 上公开 Clients 集合,可用于添加其他客户端:

.AddApiAuthorization<...>(options =>
{
options.Clients.AddRange(Configuration.GetSection("IdentityServer:OtherClients").Get<Client[]>());
});

关于asp.net-core - AddInMemoryClients 导致未知客户端或未启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59741002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com