我可以在不为我的机器生成证书的情况下验证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)
答
对于没有情景的问题,没有绝对正确的答案。通常,Azure上有两种身份验证方式,其中包括使用AAD &使用管理证书,并且与Azure资源管理(ARM)&服务管理(ASM)相关。
例如,如果你想创建在Azure中的服务,您可以通过标记它们通过需要为服务器&一个.cer文件管理证书需要client_id
& client_secret
,或也与ASM做ARM认证。客户端的pem文件。
作为参考,您可以按照以下文档在Python中了解它们。
- 对于ARM,https://azure-sdk-for-python.readthedocs.io/en/v2.0.0rc4/resourcemanagement.html
- 对于ASM,https://azure-sdk-for-python.readthedocs.io/en/v2.0.0rc4/servicemanagement.html
同时,你可以知道通过搜索在搜索引擎或MS Azure Search,以上细节关键词(如Azure Resource Management Authentication
,ASM authenticate
,等等)通过在GitHub上的Python的ADAL项目@LaurentMazuel说。
希望它有帮助。如果您需要更多帮助来创建VM或其他指定场景,请随时告诉我并详细说明您的问题。
你的问题并不清楚你的真实情况。但是,根据我的经验,我认为[文档](https://docs.microsoft.com/en-us/rest/api/#create-the-request)介绍了如何创建请求来获取访问令牌来自Azure AD对您有所帮助。如果您可以改进描述,我想我可以回复更多有用的细节。 –
我不是建议这是一个解决方案,只是想确保你知道来自MS的ADAL(https://github.com/AzureAD/azure-activedirectory-library-for-python)为你做这件事。如果你知道它存在但不想因为某种原因使用它,那很好。 –
@ PeterPan-MSFT我编辑了我的问题。 – user3837980