2016-12-17 74 views
0

我想驗證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

回答

0

對於沒有情景的問題,沒有絕對正確的答案。通常,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或其他指定場景,請隨時告訴我並詳細說明您的問題。

相關問題