Azure ADをそのまま使用するように構成された.NET Core 2アプリテンプレートがあります。
構成は次のとおりです。
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "lautaroarinolive.onmicrosoft.com",
"TenantId": "67cb2dfd-ebd5-40d8-829b-378340981a17",
"ClientId": "50819a7a-e018-4c1d-bf0a-18c8fce5c600",
"CallbackPath": "/signin-oidc"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
ポータルには、ClientId
と同じIDのAzureアプリ登録があります。応答URL [APP-URL]/signin-oidc
があります。
構成がログインに影響を与えないことがわかっているにもかかわらず、応答URLを[LocalhostURL]/signin-oidc
に設定した場合、localhostアプリは機能しますonlyローカルホスト上。
Azureアプリはどのような場合でも機能しません。
両方のアプリで動作しないとき、私はこのエラーを受け取ります:
AADSTS50011:要求で指定された応答URLが、アプリケーションに構成された応答URL '50819a7a-e018-4c1d-bf0a-18c8fce5c600'と一致しません
Localhostアプリに設定済みの応答URLが必要ないのは正しいですか?
「応答URLが構成されていません」エラーが表示されるのはなぜですか?
this Sample を参照して、.NETコアアプリを再構築し、Azureに発行できます。
注意が必要な注意事項がいくつかあります。
ポートを5000から有効なポートに変更する必要があります。現在、61659である必要があります。したがって、ローカルホストでテストを行う場合、AADアプリでhttp://localhost:61659/signin-oidc
実稼働用にアプリを構成する場合、またはアプリをAzure Webアプリに発行する場合は、これらのURLを更新します。アプリ構成ファイルとAADアプリケーションの両方の返信URLを<AppURL>/signin-oidc
例えば、 https://www.contoso.com/signin-oidc
または https://Myapp.azurewebsites.net/signout-oidc
。
.NET 4.6.1 Webアプリケーションでも同様の問題が発生しました。 Azureでアプリの返信URLを承認済みの回答と同様に構成する必要がありましたが、コールバックURLは異なりました。
Select Azure Active Directory -> App Registrations -> <your app>
Select Settings -> Reply URLs
アプリのURL + '/.auth/login/aad/callback'を追加します。例:https://somesite.azurewebsites.net/.auth/login/aad/callback
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
が認証設定よりも下にあることを確認してください。
_services.AddAuthentication(options =>
{
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddOpenIdConnect(options =>
{
options.Authority = "";
options.ClientId = "";
options.ResponseType = OpenIdConnectResponseType.IdToken;
options.CallbackPath = "";
options.SignedOutRedirectUri = "";
options.TokenValidationParameters.NameClaimType = "name";
})
.AddCookie();
_
AddMvc()
拡張メソッドの前にAddAuthentication()
を追加したため、同じエラーに直面していました。