2016-08-30 6 views
1

ASP.NETコアでIdentityServer4を正常にセットアップしました。IdentityServerAuthenticationOptions.Authorityでワイルドカードを使用する方法

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

、私は、設定ファイルから読み込まれるので、彼らは生産の任意の数字可能に構成された本guideを使用した:私はこれを持っていたデフォルトの設定として

例えば、セットアップAPIがhttp://*:5000で実行されている場合、クライアントはhttp://192.168.1.100:5000のようなサービスIPアドレスを使用して接続できます。

クライアントは、ベアラがトークンを取得し、それを使用しようとしたら、Internal Server Errorはこの例外にoccures:

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を設定するための正しい方法は何ですか?

更新

問題は発行者、この上の任意のアイデアであると思われますか?大きな驚きによって

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) 

答えて

2

、私は必要なすべては、IssuerUriの値(ほぼすべての値)を設定することでした:

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

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

    ////... 
} 

さて、上記の設定によって、私はどんなことで、サービスを利用することができますIPアドレス。

0

私はちょうどMyCompany

に入れることができます。しかし、私のログファイルに、私は次のことを持っていた見つけることができませんでした:

Bearer was not authenticated. Failure message: IDX10205: Issuer validation failed. Issuer: 'https://crm.example.com'. Did not match: validationParameters.ValidIssuer: 'MyCompany' or validationParameters.ValidIssuers: 'null'. 

私はかなり何発行者」という意味を知らないが、私はでした'https://crm.example.com'を取得して、これで作業するようにすることができます:

options.IssuerUri = "https://crm.example.com"; 
関連する問題