我需要在 Azure 上构建一个 Web 应用程序,公共(public)用户应该能够在该应用程序上订阅并登录以查看和操作他们的数据。
我想我可以使用 webapi+AzureAD 或 expressjs+passportjs。两者都可以直接轻松地解决这个问题吗?将 AzureAD 用于此类应用程序是否涉及成本(无法在网站上完全说明)。
C#和JS/TS都没有问题。
干杯,B。
请您参考如下方法:
您可以在 ASP.NET Web 应用程序中执行此操作
为了使 Web 应用程序能够使用帐户进行身份验证,您可以使用 Azure Active Directory B2C 来实现
FYI: Azure AD B2C enables your apps to authenticate to social accounts, enterprise accounts, and Azure Active Directory accounts using open standard protocols.
你需要做的是:
- 注册您的 Web 应用程序(创建应用程序 ID)以便从 Azure AD 理解接收访问 token See this Tutorial from Microsoft for a better understanding
PS : Make sure you're using the directory that contains your Azure AD B2C tenant.
- 使用以下参数在 B2C 设置中添加您的 Web 应用程序:
- 名称:[输入向消费者描述您的应用的名称。]
- 包括网络应用程序/网络 API:[是 - 为网络应用程序选择是。]
- 允许隐式流:[是 - 选择是,因为该应用程序使用 OpenID Connect 登录。]
- 回复 URL:[回复 URL 是 Azure AD B2C 返回任何内容的端点 您的应用请求的 token 。]
- 包括 native 客户端:[是 - 如果您的应用程序是网络应用程序或否,如果它不是 native 客户端]。
- 创建客户端密码,因为 Azure AD 对客户端应用使用 OAuth2 授权,因此它们需要客户端 ID 或应用程序 ID 以及客户端密码、客户端密码或应用程序 key 。
- 创建政策以注册用户访问然后登录网络应用程序,创建注册或登录政策。
- 制定个人资料编辑政策,允许用户自行重置其用户个人资料信息。
- 创建密码重置策略以在您的应用程序上启用密码重置。这将描述密码重置期间的消费者体验以及应用程序在成功完成时收到的 token 内容。
- 将以下键添加到配置部分下 appSettings 部分的 Web.config 文件中的现有键,如下所示,并填写值字段:
<configuration>
<appSettings>
<add key="ida:Tenant" value="" />
<add key="ida:ClientId" value="" />
<add key="ida:ClientSecret" value="" />
<add key="ida:AadInstance" value="" />
<add key="ida:RedirectUri" value="{Your RedirectUri}" />
<add key="ida:SignUpSignInPolicyId" value="" />
<add key="ida:EditProfilePolicyId" value="" />
<add key="ida:ResetPasswordPolicyId" value="" />
</appSettings>
</configuration>
