AADSTS70005:未启用响应类型“id_token” 应用
即使在清单中设置
"oauth2AllowImplicitFlow": true
后,我仍然遇到上述错误。
我收到错误:
AADSTS700054:未为应用程序启用response_type“id_token”。
分辨率正在设置:
{
"oauth2AllowIdTokenImplicitFlow" : true
}
在 Azure Active Directory 中 应用程序清单
Error : OpenIdConnectMessage.Error 不为 null,表示发生错误。错误:“不支持的响应类型”。 发生此错误的原因是 Azure AD 未返回任何访问令牌或 ID 令牌。 身份验证完成后,Azure AD 需要启用复选框以返回令牌。
如何解决:转到Azure AD =>应用程序注册=>单击选项卡身份验证=> 启用访问令牌和 ID 令牌复选框。
确保清单中没有密钥
oauth2AllowImplicitFlow
的两个实例 - 在我的例子中,我已添加密钥,但它已经存在,且值设置为 false。希望这可以解决问题:)
正如很多人所说,如果您确实需要 ID 令牌,则需要启用
ID tokens (used for implicit and hybrid flows)
。
'AADSTS700054:未启用响应类型'id_token' 申请。
但是,如果您使用
Authorization Code Flow
,您实际上并不需要它。 Microsoft OpenID Connect 身份验证 (Microsoft.AspNetCore.Authentication.OpenIdConnect
) 使用 id_token
作为 ResponseType
和 OpenIdConnect
的默认值 JwtSecurityTokenHandler
。
使用
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
我遇到了类似的问题,当访问 ActiveDirectory -> 应用程序注册页面时,它没有显示新的 UI。
它也不允许我在元数据中设置标志,找到了解决方法。
首先登录您的实例,修改上述 URL 以粘贴您应用程序的对象 id 和应用程序 id。
然后它应该显示@Mosè Bottacini 发布的屏幕。
我偶然发现了这篇文章,因为我的 Azure 应用服务也遇到了完全相同的问题。我通过使用错误消息中的确切重定向 URL 并将其添加到应用程序注册中的 URL 列表来修复此问题。