WSO2内のOpenID Connectサービスプロバイダを使用してカスタムWebアプリケーションからユーザーを認証しようとしています。私はthis articleの答えに続き、Thinketecture.IdentityModel.ClientというNugetパッケージを追加しました。私のコードは、リンク先の記事に非常によく似ていますWSO2暗黙のフローが返されないid_token
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
今は、この作業を行い、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レスポンスを取得していないことを示しています。上記のコードでは、代わりにtokenのresponse_typeを持つurlを作成しています。単にresponse_typeを変更するとエラーになります。 WSO2で暗黙のフローを使用してid_token応答を取得するにはどうすればよいですか?
これは、WSO2の設定のためにこれに続いてarticleでした。私は現在ImplicitとClient Credentialをチェックしています。
CreateImplicitFlowUrlはresponse_typeのパラメータを取りません。私はまたこれを試みた: 'var url = serviceProviderAuthorizeUrl +"?response_type = "+ HttpUtility.UrlEncode +"&client_id "+ HttpUtility.UrlEncode(clientId)+ "&redirect_uri = "+ HttpUtility.UrlEncode(redirectUrl)+" &nonce = "+ HttpUtility.UrlEncode(Guid.NewGuid()。ToString())+"&scope = "+ HttpUtility.UrlEncode(scope); Response.Redirect(url); 'とresponse_typeとしてid_tokenが渡され、WSO2からエラーが発生しました。私はそれが簡単だと思うが、そうではない。 –