https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/1-の Microsoft.Identity.Web を使用して、小さな ASP.NET Core v3 Web アプリをセットアップしました。 WebApp-OIDC
これはうまくいきます。しかし、userA としてログインし、Azure AD からこのユーザーを削除すると、ユーザーはログインしたままになります。アプリを偽造して、ユーザーがまだ存在するかどうか、または役割が変更されたかどうかを定期的に確認するにはどうすればよいでしょうか?
Azure AD auth の有効期限が切れていない CookieからOpenIdConnectOptions.UseTokenLifetime = false
、 とを設定できることを理解していCookieAuthenticationOptions.ExpireTimeSpan
ます。しかし、これらのオプションはありません。これは (私が思うに) Microsoft.Identity.Web によって処理されるためです。
これは私のstartup.csです:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMicrosoftIdentityPlatformAuthentication(Configuration);
// Start update
services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
options.UseTokenLifetime = true;
});
services.Configure<CookieAuthenticationOptions>(AzureADDefaults.CookieScheme, options =>
{
options.ExpireTimeSpan = TimeSpan.FromMinutes(10);
options.SlidingExpiration = false;
});
// End update
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
services.AddRazorPages();
}
OpenIdConnectOptions
とを追加するだけCookieAuthenticationOptions
ですか?
更新: フィドラーの応答
https://localhost:44321/AzureAD/Account/SignIn :
Response sent 393 bytes of Cookie data:
Set-Cookie: .AspNetCore.OpenIdConnect.Nonce.CfDJ8DuK51tOHitCik75v2S8iWxKHxTWbTuVHpn..tFRI_4=N; expires=Mon, 18 Nov 2019 15:46:01 GMT; path=/signin-oidc; secure; httponly
Response sent 159 bytes of Cookie data:
Set-Cookie: .AspNetCore.Correlation.AzureADOpenID.391z3h71jwDryPN3B-AdSG0heYONqHJl1CVSVXQTEvA=N; expires=Mon, 18 Nov 2019 15:46:01 GMT; path=/signin-oidc; secure; httponly
https://login.microsoftonline.com/4723a546-001 ...:
Response sent 1012 bytes of Cookie data:
Set-Cookie: ESTSAUTHPERSISTENT=AQABAAQAAACQN9QBRU3jT6bcBQLZNUj7uwP...mnvoIAAgAEAA8AEAAA; domain=.login.microsoftonline.com; expires=Sun, 16-Feb-2020 15:31:00 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 344 bytes of Cookie data:
Set-Cookie: ESTSAUTH=AQABAAQAAACQN9QBRU3jT6bcBQLZNUj7wC-ZyhIlRLoQ...AAIABAACAAAAA; domain=.login.microsoftonline.com; path=/; secure; HttpOnly; SameSite=None
Response sent 46 bytes of Cookie data:
Set-Cookie: ESTSAUTHLIGHT=+; path=/; secure; SameSite=None
Response sent 151 bytes of Cookie data:
Set-Cookie: ch=5skAXHVPUQU3cW85sv9gWKffR4iIPEUy-ft0Wus--nw; domain=.login.microsoftonline.com; expires=Sun, 16-Feb-2020 15:31:00 GMT; path=/; secure; SameSite=None
Response sent 50 bytes of Cookie data:
Set-Cookie: ESTSSC=00; path=/; secure; HttpOnly; SameSite=None
Response sent 291 bytes of Cookie data:
Set-Cookie: buid=AQABAAEAAACQN9QBRU3jT6bcBQLZNUj7TWvsgdEJ-MOKclE...UnPupXv2kGSxsgAA; expires=Wed, 18-Dec-2019 15:31:00 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 1831 bytes of Cookie data:
Set-Cookie: CCState=Q2xJS1FHZGxaWEowYUdWa1pHVkFjM1ZpWVdSMmFXVnpM...reFV1VkFBRT0=; domain=.login.microsoftonline.com; expires=Thu, 28-Nov-2019 15:31:00 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 171 bytes of Cookie data:
Set-Cookie: fpc=AoAEjBaP4a5AlJE4o0Jin2Ps2YtHAQAAAOmvZNUOAAAAg2kmAwIAAAC8r2TVDgAAADvINqwBAAAA2K9k1Q4AAAA; expires=Wed, 18-Dec-2019 15:31:00 GMT; path=/; secure; HttpOnly; SameSite=None
https://login.microsoftonline.com/4723a546-001../login HTTP/1.1:
Response sent 1012 bytes of Cookie data:
Set-Cookie: ESTSAUTHPERSISTENT=AQABAAQAAACQN9QBRU3jT6bcBQLZNUj...IAAgAEAA8AEAAA; domain=.login.microsoftonline.com; expires=Sun, 16-Feb-2020 15:31:18 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 728 bytes of Cookie data:
Set-Cookie: ESTSAUTH=AQABAAQAAACQN9QBRU3jT6bcBQLZNUj77qVSa5EFK...BAAEABAAA; domain=.login.microsoftonline.com; path=/; secure; HttpOnly; SameSite=None
Response sent 82 bytes of Cookie data:
Set-Cookie: ESTSAUTHLIGHT=+d4f06d0f-8cba-42f7-81cd-a996d96fcbce; path=/; secure; SameSite=None
Response sent 151 bytes of Cookie data:
Set-Cookie: ch=o3kjZd2rB2j31dip8OtCMqqwRWCB2vyRziEz796WfUE; domain=.login.microsoftonline.com; expires=Sun, 16-Feb-2020 15:31:18 GMT; path=/; secure; SameSite=None
Response sent 50 bytes of Cookie data:
Set-Cookie: ESTSSC=00; path=/; secure; HttpOnly; SameSite=None
Response sent 291 bytes of Cookie data:
Set-Cookie: buid=AQABAAEAAACQN9QBRU3jT6bcBQLZNUj7jiDQCSTiR0kg-...V2qP5AgAA; expires=Wed, 18-Dec-2019 15:31:18 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 1831 bytes of Cookie data:
Set-Cookie: CCState=Q2xJS1FHZGxaWEowYUdWa1pHVkFjM1ZpWVdSMmFXVn...NiOEFBRT0=; domain=.login.microsoftonline.com; expires=Thu, 28-Nov-2019 15:31:18 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 171 bytes of Cookie data:
Set-Cookie: fpc=AoAEjBaP4a5AlJE4o0Jin2Ps2YtHAQAAAOmvZNUOAAAAg2...AA; expires=Wed, 18-Dec-2019 15:31:18 GMT; path=/; secure; HttpOnly; SameSite=None
Response sent 66 bytes of Cookie data:
Set-Cookie: x-ms-gateway-slice=estsfd; path=/; SameSite=None; secure; HttpOnly
Response sent 47 bytes of Cookie data:
Set-Cookie: stsservicecookie=ests; path=/; secure; HttpOnly
更新 2 :
私の Startup.cs の変更は現在機能しているようです。UserC としてログインし、このユーザーを AAD から削除します。ページを変更してから 1 時間後に再度ログインする必要があります。もちろん失敗します。ExpireTimeSpan
10分に設定したので、時間は少し変です。しかし、私はすでにユーザーがチェックされたことに満足しています.
補足: アプリケーションを再起動すると、直接 login.live.com にリダイレクトされ、パスワードを要求されますが、ユーザー名を変更することはできません!
URL には、ユーザー名がパラメーターとして表示されます。それを削除すると、ユーザー名を尋ねられます。しかし、別のアカウントを使用すると、パスワードが間違っていると言われ続けます。おそらく、私の仕事用バージョンではなく、私の個人用バージョンを使用しているためです。これを変更できないため、自分のアプリケーションにログインできなくなりました。
もう 1 つの大きな欠点は、管理者アカウントで Azure Portal にもログインしていたことです。翌朝、ラップトップを再起動して Chrome を再度開き、Azure Portal のタブを含むタブを復元した後、アプリケーションで使用したユーザーとしてログインしています。どうして??そのユーザーが削除されると、Azure Portal にログインできなくなります。おそらく、ビジネス バージョンではなく、個人用バージョンを使用していることが原因です。
新しいアプリケーションに Microsoft ID プラットフォームを使用する道を進むべきかどうかわかりません。これまでのところ、私にとって利点よりも欠点の方が多くなっています。