我有一个工作的azure认证层设置为flask应用程序使用flask dance make_azure_blueprint。
blueprint = make_azure_blueprint(
client_id=client_id,
client_secret=client_secret,
tenant=tenant_id,
scope=[
scopes.Email,
scopes.DirectoryReadAll,
scopes.OpenID,
scopes.Profile,
scopes.UserRead,
scopes.UserReadAll,
],
login_url=LOGIN_URL_PATH,
authorized_url=AUTH_CALLBACK_URL_PATH,
redirect_url='http://localhost:5000/',
)
app.register_blueprint(blueprint, url_prefix="/login")
,其中作用域为:范围——
DirectoryReadAll = 'Directory.Read.All'
Email = 'email'
GroupMemberReadAll = 'GroupMember.Read.All'
Profile = 'profile'
OpenID = 'openid'
UserReadBasicAll = 'User.ReadBasic.All'
UserRead = 'User.Read'
UserReadAll = 'User.Read.All'
使用这个,我能够检索用户信息和显示在应用程序上。现在我正试图结合Azure时间序列见解范围"https://api.timeseries.azure.com//user_impersonation"。但是这会返回一个错误,说这不能与资源特定的组混合。输入图片描述
您的需求无法满足。
似乎你试图访问两个api都是default
范围和user_impersonation
范围。实际上,我们不能使用多个作用域来访问api。
你应该把你想要访问的api放在作用域中。例如,如果你想访问MS图形api,你可以把https://graph.microsoft.com/.default
。如果您想访问自定义api,您可以输入api://{back-end app client api}/scope name
。