首页 > 解决方案 > 如何使用烧瓶舞 make_azure_blueprint 获得多个 API 范围

问题描述

我使用烧瓶舞 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”。但这会返回一个错误,指出这不能与特定于资源的组混合。 在此处输入图像描述

标签: azureazure-active-directoryflask-danceazure-blueprints

解决方案


你的需求是遥不可及的。

看来您尝试访问两个 apidefault范围和user_impersonation范围。实际上我们不能使用多个范围来访问 api。

您应该将要访问的api放在范围内。例如,如果你想访问 MS graph api,你可以把https://graph.microsoft.com/.default. 如果要访问自定义 api,可以输入api://{back-end app client api}/scope name.


推荐阅读