久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

      <tfoot id='IP0Qd'></tfoot>
      <i id='IP0Qd'><tr id='IP0Qd'><dt id='IP0Qd'><q id='IP0Qd'><span id='IP0Qd'><b id='IP0Qd'><form id='IP0Qd'><ins id='IP0Qd'></ins><ul id='IP0Qd'></ul><sub id='IP0Qd'></sub></form><legend id='IP0Qd'></legend><bdo id='IP0Qd'><pre id='IP0Qd'><center id='IP0Qd'></center></pre></bdo></b><th id='IP0Qd'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='IP0Qd'><tfoot id='IP0Qd'></tfoot><dl id='IP0Qd'><fieldset id='IP0Qd'></fieldset></dl></div>
      1. <small id='IP0Qd'></small><noframes id='IP0Qd'>

          <bdo id='IP0Qd'></bdo><ul id='IP0Qd'></ul>

        <legend id='IP0Qd'><style id='IP0Qd'><dir id='IP0Qd'><q id='IP0Qd'></q></dir></style></legend>
      2. OAuth Bearer 令牌身份驗(yàn)證未通過簽名驗(yàn)證

        OAuth Bearer token Authentication is not passing signature validation(OAuth Bearer 令牌身份驗(yàn)證未通過簽名驗(yàn)證)

            • <bdo id='jGkTm'></bdo><ul id='jGkTm'></ul>
              • <small id='jGkTm'></small><noframes id='jGkTm'>

              • <tfoot id='jGkTm'></tfoot>

                <i id='jGkTm'><tr id='jGkTm'><dt id='jGkTm'><q id='jGkTm'><span id='jGkTm'><b id='jGkTm'><form id='jGkTm'><ins id='jGkTm'></ins><ul id='jGkTm'></ul><sub id='jGkTm'></sub></form><legend id='jGkTm'></legend><bdo id='jGkTm'><pre id='jGkTm'><center id='jGkTm'></center></pre></bdo></b><th id='jGkTm'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='jGkTm'><tfoot id='jGkTm'></tfoot><dl id='jGkTm'><fieldset id='jGkTm'></fieldset></dl></div>
                  <tbody id='jGkTm'></tbody>
                  <legend id='jGkTm'><style id='jGkTm'><dir id='jGkTm'><q id='jGkTm'></q></dir></style></legend>
                1. 本文介紹了OAuth Bearer 令牌身份驗(yàn)證未通過簽名驗(yàn)證的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                  問題描述

                  限時(shí)送ChatGPT賬號(hào)..

                  我在令牌使用者上收到以下錯(cuò)誤.任何解決此問題的幫助將不勝感激.謝謝.

                  I get the following error on the token consumer. Any help resolving this will be most appreciated. Thanks.

                  IDX10503:簽名驗(yàn)證失敗.

                  "IDX10503: Signature validation failed.

                  嘗試的鍵:'System.IdentityModel.Tokens.SymmetricSecurityKey'.例外捕獲:'System.InvalidOperationException:IDX10636:SignatureProviderFactory.CreateForVerifying 為鍵返回 null:'System.IdentityModel.Tokens.SymmetricSecurityKey',簽名算法:'http://www.w3.org/2001/04/xmldsig-更多#hmac-sha256'.在Microsoft.IdentityModel.Logging.LogHelper.Throw(字符串消息,類型exceptionType,EventLevel logLevel,異常 innerException)在System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(字節(jié)[]encodedBytes、Byte[] 簽名、SecurityKey 密鑰、字符串算法)在System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(字符串令牌,令牌驗(yàn)證參數(shù)驗(yàn)證參數(shù))'.令牌:'令牌信息在這里'"

                  Keys tried: 'System.IdentityModel.Tokens.SymmetricSecurityKey '. Exceptions caught: 'System.InvalidOperationException: IDX10636: SignatureProviderFactory.CreateForVerifying returned null for key: 'System.IdentityModel.Tokens.SymmetricSecurityKey', signatureAlgorithm: 'http://www.w3.org/2001/04/xmldsig-more#hmac-sha256'. at Microsoft.IdentityModel.Logging.LogHelper.Throw(String message, Type exceptionType, EventLevel logLevel, Exception innerException) at System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(Byte[] encodedBytes, Byte[] signature, SecurityKey key, String algorithm) at System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters) '. token: 'token info was here'"

                  OAuth 服務(wù)器上的令牌生成代碼

                   using (var ctlr = new EntityController())
                          {
                              var authRepo = ctlr.GetAuthModelRepository();
                  
                              string clientId;
                  
                              ticket.Properties.Dictionary.TryGetValue(WebConstants.OwinContextProps.OAuthClientIdPropertyKey, out clientId);
                  
                              if (string.IsNullOrWhiteSpace(clientId))
                              {
                                  throw new InvalidOperationException("AuthenticationTicket.Properties does not include audience");
                              }
                  
                  
                              //audience record
                              var client = authRepo.FindAuthClientByOAuthClientID(clientId);
                  
                              var issued = ticket.Properties.IssuedUtc;
                              var expires = ticket.Properties.ExpiresUtc;
                  
                  
                              var hmac = new HMACSHA256(Convert.FromBase64String(client.Secret));
                              var signingCredentials = new SigningCredentials(
                                  new InMemorySymmetricSecurityKey(hmac.Key),
                                  Algorithms.HmacSha256Signature, Algorithms.Sha256Digest);
                  
                              TokenValidationParameters validationParams =
                                  new TokenValidationParameters()
                                  {
                                      ValidAudience = clientId,
                                      ValidIssuer = _issuer,
                                      ValidateLifetime = true,
                                      ValidateAudience = true,
                                      ValidateIssuer = true,
                                      RequireSignedTokens = true,
                                      RequireExpirationTime = true,
                                      ValidateIssuerSigningKey = true,
                                      IssuerSigningToken = new BinarySecretSecurityToken(hmac.Key)
                                  };
                  
                              var jwtHandler = new JwtSecurityTokenHandler();
                  
                              var jwt = new JwtSecurityToken(_issuer, clientId, ticket.Identity.Claims, issued.Value.UtcDateTime, expires.Value.UtcDateTime, signingCredentials);
                  
                              jwtOnTheWire = jwtHandler.WriteToken(jwt);
                  
                              SecurityToken validatedToken = null;
                              jwtHandler.ValidateToken(jwtOnTheWire, validationParams,out validatedToken);
                              if (validatedToken == null)
                                  return "token_validation_failed";
                  
                          }
                          return jwtOnTheWire;
                  

                  Owin Startup.cs 中的令牌消耗驗(yàn)證 ASP.Net 5 vNext 站點(diǎn)

                  public void ConfigureServices(IServiceCollection services)

                  services.ConfigureOAuthBearerAuthentication(config =>
                          {
                  
                              //oauth validation
                              var clientSecret = "not the real secret";
                  
                              var hmac = new HMACSHA256(Convert.FromBase64String(clientSecret));
                              var signingCredentials = new SigningCredentials(
                                  new SymmetricSecurityKey(hmac.Key), Algorithms.HmacSha256Signature, Algorithms.Sha256Digest);
                  
                              config.TokenValidationParameters.ValidAudience = "myappname";
                              config.TokenValidationParameters.ValidIssuer = "mydomain.com";
                              config.TokenValidationParameters.RequireSignedTokens = true;
                              config.TokenValidationParameters.RequireExpirationTime = true;
                              config.TokenValidationParameters.ValidateLifetime = true;
                              config.TokenValidationParameters.ValidateIssuerSigningKey = true;
                              config.TokenValidationParameters.ValidateSignature = true;
                              config.TokenValidationParameters.ValidateAudience = true;
                              config.TokenValidationParameters.IssuerSigningKey = signingCredentials.SigningKey;
                          });
                  

                  public void Configure(IApplicationBuilder 應(yīng)用程序)

                  app.UseOAuthBearerAuthentication(config =>
                              {
                  
                                  config.AuthenticationScheme = "Bearer";
                                  config.AutomaticAuthentication = true;
                              });
                  

                  推薦答案

                  我能夠?qū)⒆约旱暮灻?yàn)證添加到 TokenValidationParameters 然后我將 JWT 的傳入 Raw 簽名與編譯的簽名進(jìn)行比較在此代碼中,如果它匹配簽名是有效的.

                  I was able to add my own signature validation to the TokenValidationParameters Then I compared the incoming Raw signature of the JWT to the compiled signature in this code and if it matches the signature is valid.

                  為什么使用內(nèi)置簽名驗(yàn)證沒有發(fā)生這種情況我無(wú)法理解,也許這可能是 vNext Identity 令牌框架 beta 6 中的一個(gè)錯(cuò)誤.

                  Why this didn't happen using the builtin signature validation is beyond me, maybe it's a possible bug in beta 6 of the vNext Identity token framework.

                  public void ConfigureServices(IServiceCollection services)

                  config.TokenValidationParameters.SignatureValidator =
                                  delegate (string token, TokenValidationParameters parameters)
                                  {
                                      var clientSecret = "not the real secret";
                  
                                      var jwt = new JwtSecurityToken(token);
                  
                                      var hmac = new HMACSHA256(Convert.FromBase64String(clientSecret));
                  
                                      var signingCredentials = new SigningCredentials(
                                         new SymmetricSecurityKey(hmac.Key), SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.Sha256Digest);
                  
                                      var signKey = signingCredentials.SigningKey as SymmetricSecurityKey;
                  
                  
                                      var encodedData = jwt.EncodedHeader + "." + jwt.EncodedPayload;
                                      var compiledSignature = Encode(encodedData, signKey.Key);
                  
                                      //Validate the incoming jwt signature against the header and payload of the token
                                      if (compiledSignature != jwt.RawSignature)
                                      {
                                          throw new Exception("Token signature validation failed.");
                                      }
                  
                                      return jwt;
                                  };
                  

                  編碼輔助方法

                   public string Encode(string input, byte[] key)
                          {
                              HMACSHA256 myhmacsha = new HMACSHA256(key);
                              byte[] byteArray = Encoding.UTF8.GetBytes(input);
                              MemoryStream stream = new MemoryStream(byteArray);
                              byte[] hashValue = myhmacsha.ComputeHash(stream);
                              return Base64UrlEncoder.Encode(hashValue);
                          }
                  

                  這篇關(guān)于OAuth Bearer 令牌身份驗(yàn)證未通過簽名驗(yàn)證的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  What are good algorithms for vehicle license plate detection?(車牌檢測(cè)有哪些好的算法?)
                  onClick event for Image in Unity(Unity中圖像的onClick事件)
                  Running Total C#(運(yùn)行總 C#)
                  Deleting a directory when clicked on a hyperlink with JAvascript.ASP.NET C#(單擊帶有 JAvascript.ASP.NET C# 的超鏈接時(shí)刪除目錄)
                  asp.net listview highlight row on click(asp.net listview 在單擊時(shí)突出顯示行)
                  Calling A Button OnClick from a function(從函數(shù)調(diào)用按鈕 OnClick)

                    <tbody id='muemm'></tbody>
                2. <legend id='muemm'><style id='muemm'><dir id='muemm'><q id='muemm'></q></dir></style></legend>
                  <i id='muemm'><tr id='muemm'><dt id='muemm'><q id='muemm'><span id='muemm'><b id='muemm'><form id='muemm'><ins id='muemm'></ins><ul id='muemm'></ul><sub id='muemm'></sub></form><legend id='muemm'></legend><bdo id='muemm'><pre id='muemm'><center id='muemm'></center></pre></bdo></b><th id='muemm'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='muemm'><tfoot id='muemm'></tfoot><dl id='muemm'><fieldset id='muemm'></fieldset></dl></div>
                  <tfoot id='muemm'></tfoot>
                  • <bdo id='muemm'></bdo><ul id='muemm'></ul>
                    • <small id='muemm'></small><noframes id='muemm'>

                          1. 主站蜘蛛池模板: 性高湖久久久久久久久 | 久久精品视频免费看 | 成人免费观看视频 | 奇米四色在线观看 | 欧美久久久久久久久 | 国产精品亚洲一区二区三区在线 | 亚洲国产成人av | 国产精品久久久久久久久免费桃花 | 男女羞羞在线观看 | 国产色黄 | 欧美 日韩 中文 | 日韩精品国产精品 | 伊人久久大香线 | 久久性av | 日韩电影免费在线观看中文字幕 | 亚洲人成在线播放 | 亚洲久久久 | 免费毛片网站 | 免费天天干 | 亚洲精品视频在线看 | 国产高清视频在线观看 | 欧美一区二区三区的 | 国产精品欧美一区二区三区 | 午夜视频精品 | 99精品视频在线 | 国产美女精品 | 久久久中文 | 精品久久国产 | 久久久久久国产精品免费免费狐狸 | 久久伊人青青草 | 国内精品视频在线观看 | 伊人春色成人 | 精品欧美一区二区三区久久久 | 成人在线一区二区三区 | 国产精品美女久久久久久免费 | 伊人春色在线观看 | 天堂一区在线观看 | 日韩高清一区 | 亚洲国产精品一区二区第一页 | 一区二区三区回区在观看免费视频 | 伊人久久免费视频 |