WSO2隐式流未返回id_令牌
我正在尝试使用WSO2中的OpenID Connect服务提供商对来自自定义web应用的用户进行身份验证。我正在跟踪关于的答案,并添加了Nuget包Thinktecture.IdentityModel.Client。我的代码与链接文章非常相似: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(
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收到一个错误。我希望事情能这么简单,但事实并非如此。