将 MSAL 与非 Microsoft 身份提供商结合使用

KTi*_*Tib 7 identity azure-ad-msal idp

我想知道 MSAL 是否可以与 Microsoft 产品以外的身份提供商一起使用。如果是,如何。我检查了 MSAL 文档,但这个问题并不简单。我想做的是使用 MSAL 向 Google 和 OneLogin(可能还有其他人)进行身份验证,但我不知道如何进行。不过,我成功地将 MSAL 与 Azure AD 结合使用。

MSAL 似乎是一个很好的库,可以与任何 IDP 一起使用。

Ale*_*aus 2

附加条件

我相信您正在询问MSAL.JS,因为没有必要将MSAL.NET与非 MS OpenID Connect 提供商一起使用,因为它为社交登录Microsoft.AspNetCore.Identity提供了足够的支持,并且自定义 OpenID Connect 服务器的供应商提供了自己的扩展(请参阅IdentityServer 文档OpenIdDict样品

回答

是的,自 2020 年 10 月起,可以将非 MS OIDC 提供商与 MSAL.JS 结合使用。

您必须指定额外的auth属性:protocolMode: 'OIDC'knownAuthorities: ["your-id-server.com"]。参数请参见官方文档@azure/msal-browser

如果您遵循官方 JavaScript 示例,那么配置将如下所示:

auth: {
    clientId: "YOUR-CLIENT-ID",
    authority: "https://your-id-server.com",
    knownAuthorities: ["https://your-id-server.com"],
    redirectUri: "https://you-client-app.com",
    protocolMode: "OIDC"
}
Run Code Online (Sandbox Code Playgroud)

历史

此 PR于2020 年 10 月 16 日合并之前,MSAL专门与 MS 端点合作。所以@leastprivilege 2017年的答案当时是正确的。

值得庆幸的是,问题请求1555和随后的2120帮助改变了潮流。