未设置OAuth2Client clientId和clientSecret

本文关键字:clientSecret clientId OAuth2Client 设置 | 更新日期: 2023-09-27 18:21:22

我已经设置了一个可工作的IdentityServer 3,除了我试图添加的刷新令牌外,一切都很好。

我避免报告整个代码,因为我认为我发现了错误

var tokenClient = new OAuth2Client(new Uri("https://myServer/myIdentityServer/connect/token"), "clientId", "secretWord");
var response = await tokenClient.RequestAuthorizationCodeAsync(n.Code, n.RedirectUri);

我在第二行中得到一个错误,在调试中我发现tokenClient变量包含一些设置为null但不应该是的私有属性

_地址:{https://myServer/myIdentityServer/connect/token}

_authenticationStyle:无

_客户端:{System.Net.Http.HttpClient}

_clientId:空

_clientSecret:空

为什么_clientId_clientSecret设置为null?我直接把这两个参数给了OAuth2Client构造函数,我是不是做错了什么?


更新:根据Scott Brady的建议,我也尝试了IdentityModel中的TokenClient类。没有任何更改,response变量报告HttpError"Internal Server Error"。

从IdentityServer方面来看,一切似乎都很好,请求第一部分的日志是好的

2015-11-10 14:31:36.737 +01:00 [Information] Start authorize request
2015-11-10 14:31:36.737 +01:00 [Information] Start authorize request protocol validation
2015-11-10 14:31:36.738 +01:00 [Information] "Authorize request validation success"
 "{
  '"ClientId'": '"hybridclient'",
  '"ClientName'": '"Hybrid Client Example'",
  '"RedirectUri'": '"https://rbmidde02.xxx.com/miIdentityClient/'",
  '"AllowedRedirectUris'": [
    '"https://rbmidde02.xxx.com/miIdentityClient/'"
  ],
  '"SubjectId'": '"1'",
  '"ResponseType'": '"code id_token token'",
  '"ResponseMode'": '"form_post'",
  '"Flow'": '"Hybrid'",
  '"RequestedScopes'": '"openid profile email roles offline_access'",
  '"State'": '"OpenIdConnect.AuthenticationProperties=joIq4Na_pIjM1dGht8LPOhXbzPjnHnlFgOPll_oxPbAH9GIuFQ5SKHUZWgRFUih_OFGTWxmi8I_Fu7pS_t_V_R2cNDa7l6r0eQ4RfgTosHHhmdpfm-0YuAO-N5q_16WyqesLPckv6HrB7ruZ64m8Vu4mpA80RYjc46xalOdzkyrKQLlmt_AwlWGA6XY-B2P3WpVvcP_tZQywdMEFS9uF-ucK07UOeUwO6nV8QXGJ-g31WhmM4D1I83O3EaYnoB2Xf6bOAMJuMySTywwQQ-bdd-tiOoRsusqSuc-JeeOiZvY'",
  '"Nonce'": '"635827590967269474.ZmM0NjgwYzMtZTYwMC00MmI5LTk5YzUtZjdhMmQ4MTkyZTUwNDBjZTkwYzEtYTBlNy00MDM2LTk4ZjUtMWEzYmZjZmZmMTc2'",
  '"SessionId'": '"7eb1b6356ef9ecb843dde1afdb239d9e'",
  '"Raw'": {
    '"client_id'": '"hybridclient'",
    '"redirect_uri'": '"https://rbmidde02.xxx.com/miIdentityClient/'",
    '"response_mode'": '"form_post'",
    '"response_type'": '"code id_token token'",
    '"scope'": '"openid profile email roles offline_access'",
    '"state'": '"OpenIdConnect.AuthenticationProperties=joIq4Na_pIjM1dGht8LPOhXbzPjnHnlFgOPll_oxPbAH9GIuFQ5SKHUZWgRFUih_OFGTWxmi8I_Fu7pS_t_V_R2cNDa7l6r0eQ4RfgTosHHhmdpfm-0YuAO-N5q_16WyqesLPckv6HrB7ruZ64m8Vu4mpA80RYjc46xalOdzkyrKQLlmt_AwlWGA6XY-B2P3WpVvcP_tZQywdMEFS9uF-ucK07UOeUwO6nV8QXGJ-g31WhmM4D1I83O3EaYnoB2Xf6bOAMJuMySTywwQQ-bdd-tiOoRsusqSuc-JeeOiZvY'",
    '"nonce'": '"635827590967269474.ZmM0NjgwYzMtZTYwMC00MmI5LTk5YzUtZjdhMmQ4MTkyZTUwNDBjZTkwYzEtYTBlNy00MDM2LTk4ZjUtMWEzYmZjZmZmMTc2'"
  }
}"
2015-11-10 14:31:36.738 +01:00 [Information] Creating Hybrid Flow response.
2015-11-10 14:31:36.738 +01:00 [Information] Creating Implicit Flow response.
2015-11-10 14:31:36.749 +01:00 [Information] Getting claims for identity token for subject: 1
2015-11-10 14:31:36.757 +01:00 [Information] End authorize request
2015-11-10 14:31:36.757 +01:00 [Information] Posting to https://rbmidde02.xxx.com/miIdentityClient/

但第二部分似乎也可以

2015-11-10 14:31:36.905 +01:00 [Information] Start userinfo request
2015-11-10 14:31:36.905 +01:00 [Information] Token found: AuthorizationHeader
2015-11-10 14:31:36.905 +01:00 [Information] Start access token validation
2015-11-10 14:31:36.906 +01:00 [Information] "Token validation success"
"{
  '"ValidateLifetime'": true,
  '"AccessTokenType'": '"Jwt'",
  '"ExpectedScope'": '"openid'",
  '"Claims'": {
    '"client_id'": '"hybridclient'",
    '"scope'": [
      '"openid'",
      '"profile'",
      '"email'",
      '"roles'",
      '"offline_access'"
    ],
    '"sub'": '"1'",
    '"amr'": '"password'",
    '"auth_time'": '"1447153048'",
    '"idp'": '"idsrv'",
    '"iss'": '"https://rbmidde02.xxx.com/miIdentityServer'",
    '"aud'": '"https://rbmidde02.xxx.com/miIdentityServer/resources'",
    '"exp'": '"1447165896'",
    '"nbf'": '"1447162296'"
  }
}"
2015-11-10 14:31:36.907 +01:00 [Information] Creating userinfo response
2015-11-10 14:31:36.907 +01:00 [Information] Scopes in access token: "openid profile email roles offline_access"
2015-11-10 14:31:36.907 +01:00 [Information] Requested claim types: "sub name family_name given_name middle_name nickname preferred_username profile picture website gender birthdate zoneinfo locale updated_at email email_verified role"
2015-11-10 14:31:36.907 +01:00 [Information] Profile service returned to the following claim types: "sub given_name family_name email role role preferred_username"
2015-11-10 14:31:36.907 +01:00 [Information] End userinfo request
2015-11-10 14:31:36.907 +01:00 [Information] Returning userinfo response.

IdentityServer方面的响应还可以,我不明白为什么客户端出现内部服务器错误。

未设置OAuth2Client clientId和clientSecret

我对OAuth2Client类没有太多经验。然而,我知道IdentityModel中的TokenClient类可以与Identity Server一起使用,并且使用与上面几乎相同的代码。

我建议您尝试一下,因为它是由Identity Server的同一团队制作的。

有关GitHub存储库的用法示例,请参阅此处。