我正在使用以下adal库来获取Oauth2令牌(AAD)。
https://github.com/AzureAD/azure-activedirectory-library-for-python
以下代码确实有效,我可以获取我的令牌: https://github.com/AzureAD/azure-activedirectory-library-for-python/blob/dev/sample/certificate_credentials_sample.py
但在我的具体情况下,我希望能够通过提供用户名和密码(密码授予类型)获取令牌
有什么想法吗?
谢谢,
答案 0 :(得分:1)
没有详细记录,但最新的(0.4.4)
仍然可以使用用户/密码验证context = adal.AuthenticationContext('https://login.microsoftonline.com/common')
context.acquire_token_with_username_password(
'https://management.core.windows.net',
'me@outlook.com',
'password',
'04b07795-8ddb-461a-bbee-02f9e1bf7b46')
答案 1 :(得分:0)
由于某些原因,该库删除了使用用户名密码进行身份验证的可能性,最新版本。
然而,使用3.13.8.999这个版本的Microsoft.IdentityModel.Clients.ActiveDirectory nuget包,这不是最新的,但正是你需要的。
然后就像这样
string tenantname = ConfigurationManager.AppSettings["ida:Tenant"];
string clientId = ConfigurationManager.AppSettings["ida:ClientID"];
string authority = $"https://login.microsoftonline.com/{tenantname}";
var authenticationContext = new AuthenticationContext(authority, null);
string username = $"{UserName}@{tenantname}";
var userCred = new UserPasswordCredential(username, Password);
AuthenticationResult authResult = await authenticationContext.AcquireTokenAsync(clientId, clientId, userCred);
希望这就是你要找的东西。