如何将我的Web应用程序与Azure AD B2C连接

时间:2019-02-05 22:04:55

标签: c# asp.net-core azure-ad-b2c

我正在尝试通过Web应用程序设置asp.net核心。但是我遇到了错误。我进行了一些谷歌搜索,发现了可能的解决方案,例如

[有关使用Azure AD B2C制作ASP.NET Core Web应用程序的文档] (https://azure.microsoft.com/de-de/resources/samples/active-directory-b2c-dotnetcore-webapp/)和此.NETCore B2C sample

在示例解决方案中,appsettings.json文件还具有Api。

"AzureAdB2C": {
"ClientId": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",
"Tenant": "fabrikamb2c.onmicrosoft.com",
"SignUpSignInPolicyId": "b2c_1_susi",
"ResetPasswordPolicyId": "b2c_1_reset",
"EditProfilePolicyId": "b2c_1_edit_profile",
"RedirectUri": "http://localhost:5000/signin-oidc",
"ClientSecret" : "v0WzLXB(uITV5*Aq",
"ApiUrl": "https://fabrikamb2chello.azurewebsites.net/hello",
"ApiScopes": "https://fabrikamb2c.onmicrosoft.com/helloapi/demo.read"
}

但是我不明白为什么我需要Api。我是否只需要在Azure AD B2C Tennant中设置API?还是在Api中也需要一些代码?

有没有一个很好的例子可以用来帮助您理解主题?

问候 斯蒂芬

3 个答案:

答案 0 :(得分:1)

我建议阅读.NetCore webapp sample上的自述文件,并首先按原样运行示例。

然后,按照[OPTIONAL]步骤进行操作,这些步骤说明了示例的工作方式以及如何使用您自己的B2C租户和策略进​​行设置。该示例调用了API "https://fabrikamb2chello.azurewebsites.net/hello",因此这里需要register your own Web API with B2C,以便您可以定义请求访问令牌的范围。

然后,将您的应用程序坐标替换为示例中的坐标(例如Tenant,ClientId,Policy,ClientSecret,ApiUrl和ApiScopes)。最后,您应该能够重建并运行该解决方案。

答案 1 :(得分:0)

感谢珍妮的帮助。

的第4步
  

[可选]步骤4:创建自己的Web API此示例在以下位置调用API   https://fabrikamb2chello.azurewebsites.net的代码与   带有Azure AD B2C的示例Node.js Web API。您需要自己的API   或至少需要在Azure AD中注册Web API   B2C,以便您可以定义单个页面的范围   应用程序将请求访问令牌。您的Web API注册   应包含以下信息:启用Web App / Web API   设置为您的应用程序。将回复URL设置为适当的   示例中指示的值,或者仅在执行操作时提供任何URL   网络api注册,例如https://myapi。确保你   还提供了一个AppID URI,例如demoapi,它用于   构造在单页中配置的范围   应用程序的代码。 (可选)创建应用后,打开   应用程序的“发布范围”边栏选项卡,并添加所需的任何其他范围。复制   AppID URI和“发布的范围”值,因此您可以在   您的应用程序的代码。

我可以在Azure B2C Tennant中设置WebAPI。 API的代码是什么?还是在Azure B2C租户中设置WebAPI很好吗?

答案 2 :(得分:0)

感谢您的帮助。现在,运行与Azure AD B2C的身份验证。 我如何在控制器内部检查用户是否已登录? 用户登录后,请执行一些操作。如果用户未登录,则仅显示登录按钮。 我知道如何在视图中而不是在控制器中检查它。