0

App1 と App2 があり、Active Directory で IdentityServer3 を使用して SSO を実行しています。

各アプリには独自のユーザーとロールがあります。ClaimsTransformation OWIN ミドルウェアを作成し、ユーザー/ロールを取得し、Cookie にシリアル化してから、後続の呼び出しに戻します。それはうまくいきます。

しかし、最初のユーザー登録はどこで行うのでしょうか? 認証ではできません。App1 ユーザーがログオンしてから、新規として App2 に移動すると、認証がスキップされるためです。

ミドルウェアでこれを行うと、ユーザーを登録/プロファイル ページにリダイレクトしようとすると、そのリダイレクトが再びミドルウェアにヒットし、リダイレクト ループが発生します。

助言がありますか?ありがとう。

4

1 に答える 1

0

気にしないでください、それはすべて間違っていました。Owin.Security.OpenIdConnect を使用する .NET の場合、アプリの初期化は SecurityTokenValidated で行う必要があります。認証をスキップする問題は、Cookie 名を設定しなかったことが原因でした。

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOption
  {
     SignInAsAuthenticationType = "Cookies",
     Notifications = new OpenIdConnectAuthenticationNotification 
     {
         SecurityTokenValidated = n => { ... }
于 2016-09-19T22:37:28.177 に答える