没有ClientSecret的Azure B2C身份验证

时间:2018-06-08 14:36:58

标签: azure-active-directory azure-ad-b2c

我已成功实施this tutorial并让客户端+服务器在本地运行。

但是,我正在构建的前端应用程序是一个Angular应用程序 - 这意味着无法在其中存储客户端密码。

相关代码:

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 个答案:

答案 0 :(得分:2)

您可以使用隐式授权流程

来实现此目的

您可以无缝集成到任何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-client库而不是hello.js,两者都非常相似且易于实现。