不尝试使用/ Common终结点,但Azure AD认为我在

时间:2019-09-26 20:03:35

标签: asp.net-core .net-core azure-active-directory

我正在使用组织的Azure AD对公司Web应用程序上的用户进行身份验证。我打算将其作为单租户应用程序。当我运行它时,系统会提示我按照预期使用组织的凭据登录。但是,在提交我的凭据时,出现此错误:

  

对不起,我们无法登录。

     

AADSTS50194:应用程序' appId '( appname )未配置为多租户应用程序。在'10 / 15/2018'之后创建的此类应用程序不支持使用/ common端点。使用特定于租户的端点或将应用程序配置为多租户。

问题是,我不想使用/ common端点。这是我的appsettings.json的相关内容:

services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
    {
        options.Authority = options.Authority + "/v2.0/";
        options.TokenValidationParameters.ValidateIssuer = false;
    });

这是Azure门户中的应用程序设置(主页> AppRegistrations> App> PlatformConfigurations> Authentication): mint

我的startup.cs(我假设设置了相关的端点)直接来自Microsoft提供的示例:

false

我还将踢球的true设置为{{1}},但结果相同。

我在做什么错,在这里?为什么Azure AD继续相信我要使用/ common终结点?


编辑:当我继续搜索时,我碰巧遇到了@ jack-jia的答案:The app's Supported Account Types setting with 'Accounts in this organizational directory only' selected.

我还没有完全解决我的问题,但是他们的回答提供了一些有希望的线索。

1 个答案:

答案 0 :(得分:1)

由于您已将其配置为Azure门户上的单个租户应用程序,因此由于错误的授权终结点而必须发生此问题。请再次检查 options.Authority 的值。如果将其标识为单个租户,则可以使用Fiddler捕获请求,该请求类似于

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=678910 

检查端点是否正确。