2016-07-19 10 views
1

EFとAspNetIdentityでIdentityServer3を設定しました。私は3つのMVCクライアントアプリケーションを持っています。すべてのユーザーとクライアントはSQL DBで構成されています。私はそれが働いて得ることができたとユーザーは、ログインすることができます。IdentityServer3:ClientSecretをMVCクライアントに割り当てる方法

今、私はクライアントの周り&ユーザーをいくつかのセキュリティを追加しようとしていると私は

1を関連するいくつかの質問を持っている> MVCのクライアントのみで動作しません暗黙のフロー?私はMVCクライアントを持っており、以下はOWINの起動です。私は(「暗黙」以外の)任意の流れにLocalHostMvcClientの流れを変えるとき

IdentityServerに
public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = "Cookies" 
      }); 

      app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions 
      { 
       Authority = "https://localhost:44314/identity", 
       Scope = "openid", 
       ClientId = "LocalHostMvcClient", 
       RedirectUri = "http://localhost:34937/", 
       ResponseType = "id_token", 
       SignInAsAuthenticationType = "Cookies"     
      }); 
     } 
    } 

、クライアントはエラーThe client application is not known or is not authorized.を取得します。だからMVCクライアントのように見える それはImplicitフローでのみ動作します。 これは本当ですか?

2> ClientSecretは、Implicitフローには関係ありませんか? 私はClientSecretを使用したいと思いますが、それはImplicitフローには関係がないようです。 documentationに基づいてClientSecretは、秘密を必要とするフローだけに関連します。質問1の答えが真であれば、私はImplicitフローでClientSecretを使うことができないのでしょうか?

3>複数のクライアントとユーザーがいる場合。特定のクライアントにユーザーを割り当てることはできますか? たとえば、私は3つのクライアント、www.client1.com、www.client2.com、www.client3.comと2人のユーザーUser1、User2を持っています。私はUser1がwww.client1.comのためだけにログインできるようにします これは可能ですか?

答えて

1
  1. ASP.NET MVCは、任意のOpenID Connectフローを使用できます。受け取っているエラーは、クライアントアプリケーションが何かを許可していないか、何らかの方法で誤って構成されていることを要求しているためです。 Identity Serverのログを有効にすると、すぐにその理由が表示されます。
  2. クライアントシークレットは暗黙的に使用されません。明示的な承認ではなく、要求URLに暗黙的に依存するためです。そのため、クライアント側の言語にとっては便利です。
  3. これは認証ロジックであり、クライアントアプリケーション内で処理する必要があります。たとえば、ログインすると、「承認されていない」ページが表示されます。 Identity Serverは認証専用です。
関連する問題