Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net oauth中不支持的响应类型_.net_Angular_Azure_Oauth_Azure Active Directory - Fatal编程技术网

.net oauth中不支持的响应类型

.net oauth中不支持的响应类型,.net,angular,azure,oauth,azure-active-directory,.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-dc75131c4f

嗨,我正在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({});
    }

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

因为您正在使用OAuth2隐式授权流对您的应用程序进行身份验证,所以您需要将响应类型设置为
id\u-token
token
id\u-token


您还需要在AAD应用程序的清单文件中将“OAuth2AllowImplictFlow”值设置为
true

根据上的MSDN文档,您需要在Azure门户中的应用程序注册清单中将
OAuth2AllowImplictFlow
设置为
true

问题 在AAD中创建应用程序注册时,需要手动编辑应用程序清单,并将
oauth2AllowImplicitFlow
属性的值设置为
true
。否则,AAD登录流将无法工作

错误“AADSTS70005:应用程序不支持响应类型“令牌…”

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

  • 使用租户中的管理员帐户登录到portal.azure.com

  • 导航到左侧栏中的Azure Active Directory应用注册您的应用

  • 单击描述应用程序的窗格顶部的清单

  • 将属性
    oauth2AllowImplicitFlow
    的值更改为
    true
    。如果属性不存在,请添加它并将其值设置为
    true

  • 单击“保存”保存修改的清单


  • 我爱你。❤ 我花了半天的时间拔头发。Microsoft提供了关于如何连接到Dynamics API的教程,它告诉您如何创建应用程序注册、创建邮递员请求、将授权类型设置为请求中的隐式,我在microsoft-adal-angular6中使用Angular 8,我必须将
    oauth2AllowIdTokenImplicitFlow
    设置为true,而不是您只需选中以下框:身份验证>访问令牌
    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