WSO2隐式流不返回id_token
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSO2隐式流不返回id_token相关的知识,希望对你有一定的参考价值。
我正在尝试使用WSO2中的OpenID Connect服务提供程序从自定义Web应用程序验证用户。我正在关注this article的答案,并添加了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);
网址出现: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
现在这确实有效,并返回一个access_token:https://{my_domain}/{my_app}/Callback.aspx#token_type=Bearer&expires_in=970&access_token=067e3366217798986912326a86abd92f
我的问题是我不知道用户是谁。此外,这个WSO2 article显示如果我传递一个response_type:id_token,我应该能够解码响应,并通过使用“sub”属性找出用户是谁,但我没有得到id_token响应。上面的代码创建了一个带有response_type令牌的url。只需更改response_type就会出错。如何在WSO2中使用隐式流并获取id_token响应?
我按照这个article配置了WSO2。我目前检查了Implicit和Client Credential。
确保将这些作为查询参数。
response_type=id_token
client_id=xxxxx
redirect_uri=http://xx.com/xx/x
nonce=xxxx
scope=openid
确保传递用于Idp(WSO2)的范围,以了解它需要返回的数据。确保你的scop scope = openid。
以上是关于WSO2隐式流不返回id_token的主要内容,如果未能解决你的问题,请参考以下文章