我正在尝试查找我的Azure AD B2C目录中是否已经使用了电子邮件地址.
var token = await this.GetTokenAsync();
var client = new HttpClient();
var id = HttpUtility.UrlEncode("adrian_mydomain.com#EXT#@xxxxxxxxx.onmicrosoft.com");
////var id = HttpUtility.UrlEncode("adrian@mydomain.com"); // This also fails.
////var id = HttpUtility.UrlEncode("adrian_mydomain.com#EXT#"); // This also fails.
////var id = "xxxx-xxxx-xxxxxxxx-xxxxxxxxxx"; // This also fails (user object id).
var resource = $"{this.graphConfig.GraphUri}/{this.graphConfig.Tenant}/users/{id}?api-version=1.6";
//// This line below works, it returns all the users, so I do know the token is good and the resource URI is valid, etc.
////var resource = $"{this.graphConfig.GraphUri}/{this.graphConfig.Tenant}/users?api-version=1.6";
var request = …Run Code Online (Sandbox Code Playgroud) 我希望我清楚我的问题,所以这里.在我们的应用程序的注册流程中,我们询问用户的用户名,电子邮件和密码.但是,我们不要求确认/验证用户的电子邮件以继续使用该应用程序.根据我们的IT部门 - Azure AD B2C要求在最终用户首次注册时验证电子邮件地址.这是绝对真理吗?其他应用程序需要电子邮件,但仍然会让用户无需确认即可使用服务.
我们了解风险,如果用户决定使用他们不拥有的电子邮件,则会对用户施加压力.此方案的详细信息将在法律披露中详细说明.因此,重置密码,通知等对此用户不起作用.
我已经启动并运行Azure Active Directory B2C,并且可以在AD中创建的用户以@ .onmicrosoft.com的形式登录.所以,例如,john.smith @ myorganization.onmicrosoft.com,工作得很好.但是这些用户名对于外部使用是不可接受的.我还有基本的Microsoft帐户登录工作,因此名为john.smith@comcast.net的用户可以通过Microsoft目录重定向.
但我想允许任意电子邮件登录.使用Azure门户,如何添加用户并为其提供登录ID john.smith@somecompany.com?文档和FAQ表明它是可能的,但是当我添加用户时,我在Azure门户中找不到该选项.我错过了什么?
我正在使用 Azure 移动应用来托管我的网站。我正在使用 B2C 来控制身份验证。
如果我发出以下登录调用(在本例中是从浏览器调用):
https://mydomain.azurewebsites.net/.auth/login/aad
Run Code Online (Sandbox Code Playgroud)
然后我得到我的公司品牌登录设置就好了。图像等都很棒。
但是为了方便,我想填写用户名。
因此,如果我拨打此电话登录(同一客户端):
https://mydomain.azurewebsites.net/.auth/login/aad?login_hint=myemail@gmail.com
Run Code Online (Sandbox Code Playgroud)
然后登录名 (login_hint) 值显示在用户名字段中非常好,但我公司的所有品牌都丢失了。
谁能告诉我我做错了什么?我试着domain_hint乱动,但也没有用。
提前致谢。
我正在开发一个以 Azure AD B2C 作为身份提供者的 SPA。我正在使用MSAL JavaScript 库,它大部分工作正常。我可以为我的 Web API 后端创建用户、登录和获取访问令牌。
目前唯一的问题是 B2C 端点没有返回刷新令牌,因此当访问令牌过期时,UserAgentApplication 类中的 AcquireTokenSilent 方法(用于使用刷新令牌刷新过期的访问令牌)失败。
我在 B2C 中的应用程序在其属性中配置为“包括 Web 应用程序/Web API”和“允许隐式流”设置为“是”。在 API 访问部分中,在“访问用户的个人资料”下勾选了“openid”和“offline_access”范围。应用程序本身具有“读取”、“写入”和“user_impersonation”范围(不确定这是否重要)。
“offline_access”包含在我的范围中,我尝试创建一个应用程序,例如读/写范围并包括它(如“ https://mytenant.onmicrosoft.com/testapp/offline_access ”)但似乎没有工作。响应永远不会有刷新令牌,无论是 id 令牌还是访问令牌。
我注意到的是,当我转到我创建的 SignUp-SignIn 策略并尝试从那里运行端点时,“offline_access”范围在下拉列表中甚至不可用。即使我复制底部的“运行端点”链接并在运行之前将范围添加到 URL,响应也不包含刷新令牌。
当我单击顶部的链接时,它似乎为我提供了有关端点的一些详细信息,并且只有“openid”在受支持的范围内。
不确定我在这里遗漏了什么,所以任何想法都将不胜感激。
作为企业,我们希望使用Azure AD B2C,并且我们有内部和外部用户。
Azure AD 帮助我们管理我们的 Azure 用户、企业用户,我们甚至可以使用 x@.onmicrosoft.com 电子邮件添加用户。
当我们想为我们的消费者使用 Azure AD B2C 时。所以我们有 2 个选择来添加我们的用户,即本地用户和外部用户(Facebook、Google 等)
如果本地用户属于我们公司,则可以使用 Azure AD B2C 门户创建用户。
但是当我们尝试创建拥有另一种电子邮件的 Azure AD B2C 用户时,我们需要使用我们自己的应用程序,该应用程序正在使用 Graph API。(即 Azure 门户限制)
问题是我们很难在登录后获取用户值,因为他们是使用 Gmail 或 x 电子邮件的本地用户。
我们使用 MSAL 来获取相关信息,而不是 ADAL。
我们已经启用了范围并启用了 API 访问,但这是我们得到的错误。
获取弹出窗口:AADB2C90055:请求中提供的范围“openid email openid profile”必须指定一个资源,例如“ https://example.com/calendar.read ”。
关联 ID:86d6ff41-1cef-4ba1-9b26-2aa281c92ccd
时间戳:2017-09-15 10:22:20Z
invalid_request 登录时出错:AADB2C90117:不支持请求中提供的范围“user_impersonation”。
关联 ID:785c6487-cd7f-4750-a769-deb477cb4ba4
时间戳:2017-09-15 10:32:39Z
:无效请求
获取弹出窗口时出错:AADB2C90055:请求中提供的范围“电子邮件 …
azure azure-active-directory azure-ad-graph-api azure-ad-b2c
从Web应用程序(ASP.Net MVC)调用时,Azure AD B2C是否支持在SignUp策略中预先填充自定义属性?
我们可以创建自定义SignUp属性,但是我们无法在文档中找到如何传递值来填充自定义属性的规范.如果不支持开箱即用,是否有人找到了解决方法?
如果有人遇到类似的情况并找到了有用的解决方案,下面是上下文的更多细节:
我们将探索使用Azure AD B2C解决以下方案的选项:注册用户通过发送邀请电子邮件邀请其他人注册该应用程序,该电子邮件具有应用程序登录页面的URL以及特殊邀请代码(guid)查询参数,因此它可以单击该链接并重定向到注册页面.受邀人员创建帐户后,我们需要使用该代码将新创建的用户与发送邀请的用户相关联.
目前,这是使用默认身份提供程序在ASP.Net中实现的(使用AspNet ...表将用户数据存储在数据库中).通过使用Azure AD B2C替换本地身份提供程序,我们将在Azure AD B2C注册页面的往返过程中丢失上下文.用户单击电子邮件上的链接并转到SIgnUp页面,但未预先填充邀请代码.
我为Azure AD B2C配置了多个外部提供程序.现在,用户被迫选择他们想要进行身份验证的提供程序.如何配置系统以便用户可以键入电子邮件地址,系统可以根据用户的电子邮件地址自动将用户转发到正确的IDP.与公共身份验证端点如何为Azure AD工作和学生帐户中的不同Azure域工作方式类似.
我不明白如何使用Azure B2C中的"范围".它们与API相关联,但与用户无关.我确定我遗漏了一些东西,但我认为与API相关的东西没有实际用途.我已经根据用户在数据库中的角色使用并实现了基于声明的身份验证.
例如:API的普通用户不应具有删除对象的权限,但管理员应具有权限.有人有一个实际的例子说明如何使用这些B2C"范围"来限制用户对API的访问吗?
我们有一个移动应用程序和网站.我们希望使用Azure AD-B2C进行身份验证.我们不会允许任何第三方身份验证,而只是在单独的域中使用Azure AD.
我们更愿意使用用户的电话号码.我的研究表明,这种功能要求,但此时并不存在.
有没有解决方法,或者这个功能已经实现,我错过了吗?