我已成功实施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。
答案 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,两者都非常相似且易于实现。