AADSTS70005:响应类型“id_token”未启用该应用程序。

106

AADSTS70005:响应类型“id_token”未启用该应用程序

即使在清单中设置了"oauth2AllowImplicitFlow": true,我仍然遇到上述错误。


你可以尝试手动将 "groupMembershipClaims": null 添加到清单中。 - Joy Wang
有时候缓存会影响到一些东西,你试过再次尝试吗? - juunas
你对这个案例有任何进展吗? - Wayne Yang
你能否添加更多信息,例如 - 你的应用程序是哪个平台的,如果你的应用程序是在apps.dev.microsoft.com创建的“收敛应用程序”还是在portal.azure.com创建的Azure AD应用程序。此外,如果您提供一些关于如何请求令牌的源代码将会很有帮助。当您的应用程序没有RedirectURL时,我曾经看到过出现这种错误的情况。 - Andre Teixeira
我遇到了“AADSTS700051:应用程序未启用'response_type'为'token'的错误。” - roney
显示剩余2条评论
8个回答

163

尝试以下步骤: 1. 进入 portal.azure.com 网站 2. 选择你的目录,进入 Azure AD 3. 选择应用注册 (预览版) 4. 选择你要进行身份验证的应用程序(你应该已经注册了它) 5. 进入身份验证选项卡 6. 在高级设置部分勾选 "ID tokens"(见附图底部)

enter image description here

这对我有用


1
我们能否使用这种技术授权 Azure 函数? - reverse
2
在错误消失之前,我还必须勾选“访问令牌”框。 - AndyD273
1
请注意界面已更改。此设置不再位于“高级设置”下,复选框现在位于“隐式授权和混合流”下。 - RamenCoder

30

我遇到了错误:

AADSTS700054:响应类型“id_token”未启用该应用程序。

解决方法是设置:

{
  "oauth2AllowIdTokenImplicitFlow" : true
}

在Azure活动目录中,应用程序清单


如果您正在使用 Azure 门户中的“新体验”,则需要在“清单”区域设置此标志。 - Ralph Willgoss

20

请确保您已选择了ID令牌(用于隐式和混合流)。您可以在Azure AD中的应用程序中从身份验证选项卡中进行此操作。请参见下面的截图:

或者前往清单选项卡,并将oauth2AllowIdTokenImplicitFlow设置为true。请参见下面的截图: enter image description here


将oauth2AllowIdTokenImplicitFlow设置为true后,我收到了错误消息:“AADSTS500113:未为应用程序注册回复地址。” - Manveer Singh

8

错误: OpenIdConnectMessage.Error 不为 null,表示出现了错误。错误信息:'unsupported_response_type'。

这个错误的原因是Azure AD没有返回任何访问令牌或身份验证令牌。需要启用Azure AD中的复选框以返回令牌,在完成身份验证后。

如何解决:前往Azure AD => 应用程序注册 => 点击“身份验证”选项卡 => 启用访问令牌和身份验证令牌的复选框。


2

确保您的清单文件中没有两个 oauth2AllowImplicitFlow 关键字 - 在我的情况下,我已经添加了该关键字,但该关键字已经存在,且其值已设置为 false。希望这解决了问题 :)


我们能否使用这种技术授权 Azure 函数? - reverse

1

正如你们中的许多人所说,如果你确实需要ID令牌,那么你需要启用ID令牌(用于隐式和混合流)

'AADSTS700054:响应类型“id_token”未启用该应用程序。

但是,如果您使用授权代码流,则实际上不需要它。Microsoft OpenID Connect身份验证(Microsoft.AspNetCore.Authentication.OpenIdConnect)将id_token作为默认的ResponseType用于OpenIdConnectJwtSecurityTokenHandler

enter image description here

使用AddOpenIdConnect,您可以将ResponseType设置为OpenIdConnectResponseType.Code或简单地设置为"code",然后您根本不需要id_token
Azure Ad和IdentityServer的工作示例:
services.AddAuthentication()
      .AddOpenIdConnect("aad", "Azure AD", options =>
            {
                options.ClientSecret = "<ClientSecret>";
                options.ResponseType = OpenIdConnectResponseType.Code;
                options.ClientId ="<ClientId>";
                options.Authority = "https://login.microsoftonline.com/<TenantId>/";
                options.CallbackPath = "/signin-oidc";
            })
        .AddIdentityServerJwt();

http://docs.identityserver.io/en/latest/topics/signin_external_providers.html


1

我遇到了类似的问题,当我访问ActiveDirectory -> 应用程序注册页面时,它没有显示新的用户界面。

而且它不允许我在元数据中设置标志,但我找到了解决方法。

https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/Authentication/quickStartType//sourceType/Microsoft_AAD_IAM/appId/9bab1d75-34b8-475b-abfe-5a62c6f01234/objectId/a4b459c1-7753-400c-8f8f-46fb5451234/isMSAApp//defaultBlade/Overview/servicePrincipalCreated/true

首先登录到您的实例,修改上面的URL以粘贴您的应用程序的对象ID和应用程序ID。

然后它应该显示@Mosè Bottacini发布的屏幕。


0

我偶然发现了这篇文章,因为我在我的Azure应用服务中遇到了完全相同的问题。我通过使用错误消息中的确切重定向URL并将其添加到应用程序注册的URL列表中来解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接