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