oauth中不支持的响应类型

时间:2018-01-17 09:23:18

标签: .net angular azure oauth azure-active-directory

您好我正在开发Angular 2中的Web应用程序。我在webapi中进行了oauth身份验证。我在前端使用Angular 2。登录时我在下面调用代码。

   private login() {
        this.oauthService.initImplicitFlow();
        this.oauthService.loginUrl = "https://login.microsoftonline.com/d35ba220-6896666-4acc-9899-dc75131c4fba/oauth2/authorize?resource=\"https://graph.windows.net/ \"& response_type=code";
        this.oauthService.redirectUri = "http://localhost:65298";
        this.oauthService.clientId = "<MY_CLIENT_ID>";
        this.oauthService.issuer = "https://login.microsoftonline.com/d35ba220-6749-4acc-578787-dc75131c4fba";
        this.oauthService.oidc = true;
        this.oauthService.setStorage(sessionStorage);
        this.oauthService.tryLogin({});
    }

我收到以下错误。

http://localhost:65298/?error=unsupported_response_type&error_description=AADSTS70005%3a+
The+WS-Federation+sign-in+response+message+contains+an+unsupported+OAuth+parameter+value+in+the+encoded+wctx%3a+%27response_type%27%0d%0aTrace+ID%3a+65dc2592-4ba1-42f6-9f24-eba1c1894900%0d%0aCorrelation+ID%3a+6edaf003-3d26-434b-9b8a-88a267feb350%0d%0aTimestamp%3a+2018-01-17+09%3a09%3a39Z&state=9MnA2eD68aZtOvHSodIjX9IqA1NdSjslrnGaFAlL

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

查看本文如何设置&#34; oauth2AllowImplicitFlow&#34;在Azure门户上的AAD应用程序注册清单文件中。

https://msdn.microsoft.com/en-us/skype/websdk/docs/troubleshooting/auth/aadauth-enableimplicitoauth

<强>摘要

问题

在AAD中创建应用注册时,您需要手动编辑应用程序清单并将oauth2AllowImplicitFlow属性的值设置为true。否则,AAD登录流程将无效 - 错误&#34; AADSTS70005:response_type&#39;令牌&#39;应用程序不支持...&#34;

解决方案

请按照以下步骤解决此问题。

  1. 使用您租户中的管理员帐户登录portal.azure.com。
  2. 导航到左侧栏中的Azure Active Directory&gt;应用注册&gt;你的应用。
  3. 点击描述应用的窗格顶部的清单。
  4. 将属性oauth2AllowImplicitFlow的值更改为true。如果该属性不存在,请添加该属性并将其值设置为true
  5. 点击&#34;保存&#34;保存修改过的清单。
  6. enter image description here

答案 1 :(得分:2)

由于您使用OAuth2隐式授权流程对您的应用进行身份验证,因此您需要将响应类型设置为id_tokentokenid_token token而不是{{1 }}

您还需要设置&#34; oauth2AllowImplicitFlow &#34;在AAD应用程序的清单文件中为code的值。