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

bha*_*is9 6 adfs adal angular

我们决定使用Angular 2作为我们新项目的框架.在试图处理事物的安全性方面,我找不到身份验证与很多的预置型 ADFS.有很多处理Azure AD,但这不是我们的选择.
有谁知道一种方法能够设置Angular 2成功验证ADFS

Tha*_*uni 8

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

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
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

你可以在图书馆的自述文件部分找到一个例子的链接.

ADFS端,您需要在ADFS下注册您的应用程序作为应用程序组,有关更多信息,请参阅此technet 文章


nzp*_*mad 3

我的理解是,您通常会使用 ADAL 2.0 (ADAL JS) 来实现此目的。

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

您可以通过桥接 IdentityServer 或 Auth0 来解决这个问题,例如使用 ADFS 验证 Angular.js

不,我不为 Auth0 工作!