作为一家企业,我们希望使用 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
:INVALID_REQUEST
获取弹出窗口时出错: AADB2C90055:请求中提供的范围“电子邮件openid配置文件”必须指定资源,例如“https://example.com/calendar.read”。
相关ID:bd714482-8534-473e-94bc-0a4c56da686d
时间戳:2017-09-15 10:36:15Z
:INVALID_REQUEST
答案 0 :(得分:2)
当我们使用MSAL库与Azure AD B2C进行交互时,无需提供范围import re
teststr = """!# Approved : YES
!# REASON: test
!# DEVICE: TEST1TEST2
!# ACL: <Rule No>/110 and 102/120
!# SECTION: MORI
!# REQUESTER: test1x
!# MODIFIER: test1"""
def test():
q = re.compile(r'(?<=!# )device.*\b\W', re.MULTILINE | re.IGNORECASE)
print(q.findall(teststr))
。 SDK会自动添加范围。我们只需要提供我们为Azure AD B2C刀片上的Web API应用程序注册定义的自定义范围。
范围openid profile offline_access
是应用程序默认定义的自定义范围。我们应该包含app id URI(user_impersonation
),如下所示:
https://{myB2CTenant}.onmicrosoft.com/b2capp2
而AFAIK,Azure AD B2C目前还不支持委派用户访问Azure广告图表。我们需要通过Azure Active Directory注册应用程序 - >应用程序注册(不在Azure AD B2C刀片中),并通过客户端凭据流访问Microsoft或Azure AD Graph。以下是在Azure AD B2C中调用Graph API的有用链接:
Azure AD B2C: Use the Graph API
如果您希望Azure AD B2C应用程序也支持委派用户调用Microsoft Graph,您可以从here提交反馈。
答案 1 :(得分:0)
对于我错误的测量,我在没有有效的idToken时尝试获取accessToken。
因此,在调用acquireTokenSilent()
之前,请确保您拥有有效的idToken。