试一下使用Service Principal去访问Power BI Rest Api

1. 简单介绍

        Power BI 平台提供了Rest Api后,大家都可以使用一些工具去进行访问了。Service Principle(服务主体) 是其中一种身份验证方法,可用于让 Microsoft Entra(以前名字是Azure AD) 应用程序访问 Power BI平台的内容和 API。当你在Microsoft Entra ID中注册了一个应用程序后,自动会产生一个Service Principle 给注册的应用程序。

这边主要试一下在微软的Power Automate中,运用Service Principal去访问Rest Api

2. 使用Service Principal访问Power BI Rest Api的步骤

2.1 注册应用程序

      在 Microsoft Entra admin center 中,点击左侧的App registrations即可开始创建注册应用,

      

输入应用相关的配置信息,点击注册。

        

点击注册按钮后,会出来下面这个界面,需要把页面中的 Application(Client ID) 和 Directory ID(tenant ID) 记录下来,后面会用到的。

        

 接着点击左侧的 Certificates & secrets, 去产生一个密钥,       ​​​

            

        生成密钥后,记得即时保存,因为密钥只会显现一次,

        具体的注册应用程序的步骤也可以参考微软的这篇文章 Register a Microsoft Entra app

        一旦应用程序注册好了之后,其实Service Principal就在Azure上自动创建好了。

2.2  Power BI Workspace和Admin Portal的一些设定

        2.2.1  在Microsoft Extra ID中创建一个Security Group,

                点击 Create AD Group 链接,创建一个 Security Group,

                接着把上面注册的应用程序对应的Service Principal加入到这个Security Group中。

                

        2.2.2  配置Power BI Admin Portal

                这里主要是要授权Service Principal去访问Power BI的内容,

                对上面创建的Security Group授权即可。

                

        2.2.3 配置 Power BI Workspace

        访问 Power BI Workspace, 点击 右上角的 Manage access 

                

        点击 Add people or groups,然后对前面注册的Service Principal授权,

                

3. 创建一个Power Automate 工作流

                

3.1 获取Access Token

                Http操作的设定是这样的

                

3.2 访问 Power BI Rest Api

         这里假定想要获取 Power BI Workspace Dataset 的信息,

                

                

               3.3 运行结果

                        

4. 其他的信息

       4.1 Power BI Rest Api 可访问列表

        当前(到2024-06-05为止)使用Service Principal可以访问到下面这些Power BI Rest api,

        列表可能会变化,

                

                参考链接 为只读管理员 API 启用服务主体身份验证 - Microsoft Fabric | Microsoft Learn

        以上简单介绍了一下Service Principal访问Power BI Rest Api的情况,如果哪里有错误的地方,麻烦告之!谢谢,谢谢

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于 Flask-Principal 扩展的使用举例,我可以向您提供以下例子: 首先在 Flask 应用程序的初始化中,我们要创建一个 Principal 类的实例: ```python from flask_principal import Principal app = Flask(__name__) principal = Principal(app) ``` 然后,我们可以使用 principal.identity_loaded 装饰器来定义一个函数,用于加载用户的身份信息。例如: ```python @principal.identity_loaded.connect def on_identity_loaded(sender, identity): # 获取当前用户的信息 user = get_current_user() # 如果用户未登录,返回 None if user is None: return # 设定身份信息 identity.provides.add(UserNeed(user.id)) ``` 这里的 get_current_user() 函数是由应用程序开发者自己实现的,用于获取当前登录用户的信息。在身份信息被加载后,我们可以使用 principal.identity_changed.send() 方法来改变当前的身份,例如: ```python @bp.route('/login', methods=['POST']) def login(): # 获取用户的登录信息 username = request.form['username'] password = request.form['password'] # 如果用户名或密码不正确,则返回错误信息 if not check_user_credentials(username, password): return '用户名或密码错误' # 设定当前用户的身份信息 identity = Identity(user.id) principal.identity_changed.send(app, identity=identity) return '登录成功' ``` 这里的 check_user_credentials() 函数也是由应用程序开发者自己实现的,用于验证用户的用户名和密码是否正确。当用户成功登录时,我们使用 principal.identity_changed.send() 方法来改变当前的身份信息。 以上就是一个简单的 Flask-Principal 使用举例,希望对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值