gpt4 book ai didi

Azure - 使用服务主体的用户的 MFA 详细信息

转载 作者:行者123 更新时间:2023-12-03 05:24:35 26 4
gpt4 key购买 nike

编写以下脚本以获取所有管理员的 MFA 状态。效果很好。但我想使用服务主体的凭据来运行它,并且看起来 Connect-MsolService 没有选项可以执行此操作。或者,Connect-AzAccount 可以选择执行此操作,但在 Az Powershell 中,我找不到获取用户的 MFA 详细信息的方法。

有没有办法使用服务主体获取用户的 MFA 详细信息?

Connect-MsolService
$output_file_location = "c:\temp\azure_admins_mfa_status_"+$(get-date -f yyyy-MM-dd-HH-mm-ss)+".csv"
$admin_roles = "Company Administrator","Billing Administrator","Conditional Access Administrator","Exchange Service administrator","Helpdesk administrator","Password administrator","Security administrator","Sharepoint Service administrator"

# Gets all the members in the admin roles in the roles list above
# Gets the MFA status for each member
# Appends the below data points to a file specified in the $output_file_location variable
# DisplayName,E-mail,Role,MFA-Requirements, MFA-Methods, MFA-MethodsDefault
function get-mfs-status
{
foreach ($roleName in $admin_roles)
{
write-output $roleName
$members = Get-MsolRoleMember -RoleObjectId $(Get-MsolRole -RoleName $roleName).ObjectId
#write-output $members
foreach ($member in $members)
{
write-output $member.EmailAddress

}

foreach ($member in $members)
{
write-output $member
Get-MsolUser -UserPrincipalName $member.EmailAddress | select DisplayName, `
@{N='E-mail';E={$_.userPrincipalName}}, `
@{N='Role';E={$roleName}}, `
@{N='MFA-Requirements';E={(($_).StrongAuthenticationRequirements.state)}}, `
@{N='MFA-Methods';E={(($_).StrongAuthenticationMethods.MethodType)}}, `
@{N='MFA-MethodsDefault';E={($_.StrongAuthenticationMethods | where isdefault -eq 'true').MethodType}} `
| select DisplayName,E-mail,Role, MFA-Requirements, MFA-Methods, MFA-MethodsDefault| Export-Csv $output_file_location -Append `
}

}


}

get-mfs-status

最佳答案

• 不,您无法通过 powershell 使用服务主体检索 Azure AD 中用户的 MFA 详细信息,因为服务主体是为 Azure 资源实例生成的,而不是为已分配了有关该资源的 Azure AD 角色的身份。已用它定义的范围。因此,尽管 Azure AD 管理员的身份具有托管组织的多个租户的整个订阅的范围,但已定义了与该范围相关的一些角色和分配。您可以使用登录到 Azure Powershell 的 ID 在登录 ID 的范围内创建服务主体,但无法检索 Azure AD 中用户的 MFA 状态,因为当您在变量中传递服务主体以将其作为凭据传递时,在线登录 Microsoft 365,它无法激活他们的身份凭据,并且 M365 不会考虑它。 Service Principal Defined

此外,要获取用户的 MFA 详细信息的状态,您必须连接到 MS Online,无法通过 Azure AD 检索它。即使您以纯文本形式转换服务主体 secret 并将其作为凭据传递以连接到 M365,它也不会考虑它,也不会激活凭据。 Connecting with Service Principal

• 相反,如果您使用实际凭据(即 ID 和密码)登录 Azure/M365,则只要您拥有所需的角色分配和访问权限,您将能够检索详细信息。

服务主体用法引用链接:- https://learn.microsoft.com/en-us/powershell/azure/create-azure-service-principal-azureps?view=azps-6.6.0

关于Azure - 使用服务主体的用户的 MFA 详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70041810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com