Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Azure APIM将主键发送给用户?_Azure_Api_Azure Api Management - Fatal编程技术网

如何使用Azure APIM将主键发送给用户?

如何使用Azure APIM将主键发送给用户?,azure,api,azure-api-management,Azure,Api,Azure Api Management,我正在使用Azure APIM来控制用户如何与我的API交互。假设我禁用了用户完全访问API所需的批准。如何将新用户的授权密钥(即主键)发送到其电子邮件 我知道他们可以登录开发者门户,从他们的个人资料中获取这些信息。但我正在寻找一种通过编程实现此目的的方法。如果您想向新用户发送其授权密钥,您可以使用Azure管理API来完成此操作,只需尝试以下代码,通过用户电子邮件获取用户的所有授权密钥: from azure.identity import ClientSecretCredential imp

我正在使用Azure APIM来控制用户如何与我的API交互。假设我禁用了用户完全访问API所需的批准。如何将新用户的授权密钥(即主键)发送到其电子邮件


我知道他们可以登录开发者门户,从他们的个人资料中获取这些信息。但我正在寻找一种通过编程实现此目的的方法。

如果您想向新用户发送其授权密钥,您可以使用Azure管理API来完成此操作,只需尝试以下代码,通过用户电子邮件获取用户的所有授权密钥:

from azure.identity import ClientSecretCredential
import requests

resource_group = ''
APIM_name = ''
sub_id = ''
client_id = ''
client_secret =  ''
tenant_id = ''

user_email = ''

mgmt_Base_URL = "https://management.azure.com/subscriptions/"+sub_id+"/resourceGroups/"+resource_group+"/providers/Microsoft.ApiManagement/service/"+APIM_name

credentials = ClientSecretCredential(
    client_id = client_id,
    client_secret = client_secret,
    tenant_id = tenant_id 
)

accessToken = credentials.get_token('https://management.azure.com/.default')

def __main__():
    user = findUserByEmail(user_email)
    if user:
        subs = listSubOfUser(user['name'])['value']
        print("user subscriptions:")
        for sub in subs:
           
            print("name:"+ sub['properties']['displayName'] + " keys:")
            subKeys = getKeysBySubID(sub['id'])
            print(subKeys['primaryKey'])
            print(subKeys['secondaryKey'])
    else:
        print("no such user")


def findUserByEmail(email):
    reqURL =mgmt_Base_URL+ "/users?api-version=2019-12-01&$filter=email eq '" + email + "'"
    r= requests.get(reqURL,headers={"Authorization":"Bearer " + accessToken.token})
    result = r.json()
    if(len(result['value'])>0):
        return result['value'][0]   
    else:
        return None


def listSubOfUser(userID):
    reqURL = mgmt_Base_URL + "/subscriptions?api-version=2019-12-01&$filter=ownerId eq '"+userID+"'"
    r= requests.get(reqURL,headers={"Authorization":"Bearer " + accessToken.token})
    return r.json()

def getKeysBySubID(SubID):
    reqURL = "https://management.azure.com"  +SubID+"/listSecrets?api-version=2019-12-01"
    r= requests.post(reqURL,headers={"Authorization":"Bearer " + accessToken.token})
    return r.json()

__main__()
我已经在我这边进行了测试,它对我有效:


有关的更多操作。

您正在使用哪种编程语言?我正在使用Python 3.7。进展如何?你的问题解决了吗?非常感谢你,斯坦利。你解决了我的问题。干杯