0

は、誰でも簡単に社会的アイデンティティ・サーバー4で認証ベンダー追加することができ、それは数分かかります:のIdentity Server 4

public void ConfigureServices(IServiceCollection services) { 
    services.AddMvc(); 
    services.AddIdentityServer() 
     .AddXXX().AddYYY(); 
    services.AddAuthentication() 
     .AddGoogle("Google", options => { 
      options.XXX = XXX; 
     }) 
     .AddFacebook("Facebook", options => { 
      options.XXX = XXX; 
     }); 
} 

その後、あなたはそれは、ASPです(クライアントアプリケーションでいくつかの設定を追加します。私たちの場合のコアコアMVC)

services.AddAuthentication(options => { 
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; 
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; 
}) 
.AddCookie() 
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options => { 
    options.ZZZ = ZZZ; 
}); 

... "ソーシャルログイン"が動作しています。
これはユーザーです。ユーザーはセキュリティで保護されたページにアクセスし、ソーシャルベンダーのボタン(たとえばGoogle、Facebook)を使用してIDPログインページにリダイレクトされ、認証されると保護されたページにリダイレクトされます。

私の挑戦は、まさにここにある - 私がIS4でホストクライアントアプリケーションでこのログインページ、およびないしたいと思います。
それはまったく可能ですか? IS4で何を設定する必要がありますか?
クライアントアプリケーションで何を変更する必要がありますか?

答えて

0

まあ、それは難しいでしょう。 IDSVR4はソーシャル・ログインに基づいてトークンを生成します。 IDSVRをバイパスすると、そのトークンはどのように生成されますか?

あなたがすべきことは、リンクを作成することです。 IDSVR URL(Google/facebookの「/ login/facebook」など)にリダイレクトされ、正しいプロバイダにリダイレクトされ、IDSVRにリダイレクトされてMVCアプリに再度戻されるMVCアプリ内のGoogle/

ユーザは、IDSVRを通過していることを知らないでしょう。

+0

私の意図は、ベンダーのログインページ自体ではなく、ソーシャルベンダーボタンだけを持つページをホストすることです。 フローは次のようになります: セキュアページ(アプリケーション内)>> ソーシャルボタン付きのページにリダイレクト>> ボタンをクリックすると、ソーシャルベンダー>> 認証済みにリダイレクトされます>> セキュリティ保護されたページにリダイレクト – ZENIT

+0

はい、これを行う必要がありますが、このシナリオではIdentityServerの場所はありません。 IdentityServerでトークンの生成を処理する場合は、ソーシャルログインにリダイレクトする前にIdentityServerを経由する必要があります。 –

関連する問題