Angular 2使用本地ADFS进行身份验证

时间:2016-06-01 12:31:11

标签: angular adfs adal

我们决定使用 Angular 2 作为新项目的框架。在尝试处理事物的安全方面时,我在 on-prem ADFS 的身份验证方面找不到多少。有很多处理 Azure AD 的内容,但这不是我们的选择 有没有人知道如何设置 Angular 2 以成功通过 ADFS 进行身份验证?

2 个答案:

答案 0 :(得分:7)

您可以使用 ng2-adal npm library成功实现此功能,您可以像为Azure AD实现它一样实现它,而是填写 secret-service.js ,ADFS值如下:

import { Injectable } from '@angular/core';

@Injectable()
export class AdfsSecretService {
  private endpoints: any = {
    'http://{your-website-url}/':
    'http:/{the-service-provider-identifier}', // as registered in ADFS
  };

  public get adalConfig(): any {
    return {
        instance: 'https://{your.adfs.site}/',
        tenant: 'adfs',
        clientId: '{adfs-client-guid}',
        redirectUri: window.location.origin + '/',
        postLogoutRedirectUri: window.location.origin + '/',
        endpoints: this.endpoints
    };
  }
}

您可以在图书馆的自述文件部分找到指向示例的链接。

ADFS 方面,您需要在 ADFS 下注册您的应用作为应用程序组,有关详细信息,请参阅此technet {{ 3}}

答案 1 :(得分:2)

我的理解是你通常会使用ADAL 2.0(ADAL JS)。

但是,它使用ADFS 3.0不支持的OAuth隐式流。 ADFS 2.1及更低版本中没有OAuth支持。但是,它在ADFS 4.0(Server 2016)中受支持。

你可以通过使用IdentityServer或Auth0之类的东西来解决这个问题。 Authenticate Angular.js with ADFS

不,我不为Auth0工作!