我有一个 C# 应用程序,需要模拟为 Azure 应用程序注册才能访问某些资源。
我已设置联合凭据以允许托管身份冒充应用程序。因此,我可以在虚拟机上使用如下代码,使用托管身份凭证来模拟应用程序注册:
var clientAssertionCredential = new ClientAssertionCredential(
tenantId, clientId, new ManagedIdentityClientAssertion(miClientId).GetSignedAssertion);
但是,在开发过程中,我想在本地运行代码。
虽然我可以创建客户端密钥,将其存储在 KeyVault 中,并使用它作为应用程序进行身份验证,但出于安全考虑,我不想使用此方法。
是否可以使用用户帐户的凭据(例如
AzureCliCredential
或 VisualStudioCredential
)冒充应用程序?
虽然我可以创建客户端密钥,将其存储在 KeyVault 中,并使用它作为应用程序进行身份验证,但出于安全考虑,我不想使用此方法。是否可以使用用户帐户的凭据(例如
或AzureCliCredential
)冒充应用程序?VisualStudioCredential
根据场景,您可以使用 ROPC 流程对用户帐户进行身份验证,并使用应用程序调用 API。
注:
要求:
https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
client_id: ClientID
scope: https://graph.microsoft.com/.default offline_access openid
username: [email protected]
password: UserPassword
grant_type: password
client_secret: Clientsecret
从上面,您将获得令牌,并且使用令牌,您可以调用Microsoft Graph API。
要求:
GET https://graph.microsoft.com/v1.0/me
Authorization:
Bearer <token>
为了避免传递 client_secret,请启用公共客户端流,如下所示。
传送门:
参考: