【问题标题】:Mixing Azure AD and Azure AD B2C Authentication within same reactjs app and aspnet core web api在同一个 reactjs 应用程序和 aspnet 核心 web api 中混合 Azure AD 和 Azure AD B2C 身份验证
【发布时间】:2022-02-08 01:52:06
【问题描述】:

我们如何在同一个应用程序中混合 Azure AD 和 Azure AD B2C?我正在构建一个应该可供员工和客户访问的应用程序。我的要求是使用 Azure AD 对内部用户(如员工)进行身份验证,使用 Azure AD B2C 对外部用户(客户)进行身份验证。

到目前为止我知道什么。 我可以构建两个 web api(只有不同​​的 Startup.cs),同样可以在 reactjs 上完成 - 这并不理想

react 应用的 index.js 中的代码

import { PublicClientApplication } from "@azure/msal-browser";
import { MsalProvider } from "@azure/msal-react";
import { msalConfig } from './config';
const msalInstance = new PublicClientApplication(msalConfig);

ReactDOM.render(
  <Fragment>
    <StrictMode>
      <MsalProvider instance={msalInstance}>
        <Provider store={store}>
          <App />
        </Provider>
      </MsalProvider>
    </StrictMode>
  </Fragment>,
  document.getElementById('root')
);

Startup.csos aspnet core api 中的当前代码

// 'AzureAd' and 'AzureAdB2C' is configured in appsettings.json
services.AddMicrosoftIdentityWebApiAuthentication(_configuration, "AzureAd");
// + services.AddMicrosoftIdentityWebApiAuthentication(_configuration, "AzureAdB2C"); <---- Would this work?
services.AddSingleton<IAuthorizationPolicyProvider, PermissionPolicyProvider>();
services.AddScoped<IAuthorizationHandler, PermissionAuthorizationHandler>();

【问题讨论】:

    标签: azure asp.net-core azure-active-directory azure-ad-b2c


    【解决方案1】:

    将 Azure AD 联合到 Azure AD B2C。 然后,用户可以单击 AAD B2C 登录页面上的按钮以使用其 AAD 帐户登录。您的应用只需将 AAD B2C 理解为登录提供程序。简单得多。

    https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-single-tenant?pivots=b2c-custom-policy

    【讨论】:

    • 这似乎很棒。我刚刚读到 MSAL 可以在没有 AD 更改或策略的情况下做到这一点。请参阅此声明“MSAL 是一个统一的库,可帮助您开发与 Microsoft 帐户、Azure AD 帐户和 Azure AD B2C 用户无关的应用程序——所有这些都在一个单一的、简化的编程模型中!”。我没有看到任何相同的样本。链接 - techcommunity.microsoft.com/t5/security-compliance-and-identity/…
    • AAD B2C 的所有应用程序示例都已使用 MSAL。 MSAL 将用户发送到 AAD 或 AAD B2C,其中之一。将用户发送到 AAD 以获取工作/学校/Microsoft 帐户。使用 MSAL 为消费者/联合帐户的 AAD B2C 发送用户。 MSAL 只能指向 AAD OR AAD B2C。
    • 现在很清楚了。说明“冷漠对待用户”的文档让我认为我可以添加提供商和 MSAL 根据电子邮件域名做出决定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2016-09-08
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多