我试图弄清楚如何授权使用Azure Active Directory B2C中的组.我可以通过用户授权,例如:
[Authorize(Users="Bill")]
Run Code Online (Sandbox Code Playgroud)
然而,这不是很有效,我看到很少用例.另一种解决方案是通过角色授权.但是由于某些原因,似乎并没有wowrk.例如,如果我为用户提供"全局管理员"角色,请尝试:
[Authorize(Roles="Global Admin")]
Run Code Online (Sandbox Code Playgroud)
这是行不通的.有没有办法通过群组或角色进行授权?
在Azure AD B2C和Azure AD B2B出现之前,我通常将我的应用程序添加到我们租赁的Azure AD中,Office 365用户可以使用他们的帐户(SSO)访问应用程序.
我不是一个大师,所以我需要查看代码并阅读有关确切示例以理解这些概念.
我可以使用B2C进行SSO,因为我通常使用Azure AD吗?否则我如何/何时可以使用B2C和B2B?
谢谢并感谢各种建议.
我已经能够为我正在测试的租户正确设置注册/登录策略.我已设置重置密码属性,以允许每个人使用他们的电子邮件重置密码.目前,用户使用他们的电子邮件(也是他们的用户名),名字和姓氏进行注册.
但是,当我点击登录页面上的"我忘记密码"链接时,它只是将我重定向回同一页面.这里有什么我想念的吗?
我正在寻找一种通过用户名/密码以无头方式为Azure AD b2c验证用户的方法.Azure AD b2c很棒,但我们认为登录的重定向可能导致客户之间的混淆(有时甚至被某些浏览器阻止).此外,我们希望完全控制客户的UX体验.
我研究了ADAL和Graph API,但还没有找到任何东西.
吉娜
在Azure B2C中,我曾经通过使用JWT 检索Azure AD组信息,在我的JWT令牌中获得"组"声明:
"groupMembershipClaims":"SecurityGroup",
这在过去一直运作良好(大约一个月前,我相信......)但它已不复存在了.详见下文......
按照上面已知的好食谱.
不幸的是,这不再起作用 - 当此客户端尝试使用B2C验证我时出现以下错误:
AADB2C90068:提供的ID为"032fe196-e17d-4287-9cfd-25386d49c0d5"的应用程序对此服务无效.请使用通过B2C门户创建的应用程序,然后重试"
好吧,公平 - 他们正在把我们带到新门户网站.
使用新的Portal,按照好的旧配方.
但这也不起作用 - 当我到达"下载清单"部分时,我找不到任何方法来访问清单(并且谷歌搜索告诉我它可能已经好了......).
有点绝望,我尝试混合计划A和B:使用新的Portal注册应用程序,然后使用旧的Azure Manager更改清单.
但没有运气 - 当我尝试上传清单时,它会失败并显示消息
ParameterValidationException =提供的参数无效; BadRequestException =此版本不允许对聚合应用程序进行更新.
只需放弃"组"声明 - 相反,每当我需要组信息时,只需使用Graph API查询B2C服务器.
我真的,真的不想这样做 - 它会破坏访问令牌的自包含性,并使系统非常"健谈".
但是我把它作为Z计划包括在内,只是说:是的,我知道选项存在,不,我没有尝试过 - 而且我不愿意.
如何在我的JWT令牌中获得"团体"声明这些天?
当我尝试从portal.azure.com运行内置b2c编辑策略时,我刚刚收到以下错误.我打开了2个门户选项卡.为什么我收到此错误?
错误请求 - 请求太长HTTP错误400.请求标头的大小太长.
注意:在测试active-directory-b2c-dotnet-webapp-and-webapi示例项目时,我遇到了同样的错误消息.提供的原因是我发送了太多cookie.是同样的问题吗?
如果是同样的问题,在创建新的cookie之前是否应该删除陈旧的cookie?
我确实为https://login.microsoftonline.com看到了很多cookie
我有一个与Azure AD B2C连接的Asp.NET MVC应用程序.
在管理员设置中,我创建了一个管理员组:
在我的代码中我想使用 [Authorize(Roles = "Administrator")]
使用常规的Azure Active Directory,它很容易添加(只需3行代码).但对于Azure AD B2C,我找不到任何有用的教程或示例.也许你可以告诉我我需要修改什么.
这是我的Startup.Auth.cs的ConfigureAuth方法
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Generate the metadata address using the tenant and policy information
MetadataAddress = String.Format(AadInstance, Tenant, DefaultPolicy),
// These are standard OpenID Connect parameters, with values pulled from web.config
ClientId = ClientId,
RedirectUri = RedirectUri,
PostLogoutRedirectUri = RedirectUri,
// Specify the callbacks for each type of notifications
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,几乎完成了我的前端.所以我想从后端开始.
我曾经在ASP.NET 4中编程,但是自从我开始一个全新的应用程序(B2C和B2B)以来,我认为在ASP.NET 5 API中创建它可能很有趣.
现在我最大的问题是身份验证.模板中没有提供标准实现.
我只对Azure AD身份验证感兴趣,并且更喜欢Azure B2C AD,以便真正削减优势.
我只找到在ASP.NET 4中使用Azure AD B2C的文档.经过几个小时的搜索,我仍然没有找到有关在ASP.NET 5 API中使用Azure AD B2C的文档.
有人可以帮我找到合适的文件或帮助我吗?
当应用程序请求新令牌(刷新令牌)时,Azure AD B2C中的已删除用户帐户似乎正在被复活(或重新创建).在我们的案例中,移动应用程序请求令牌.
删除用户帐户后,突然显示具有相同电子邮件地址的用户,其名称为"未知"但电子邮件地址相同.
审核日志似乎以对过去7天内有活动的用户的id_token请求开始.
如果我的假设是正确的,这不奇怪吗?被删除的用户永远不能刷新令牌,因为刷新令牌的整个点是,如果您不再具有访问权限,则无法刷新它.
"未知"用户列表:
审核日志示例用户:
我正在执行一项任务,使用本地 WebAPI 服务从本地 ToDo WebApp 对 Azure 中的 Active-directory B2C 实例进行身份验证。
除了在 Azure 试用版订阅中添加一个 B2C 实例之外,我还创建了 2 个应用程序 App1 和 App2。在本地 Windows 10 操作系统的 Visual-Studio 中,我根据此处的 Microsoft 博客收集了 ToDo Webapp 和 WebAPI 服务的代码
但是,当我启动 WebAPI 服务并运行 ToDoWebapp 时,创建用户后的登录工作正常,但之后,对于对该服务的任何调用,我都会收到带有以下消息的错误页面: AuthenticationException: The remotecertificate is由于证书链中的错误而无效:UntrustedRoot
HttpRequestException:无法建立 SSL 连接,请参阅内部异常。
如何解决这一错误?
azure ssl-certificate asp.net-web-api azure-active-directory azure-ad-b2c
azure-ad-b2c ×10
azure ×7
asp.net-mvc ×3
asp.net ×1
asp.net-core ×1
azureportal ×1
c# ×1
jwt ×1