如何实现 Azure-Ad Passport 身份验证?找不到任何相关文档,在网上看到有问题。
最佳答案
将 MSAL 用于前端。 对于后端,请使用 Passport 和 passport-azure-ad npm。
- 然后,您应该在 Azure AD 中创建应用
- 然后,获取tenantId并 应用设置页面中的 appId,
- 然后,使用类似的代码来获取访问权限 token 并检查用户身份验证。
//我的 auth-guard.ts
import { AuthGuard, PassportStrategy } from '@nestjs/passport';
import { BearerStrategy } from 'passport-azure-ad';
import { Injectable } from '@nestjs/common';
@Injectable()
export class AzureADStrategy extends PassportStrategy(
BearerStrategy,
'azure-ad',
) {
constructor() {
super({
identityMetadata: `https://login.microsoftonline.com/${tenantID}/v2.0/.well-known/openid-configuration`,
clientID,
});
}
async validate(data) {
return data;
}
}
export const AzureADGuard = AuthGuard('azure-ad');
// app.controller.ts
@UseGuards(AzureADGuard)
@Get('/api')
get_api(): string {
return 'OK';
}
}
尝试一下应该可以。
关于azure - Nestjs - 实现 Azure-Ad Passport 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72801893/