gpt4 book ai didi

identityserver4 - 如何配置 IdentityServerAuthenticationOptions.Authority 以使用通配符

转载 作者:行者123 更新时间:2023-12-01 11:24:05 31 4
gpt4 key购买 nike

我使用 ASP.NET Core 成功设置了 IdentityServer4。

作为默认配置,我有这个:

IdentityServerAuthenticationOptions options = new IdentityServerAuthenticationOptions()
{
Authority = "http://localhost:5000",
ScopeName = "scope",
ScopeSecret = "ScopeSecret",
AutomaticAuthenticate = true,
AutomaticChallenge = true,
RequireHttpsMetadata = false,
};

现在,使用这个 guide我配置为从配置文件中读取,因此它们可以是生产中的任何数字。

例如,如果我将 API 设置为在 http://*:5000 上运行,那么客户端可以通过服务 IP 地址连接到它,例如 http://192.168.1.100 :5000.

一旦客户端获得 Bearer token 并尝试使用它,就会发生一个Internal Server Error异常:

Unable to obtain configuration from: 
'http://*:5000/.well-known/openid-configuration'.
---> System.IO.IOException: IDX10804: Unable to retrieve document from: 'http://*:5000/.well-known/openid-configuration'.
---> System.UriFormatException: Invalid URI: The hostname could not be parsed.

IdS4动态权限配置的正确方法是什么?

更新

看来问题出在 Issuer 上,对此有什么想法吗?

Microsoft.IdentityModel.Tokens.SecurityTokenInvalidIssuerException: 

IDX10205: Issuer validation failed. Issuer: 'http://192.168.1.100:5000'. Did not match: validationParameters.ValidIssuer: 'http://localhost:5000' or validationParameters.ValidIssuers: 'null'.

at Microsoft.IdentityModel.Tokens.Validators.ValidateIssuer(String issuer, SecurityToken securityToken, TokenValidationParameters validationParameters)

最佳答案

令我大吃一惊的是,我所需要的只是为 IssuerUri 设置一个值(几乎任何值):

public IServiceProvider ConfigureServices(IServiceCollection services)
{
////...

var identiyBuilder = services.AddIdentityServer(options =>
{
options.RequireSsl = false;
options.IssuerUri = "MyCompany";
});

////...
}

现在,通过上面的配置,我可以通过任何IP地址使用该服务。

关于identityserver4 - 如何配置 IdentityServerAuthenticationOptions.Authority 以使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39232196/

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