如何使用Python Azure SDK和Graph修补现有应用程序? [英] How to patch an existing application using Python Azure SDK and Graph?

查看:91
本文介绍了如何使用Python Azure SDK和Graph修补现有应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试以编程方式向Azure应用注册中添加一个reply_url,但是却收到一个azure.graphrbac.models.graph_error_py3.GraphErrorException: Specified HTTP method is not allowed for the request target.

I am trying to add a reply_url programmatically to an Azure app registration, but I receive an azure.graphrbac.models.graph_error_py3.GraphErrorException: Specified HTTP method is not allowed for the request target.

当我尝试使用新的reply_urls更新现有应用程序时,它会失败.

It fails when I try to update an existing application with new reply_urls.

我正在使用的SDK是: azure-graphrbac == 0.61.1

SDK I am using is: azure-graphrbac==0.61.1

我的代码:

from azure.common.credentials import ServicePrincipalCredentials
from azure.graphrbac import GraphRbacManagementClient
from azure.graphrbac.models import ApplicationUpdateParameters

class GraphClient:
    def __init__(self, client_id, client_secret, tenant_id, object_id):
        self._credentials = ServicePrincipalCredentials(
            client_id=client_id,
            secret=client_secret,
            tenant=tenant_id,
            resource="https://graph.windows.net"
        )
        self._graph_client = GraphRbacManagementClient(
            credentials=self._credentials,
            tenant_id=tenant_id
        )
        self._object_id = object_id
        self._application = self._graph_client.applications.get(self._object_id)

    def get_reply_urls(self) -> List[str]:
        return self._application.reply_urls

    def add_reply_url(self, reply_url) -> None:
        reply_urls: list = self.get_reply_urls()
        self._graph_client.applications.patch(
            self._object_id,
            ApplicationUpdateParameters(
                reply_urls=[
                    *reply_urls,
                    reply_url]
            )
        )

推荐答案

无法重现您的问题,请使用相同版本的azure-graphrbac,我在我这边测试您的代码,效果很好.

Could not reproduce your issue, use the same version of azure-graphrbac, I test your code on my side, it works fine.

testclient = GraphClient(client_id = "xxxxx",client_secret = "xxxxx", tenant_id = "xxxxx", object_id = "xxxxx")
testclient.add_reply_url(reply_url = "http://localhost:8085")

检查门户:

此外,我直接测试了sdk,两者都能正常工作.

Also, I test the sdk directly, both work.

from azure.common.credentials import ServicePrincipalCredentials
from azure.graphrbac import GraphRbacManagementClient
from azure.graphrbac.models import ApplicationUpdateParameters

_credentials = ServicePrincipalCredentials(
            client_id="xxxxx",
            secret="xxxxx",
            tenant="xxxxx",
            resource="https://graph.windows.net"
        )
_graph_client = GraphRbacManagementClient(
            credentials=_credentials,
            tenant_id="xxxxx"
        )
app = _graph_client.applications.patch(
    application_object_id = "xxxxx",
    parameters = ApplicationUpdateParameters(reply_urls = ["http://localhost:8080","http://localhost:8081"])                            
       )

这篇关于如何使用Python Azure SDK和Graph修补现有应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆