如何获取和使用适当的signingKey进行Azure移动应用程序身份验证?

Atconway

我正在使用更新的Azure Mobile Apps和身份验证提供程序(例如Google,Microsoft,Twitter和Facebook)来对我的网站的用户进行身份验证。所有这些都运行良好,并且在对我的Azure Mobile App实例进行身份验证后,我获得了一个JWT代表已身份验证用户的有效令牌。我正在转过头这个令牌,并将其作为Authentication Bearer令牌发送到服务器,以验证对另一个ASP.NET CoreAPI服务的请求所有这一切都很好。

问题是JWT使用正确的signing key在服务器上进行验证为了进行测试-如果将JWT令牌带到https://jwt.io/ Azure使用正确的算法粘贴我的秘密密钥,HS256我仍然无法摆脱“无效签名”错误。在同一地区,如果我把我的ASP.NET Core API服务已经app.UseJwtBearerAuthenticationMicrosoft.AspNetCore.Authentication.JwtBearer配置我从端点载明下列同401错误回来:

401未经授权:不记名error =“ invalid_token”,error_description =“签名无效”

Azure的移动应用离线WEBSITE_AUTH_SIGNING_KEY和其他一些网站,我应该使用WEBSITE_AUTH_SIGNING_KEYhttps://开头[Azure的移动站点,这里] .scm.azurewebsites.net / Env.cshtml我得到的价值,并试图从星期日作为IssuerSigningKey服务器上的10种方式使用它,但没有成功。我总是得到同样的错误。

这是我在服务器上的配置。我试图尽可能缩小范围,反编译代码,仅打开最小标志进行验证。我什么都做不了。

private void ConfigureAuth(IApplicationBuilder app)
{
    //Didn't work attempt #1
    //byte[] keyBytes = Encoding.UTF8.GetBytes("975BE84E150ABlahBlahBlahA2527E1AAC80606");
    //if (keyBytes.Length < 64)
    //{
    //    Array.Resize(ref keyBytes, 64);
    //}

    //Didn't work attempt #2
    //byte[] keyBytes = _UTF8Encoder.GetBytes("975BE84E150ABlahBlahBlahA2527E1AAC80606");

    //Didn't work attempt #3
    //var keyAsBytes = Convert.FromBase64String("975BE84E150ABlahBlahBlahA2527E1AAC80606");

    //Didn't work attempt #4
    //var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes("975BE84E150ABlahBlahBlahA2527E1AAC80606"));

    var signingKey = new SymmetricSecurityKey(keyBytes);

    var tokenValidationParameters = new TokenValidationParameters
    {

        RequireExpirationTime = false,
        RequireSignedTokens = false,
        SaveSigninToken = false,
        ValidateActor = false,
        ValidateAudience = false,
        ValidateIssuer = false,
        ValidateLifetime = false,

        //The signing key must match!
        ValidateIssuerSigningKey = true,
        IssuerSigningKey = signingKey,
};

    app.UseJwtBearerAuthentication(new JwtBearerOptions
    {
        AutomaticAuthenticate = true,
        AutomaticChallenge = true,
        TokenValidationParameters = tokenValidationParameters
    });

}

作为上面的注释,我已经尝试过ValidateIssuerSigningKey = false绕过所有这些,但是它没有用。我仍然遇到相同的错误;就像位对结果没有影响。

在这一点上,我感到迷lost和猜测,因为我什至不确定那WEBSITE_AUTH_SIGNING_KEY是否正确signingKey,如果不是,那我什么也不做。

secret / signing keyJWTAzure Mobile App实例生成令牌时,应该使用什么适当的方法?如何将其正确地合并到服务器上的中间件配置中以验证令牌?

阿德里安·霍尔(Adrian Hall)

WEBSITE_AUTH_SIGNING_KEY是适当的环境变量/应用程序设置。但是,它被编码为十六进制字符串。您需要先对其解码,然后再使用。在Node SDK中,执行此操作的代码如下:

function hexStringToBuffer(hexString) {
    var bytes = [];
    for (var i = 0; i < hexString.length; i += 2)
        bytes.push(parseInt(hexString.substr(i, 2), 16));
    return new Buffer(bytes);
}

您只需要将其转换为C#。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Azure移动应用程序和Xamarin表单:在后台使用Facebook进行身份验证

来自分类Dev

使用Azure移动应用程序进行自定义身份验证

来自分类Dev

如何使用oidc和Azure应用程序配置kubernetes以仅允许使用指定的安全组进行身份验证

来自分类Dev

Azure移动应用程序中的应用程序身份验证。如何?

来自分类Dev

Azure移动应用程序身份验证和Azure AAD B2C

来自分类Dev

Azure移动应用程序身份验证和Azure AAD B2C

来自分类Dev

使用来自移动应用程序的令牌进行剩余API身份验证

来自分类Dev

通过移动应用程序使用Moodle进行身份验证

来自分类Dev

如何在使用 auth0 进行身份验证的 React 应用程序中获取用户信息

来自分类Dev

如何使用多租户ASP.NET应用程序通过Azure Active Directory进行身份验证?

来自分类Dev

使用OAuth对EWS应用程序进行身份验证

来自分类Dev

使用 Ionic 应用程序进行 API 身份验证

来自分类Dev

用户通过Google Web应用程序进行身份验证后,获取并使用访问令牌

来自分类Dev

针对Web应用程序和移动应用程序的REST API身份验证

来自分类Dev

Web 应用程序、Web API 和移动应用程序之间的身份验证

来自分类Dev

如何在本机应用程序(Android / iOS)中对用户进行身份验证和记住?

来自分类Dev

对单个操作而非整个应用程序使用Windows身份验证进行身份验证

来自分类Dev

使用用户名和密码从WPF应用程序进行GitHub身份验证

来自分类Dev

使用keycloak和openid_client对flutter应用程序进行身份验证

来自分类Dev

如何在 OWIN 应用程序中使用 cookie 身份验证和 WsFederation 身份验证

来自分类Dev

如何使用密钥对连接的应用程序进行身份验证?Django,Python

来自分类Dev

Github:如何使用SecurID桌面应用程序进行两因素身份验证?

来自分类Dev

如何使用Google Cloud Storage对Java应用程序进行身份验证?

来自分类Dev

使用MobileFirst在移动应用程序中使用LDAP服务器对用户进行身份验证

来自分类Dev

如何在Azure逻辑应用程序中使用OAuth 2.0身份验证?

来自分类Dev

使用LinkedIn的iOS 9 SDK通过Webview而不是LinkedIn的移动应用程序进行身份验证

来自分类Dev

如何使用 Selenium Webdriver 和 C# 处理 Chrome 应用程序身份验证警报

来自分类Dev

如何使用 Facebook 身份验证和后端服务器实现 Android 应用程序

来自分类Dev

在移动应用程序中进行帐户注册/注册/身份验证的最佳做法

Related 相关文章

  1. 1

    Azure移动应用程序和Xamarin表单:在后台使用Facebook进行身份验证

  2. 2

    使用Azure移动应用程序进行自定义身份验证

  3. 3

    如何使用oidc和Azure应用程序配置kubernetes以仅允许使用指定的安全组进行身份验证

  4. 4

    Azure移动应用程序中的应用程序身份验证。如何?

  5. 5

    Azure移动应用程序身份验证和Azure AAD B2C

  6. 6

    Azure移动应用程序身份验证和Azure AAD B2C

  7. 7

    使用来自移动应用程序的令牌进行剩余API身份验证

  8. 8

    通过移动应用程序使用Moodle进行身份验证

  9. 9

    如何在使用 auth0 进行身份验证的 React 应用程序中获取用户信息

  10. 10

    如何使用多租户ASP.NET应用程序通过Azure Active Directory进行身份验证?

  11. 11

    使用OAuth对EWS应用程序进行身份验证

  12. 12

    使用 Ionic 应用程序进行 API 身份验证

  13. 13

    用户通过Google Web应用程序进行身份验证后,获取并使用访问令牌

  14. 14

    针对Web应用程序和移动应用程序的REST API身份验证

  15. 15

    Web 应用程序、Web API 和移动应用程序之间的身份验证

  16. 16

    如何在本机应用程序(Android / iOS)中对用户进行身份验证和记住?

  17. 17

    对单个操作而非整个应用程序使用Windows身份验证进行身份验证

  18. 18

    使用用户名和密码从WPF应用程序进行GitHub身份验证

  19. 19

    使用keycloak和openid_client对flutter应用程序进行身份验证

  20. 20

    如何在 OWIN 应用程序中使用 cookie 身份验证和 WsFederation 身份验证

  21. 21

    如何使用密钥对连接的应用程序进行身份验证?Django,Python

  22. 22

    Github:如何使用SecurID桌面应用程序进行两因素身份验证?

  23. 23

    如何使用Google Cloud Storage对Java应用程序进行身份验证?

  24. 24

    使用MobileFirst在移动应用程序中使用LDAP服务器对用户进行身份验证

  25. 25

    如何在Azure逻辑应用程序中使用OAuth 2.0身份验证?

  26. 26

    使用LinkedIn的iOS 9 SDK通过Webview而不是LinkedIn的移动应用程序进行身份验证

  27. 27

    如何使用 Selenium Webdriver 和 C# 处理 Chrome 应用程序身份验证警报

  28. 28

    如何使用 Facebook 身份验证和后端服务器实现 Android 应用程序

  29. 29

    在移动应用程序中进行帐户注册/注册/身份验证的最佳做法

热门标签

归档