当前位置: 首页 > 知识库问答 >
问题:

使用来自spa的azure b2c对webapi进行身份验证(angular和adal.js)

东门修能
2023-03-14

提前致谢

彼得

共有1个答案

汪泓
2023-03-14

微软官方不支持它,但通过对github azure-activedirectory-library-for-js上的实验分支进行一些修改,您可以使它正常工作。

在第546行使用adal.js的logout方法中的policy参数修复到oauth2协议的V2.0endpoint的注销url:

var urlNavigate = this.instance + tenant + '/oauth2/v2.0/logout?' + logout + (this.config.extraQueryParameter ? '&' + this.config.extraQueryParameter : '');

在adal.js的method_createuser中从不设置username属性。用户名在更新令牌过程中使用,通过添加以下三行来修复它:

if (parsedJson.hasOwnProperty('emails')) {
    user.userName = parsedJson.emails[0];
}
_adal.acquireTokenSilent([_adal.config.clientId], null, function (error, tokenOut) {
adalProvider.init({
    tenant: 'tenant.onmicrosoft.com',
    clientId: 'clientid',
    extraQueryParameter: "p=B2C_1_SignIn"
}, $httpProvider);
 类似资料:
  • 我有一个API服务器(资源服务器)和多个应用程序、Web GUI(SPA)和一个桌面客户端,也许还会有更多。除了超文本传输协议之外,我还想为我的API服务器使用openid-connect基本身份验证。应该可以配置使用哪个openid提供商。我自己的,facebook,google...我只想做身份验证,我不需要他们的API。我只需要一些个人资料数据,如电子邮件或名字。 比方说,我已经将googl

  • null 我研究了OAuth2隐式授权,但它要求用户在成功验证后批准/拒绝应用程序。它在我的情况下不起作用,因为我同时拥有应用程序和API。 我查看了OAuth2密码授权,它并不完美,因为我需要公开client_id/client_secret。 我关注OAuth2的原因是因为该API最终将是公开的。 忘记OAuth2,在用户发布用户名/密码时手动生成access_token(在本例中,当API公

  • 情况 我想为我的web应用程序使用Azure B2C身份验证服务。但是,我希望应用程序管理员限制对某些电子邮件或域的访问,例如白名单,如下所示: tom1@abc.com tom2@def.com *@alphabet.com 因此,只有前两封电子邮件和任何以“alphabet.com”结尾的电子邮件才能访问该网站。 问题 我已经实现了所有功能,并且工作正常,但是我正在努力获取经过身份验证的用户的

  • 问题内容: 我想为在Raspberry Pi上运行并像本地服务器一样工作的软件制作一些更新脚本。该服务器应连接到Web上的主服务器,以获取软件更新并验证软件的许可证。为此,我设置了两个python脚本。我希望它们通过TLS套接字连接。然后,客户端检查服务器证书,然后服务器检查它是否是授权的客户端之一。我在此页面上找到了解决方案。 现在还有一个问题。我想知道 哪个客户端 (取决于证书)正在建立连接。

  • 但请求呢?和是用户的属性,但应将它们发送到endpoint。如果我将资源发送到endpoint,则没有多大意义。 对此有没有办法,遵循JSONAPI并保持API的意义?

  • 我正在尝试使用urllib3连接到网页。代码如下所示。 如果我们假设url是需要使用用户名和密码进行身份验证的某个网页,那么我是否使用正确的代码进行身份验证? 我使用urllib2做这件事很舒服,但使用urllib3做不到同样的事情。 非常感谢