WSO2隐式流未返回id_令牌

WSO2隐式流未返回id_令牌,wso2,wso2is,openid-connect,Wso2,Wso2is,Openid Connect,我正在尝试使用WSO2中的OpenID Connect服务提供商对来自自定义web应用的用户进行身份验证。我正在跟踪关于的答案,并添加了Nuget包Thinktecture.IdentityModel.Client。我的代码与链接文章非常相似: var client = new OAuth2Client(new Uri(serviceProviderAuthorizeUrl)); var url = client.CreateImplicitFlowUrl(

我正在尝试使用WSO2中的OpenID Connect服务提供商对来自自定义web应用的用户进行身份验证。我正在跟踪关于的答案,并添加了Nuget包Thinktecture.IdentityModel.Client。我的代码与链接文章非常相似:

 var client = new OAuth2Client(new Uri(serviceProviderAuthorizeUrl));

        var url = client.CreateImplicitFlowUrl(
            clientId,
            redirectUri: redirectUrl,
            scope: scope,
            nonce: Guid.NewGuid().ToString());

        Response.Redirect(url);
url是:
https://{wso2_url}/oauth2/authorize?client_id={my_client_id}&response_type=token&scope=openid&redirect_uri=https%3A%2F%2F{mydomain}%2F{my_app}%2FCallback.aspx&nonce=f0db4eac-18df-46f6-92f1-c28ba621596d

现在它可以工作并返回一个访问令牌:
https://{my_domain}/{my_app}/Callback.aspx#token_type=Bearer&expires_in=970&access_token=067e3662177986912326a86abd92f

我的问题是我不知道用户是谁。此外,这表明如果我传递一个response\u type:id\u令牌,我应该能够通过使用“sub”属性来解码响应并找出用户是谁,但我没有得到id\u令牌响应。上面的代码创建了一个带有响应类型令牌的url。简单地更改响应类型会给我一个错误。如何在WSO2中使用隐式流并获得id_令牌响应


我遵循这一点来配置WSO2。我当前已检查隐式和客户端凭据。

请确保将它们作为查询参数

response_type=id_token
client_id=xxxxx
redirect_uri=http://xx.com/xx/x
nonce=xxxx
scope=openid

确保您传递了用于Idp(WSO2)的作用域,以了解它需要返回哪些数据。确保你的scop
scope=openid。

CreateImplicitFlowUrl不接受响应类型的参数。我也试过这样做:
var url=serviceProviderAuthorizeUrl+”?response_type=“+HttpUtility.UrlEncode(responseType)+“&client_id”+HttpUtility.UrlEncode(clientId)+”&redirect_-uri=“+HttpUtility.UrlEncode(redirectUrl)+”nonce=“+HttpUtility.UrlEncode(Guid.NewGuid().ToString())+”&scope=”+HttpUtility.UrlEncode(范围);重定向(url)并将id_令牌作为响应_类型传递,我从WSO2收到一个错误。我希望事情能这么简单,但事实并非如此。