Javascript 从JS单页应用程序向azure-ad-b2c策略发送声明的示例

Javascript 从JS单页应用程序向azure-ad-b2c策略发送声明的示例,javascript,azure,azure-ad-b2c,claims,msal,Javascript,Azure,Azure Ad B2c,Claims,Msal,我正在使用msal js库将SPA重定向到b2c策略 我找不到从javascript应用程序向b2c策略(如extension_Brand)发送自定义声明的示例 我发现的是.NET示例: 但它使用.NET库 哪个JS库可以向b2c策略发送声明?我所知没有JS示例 您可以使用通过extraQueryParametersarg on等向B2C发送索赔 对服务器进行ajax调用以获取JWT,然后将JWT传递给B2C 索赔以以下方式发送至B2C: context.ProtocolMessage.Par

我正在使用msal js库将SPA重定向到b2c策略

我找不到从javascript应用程序向b2c策略(如extension_Brand)发送自定义声明的示例

我发现的是.NET示例: 但它使用.NET库


哪个JS库可以向b2c策略发送声明?

我所知没有JS示例

您可以使用通过
extraQueryParameters
arg on等向B2C发送索赔

对服务器进行ajax调用以获取JWT,然后将JWT传递给B2C


索赔以以下方式发送至B2C:

context.ProtocolMessage.Parameters.Add(“客户端断言类型”,“urn:ietf:params:oauth:client断言类型:jwt承载”);
context.ProtocolMessage.Parameters.Add(“client_断言”,selfIssuedToken);

示例JS代码

服务器端示例只是发出一个HTTP请求,这意味着您可以在JavaScript中执行相同的操作:

var client_assertion_type = encodeURIComponent("urn:ietf:params:oauth:client-assertion-type:jwt-bearer");

var jwtQueryParams = "client_assertion_type=" + client_assertion_type + "&client_assertion=" + jwt;

msalApp.loginRedirect(myScopes, jwtQueryParams);

我的服务器是node.js服务器(不是.NET服务器),所以生成JWT和在客户端上生成JWT的问题相同。如何在JavaScript中生成JWT?它需要是一个服务器端操作。此库应该完成以下操作:。请参见
jwt.sign(有效负载、secretroprivateKey、[options、callback])
@edilyin请您指出一个解释,为什么这应该是服务器端操作?由于这会使您再次往返到server.b/c,因此您需要一个
secretroprivateKey
,如果它是客户端@EdIlyin,则无法对其进行保护