无法以编程方式授权为用户
Unable to auth as user programmatically
我正在使用以下代码(python,但这并不重要,使用 powershell 和 invoke-webrequest 得到相同的结果):
from msrestazure.azure_active_directory import UserPassCredentials
username = '%username%'
password = '%password%'
client_id = '{Azure AD Application GUID}'
secret_id = '{Azure AD Application secret}'
credentials = UserPassCredentials(username, password, client_id, secret_id)
这适用于一个租户中的用户,但不适用于另一个出现奇怪错误的租户的用户:
msrest.exceptions.AuthenticationError: , InvalidGrantError:
(invalid_grant) AADSTS70002: Error validating credentials.
AADSTS50126: Invalid username or password
我可以使用相同的凭据使用门户登录。有问题的租户正在使用 AAD 同步和 SSO,这会干扰吗?
如果是,我如何为这样的 Azure AD 中的用户获取令牌?
我非常确定在尝试使用 Azure AD 登录时使用 资源所有者密码凭据授予 的严重安全隐患。
还有几个 issues/side 效果:
- 如果您的帐户启用了 MFA/条件访问,那么您将无法使用资源所有者密码凭据授权登录。时期。没办法。
- 如果您的域是
federated
(就像您的情况一样),您将无法登录。如果您还执行密码哈希同步,则有可能登录,但我不确定这是否有帮助。
最后,验证后端和非用户交互进程的最佳方法是使用 Service Principal
。
查看以下文档来源以了解有关 Azure AD 中的服务主体以及如何使用服务主体进行身份验证的更多信息:
我正在使用以下代码(python,但这并不重要,使用 powershell 和 invoke-webrequest 得到相同的结果):
from msrestazure.azure_active_directory import UserPassCredentials
username = '%username%'
password = '%password%'
client_id = '{Azure AD Application GUID}'
secret_id = '{Azure AD Application secret}'
credentials = UserPassCredentials(username, password, client_id, secret_id)
这适用于一个租户中的用户,但不适用于另一个出现奇怪错误的租户的用户:
msrest.exceptions.AuthenticationError: , InvalidGrantError: (invalid_grant) AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password
我可以使用相同的凭据使用门户登录。有问题的租户正在使用 AAD 同步和 SSO,这会干扰吗?
如果是,我如何为这样的 Azure AD 中的用户获取令牌?
我非常确定在尝试使用 Azure AD 登录时使用 资源所有者密码凭据授予 的严重安全隐患。
还有几个 issues/side 效果:
- 如果您的帐户启用了 MFA/条件访问,那么您将无法使用资源所有者密码凭据授权登录。时期。没办法。
- 如果您的域是
federated
(就像您的情况一样),您将无法登录。如果您还执行密码哈希同步,则有可能登录,但我不确定这是否有帮助。
最后,验证后端和非用户交互进程的最佳方法是使用 Service Principal
。
查看以下文档来源以了解有关 Azure AD 中的服务主体以及如何使用服务主体进行身份验证的更多信息: