代码之家  ›  专栏  ›  技术社区  ›  TomSelleck

没有clientsecret的azure b2c身份验证

  •  0
  • TomSelleck  · 技术社区  · 8 年前

    我已经成功地实现了 this tutorial 并让客户机+服务器在本地工作。

    但是,我正在构建的前端应用程序是一个角度应用程序-这意味着不可能在其中存储客户端机密。

    相关代码:

    ConfidentialClientApplication cca = new ConfidentialClientApplication(Startup.ClientId, Startup.Authority, Startup.RedirectUri, new ClientCredential(Startup.ClientSecret), userTokenCache, null);
    
    var user = cca.Users.FirstOrDefault();
    
    AuthenticationResult result = await cca.AcquireTokenSilentAsync(scope, user, Startup.Authority, false);
    
    HttpClient client = new HttpClient();
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, apiEndpoint);
    
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
    

    根据上面提到的教程,如何在没有客户机密的情况下安全地设置前端以进行工作?

    我正在用这个 angular library .

    1 回复  |  直到 8 年前
        1
  •  2
  •   Ramakrishna    8 年前

    你可以通过使用 隐性授权流

    您可以无缝集成到任何spa应用程序中。

    跟随 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-spa ,本文将帮助您。

    github中已经有spa示例,您可以尝试 https://github.com/Azure-Samples/active-directory-b2c-javascript-hellojs-singlepageapp

    在上面的示例中,您可以使用oidc客户机库代替hello.js,两者非常相似且易于实现。