如何使用Azure APIM将主键发送给用户?
我正在使用Azure APIM来控制用户如何与我的API交互。假设我禁用了用户完全访问API所需的批准。如何将新用户的授权密钥(即主键)发送到其电子邮件如何使用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管理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。进展如何?你的问题解决了吗?非常感谢你,斯坦利。你解决了我的问题。干杯