【问题标题】:Angular 4/Angular 2 validate SPA against Azure B2C Active DirectoryAngular 4/Angular 2 针对 Azure B2C Active Directory 验证 SPA
【发布时间】:2017-05-08 20:57:15
【问题描述】:

在 Angular 4/Angular 2 应用程序中,我想针对 Azure B2C Active Directory 对其进行验证。在 ASP.NET MVC 中,使用 Controller 上的 [Authorize] 属性并使用 OWIN Startup.cs 类来生成身份验证质询并生成 Bearer 令牌。

继续使用 Angular 4/Angular 2 的 SPA 应用程序,我找不到相同的相关教程。我看过一些使用 Auth0 的示例,但我不是在寻找 Auth0 解决方案。我想直接针对 Azure B2C Active Directory 进行身份验证。

能否提供一些方法和相关示例以及描述相同内容的教程。

尝试了下面“Fei Xue - MSFT”建议的 ng2-adal 示例。添加 ng2-adal 示例错误消息图片。

添加了“package.json”代码:-

    {
  "name": "angular2-azure-ad",
  "version": "1.0.0",
  "scripts": {
    "gulp": "gulp",
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "build": "tsc",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "~4.0.0",
    "@angular/compiler": "~4.0.0",
    "@angular/core": "~4.0.0",
    "@angular/http": "~4.0.0",
    "@angular/platform-browser": "~4.0.0",
    "@angular/platform-browser-dynamic": "~4.0.0",
    "@angular/router": "~4.0.0",
    "angular2-adal": "^0.1.4",
    "angular2-in-memory-web-api": "0.0.10",
    "bootstrap": "^3.3.7",
    "core-js": "^2.4.1",
    "rxjs": "5.0.1",
    "systemjs": "0.19.40",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings": "^1.0.4",
    "gulp": "^3.9.1",
    "gulp-typescript": "^2.13.6",
    "gulp-sourcemaps": "^1.6.0",
    "gulp-shell": "^0.5.2",
    "del": "^2.2.0"
  }
}

【问题讨论】:

    标签: asp.net-mvc angular azure azure-active-directory angular2-services


    【解决方案1】:

    AFAIK,我们需要在 Angular 2 中实现CanActivate 接口,以便守卫决定是否可以激活路由。

    要使用 Azure AD 保护 Angular 2 的 SPA,您可以参考 this code sample。而关于Azure AD B2C认证,可以参考this document

    【讨论】:

    • 我尝试运行“ng2-adal-quickstart”示例。 project.json 有 angular core 和其他的 beta 版本,因此将它们更新为最新版本。然后使用“npm install angular2-adal --save”安装 ng2-adal。 ng2-adal 寻找角核心和其他的 beta 包。在尝试使用“npm start”运行项目时也会显示几个错误。
    • 使用jasmine 库时出现问题。要解决此问题,请在从 Github 克隆项目后,使用 "@types/jasmine": "=2.5.36" 而不是 "@types/jasmine": "^2.5.36" 修改此库的 package.json
    • 我在原始帖子中添加了“package.json”代码。从 GitHub 下载的示例中根本没有 jasmine。
    • @Bobby 请参考package.json 的第 54 行。如果您仍有问题,请随时告诉我。
    • Xue MSFT :这仅适用于 Azure B2B AD,不适用于 Azure B2C AD。我需要提供 B2C 登录政策。 (1) 如何使其与 B2C Azure AD 一起使用? (2) 当我需要传递 Bearer 令牌以进行身份​​验证和调用 REST 服务时,如何将令牌作为字符串获取? (3) 如何列出索赔?
    猜你喜欢
    • 2017-07-27
    • 2020-06-08
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多