我可以在不为我的机器生成证书的情况下验证Azure凭证吗?

问题描述:

我想验证client_id,client_secret(使api调用Azure所需的所有基本凭据)。我想有一种方法是使用给定的client_id,client_secret等来生成令牌。
这是做这件事的正确方法吗?如果是的话,我还需要什么?我需要为我的机器上传证书吗?如果不是,我该怎么做?我可以在不为我的机器生成证书的情况下验证Azure凭证吗?

def get_token(self, client_id, client_secret, endpoint_url, resource_url=None): 
    if not resource_url: 
     resource_url = 'https://management.core.windows.net/' 
    payload = { 
     'grant_type': 'client_credentials', 
     'client_id': client_id, 
     'client_secret': client_secret, 
     'resource': resource_url, 
    } 
    try: 
     response = requests.post(endpoint_url, data=payload).json() 
     token = response.get('access_token') 
     if token: 
      return token 
    except Exception as e: 
     LOG.exception(e.message) 
+0

你的问题并不清楚你的真实情况。但是,根据我的经验,我认为[文档](https://docs.microsoft.com/en-us/rest/api/#create-the-request)介绍了如何创建请求来获取访问令牌来自Azure AD对您有所帮助。如果您可以改进描述,我想我可以回复更多有用的细节。 –

+0

我不是建议这是一个解决方案,只是想确保你知道来自MS的ADAL(https://github.com/AzureAD/azure-activedirectory-library-for-python)为你做这件事。如果你知道它存在但不想因为某种原因使用它,那很好。 –

+0

@ PeterPan-MSFT我编辑了我的问题。 – user3837980

对于没有情景的问题,没有绝对正确的答案。通常,Azure上有两种身份验证方式,其中包括使用AAD &使用管理证书,并且与Azure资源管理(ARM)&服务管理(ASM)相关。

例如,如果你想创建在Azure中的服务,您可以通过标记它们通过需要为服务器&一个.cer文件管理证书需要client_id & client_secret,或也与ASM做ARM认证。客户端的pem文件。

作为参考,您可以按照以下文档在Python中了解它们。

  1. 对于ARM,https://azure-sdk-for-python.readthedocs.io/en/v2.0.0rc4/resourcemanagement.html
  2. 对于ASM,https://azure-sdk-for-python.readthedocs.io/en/v2.0.0rc4/servicemanagement.html

同时,你可以知道通过搜索在搜索引擎或MS Azure Search,以上细节关键词(如Azure Resource Management AuthenticationASM authenticate,等等)通过在GitHub上的Python的ADAL项目@LaurentMazuel说。

希望它有帮助。如果您需要更多帮助来创建VM或其他指定场景,请随时告诉我并详细说明您的问题。