集成外部提供商(即Google与Thinktecture Identity Server v3)时出现问题。出现以下错误:“客户端应用程序未知或未获得授权。”
是否有人对此错误有任何想法。

最佳答案

@但是,似乎您在客户端和服务器中的RedirectUri值不匹配。

客户端启动中的RedirectUri属性定义身份服务器进行身份验证后将调用的URI。服务器配置中的RedirectUris定义了可以请求身份验证的允许URI的列表。因此,客户端启动RedirectUri必须包含在服务器的RedirectUris列表中。

看起来您的客户端的RedirectUri当前指向服务器的URI。您的客户端在端口46289上运行吗?如果是这样,请尝试在客户端启动时将RedirectUri属性的值更改为https://localhost:46289。您可能还想尝试修改服务器的redirectUris值以使用https而不是http,假设您的客户端确实可以通过https访问。

服务器客户端存储:

public static IEnumerable<Client> Get()
{
    return new[] {
         new Client {
             Enabled = true,
             ClientName = "MVC Client",
             ClientId = "mvc",
             Flow = Flows.Implicit,

             RedirectUris = new List<string>{
                 "https://localhost:46289/"  // client home url

客户端启动:
public void Configuration(IAppBuilder app)
{
    ConfigureAuth(app);
    app.UseCookieAuthentication(new CookieAuthenticationOptions {
        AuthenticationType = "Cookies"
    });

    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions {
            Authority = "https://localhost:44300/identity",
            ClientId = "mvc",
            RedirectUri = "https://localhost:46289/", //must be in server's Client.RedirectUris
            ResponseType = "id_token",

            SignInAsAuthenticationType = "Cookies"
    });

10-07 22:47