MSOL模块将弃用,如何用Microsoft Graph实现Set-MsolPasswordPolicy功能?
用Microsoft Graph API替代Set-MsolPasswordPolicy的实现方案
Set-MsolPasswordPolicy主要用来配置租户或特定域的全局密码策略(包括密码有效期、到期通知天数等),对应的Graph API操作分两种场景:
一、租户级全局密码策略配置
针对整个租户的密码策略,需要调用PATCH /organization/{organizationId}接口,修改以下核心属性:
maxPasswordAge:对应Set-MsolPasswordPolicy的-MaxPasswordAge参数,值为ISO 8601格式的持续时间(比如P90D代表90天)passwordNotificationWindow:对应-NotificationDays参数,同样用ISO 8601持续时间格式(比如P14D代表提前14天通知)passwordPolicies:可选,用来控制是否禁用强密码(DisableStrongPassword)或禁用密码过期(DisablePasswordExpiration),注意如果设置了DisablePasswordExpiration,maxPasswordAge会失效
示例请求
PATCH https://graph.microsoft.com/v1.0/organization/{你的租户ID} Content-Type: application/json { "maxPasswordAge": "P90D", "passwordNotificationWindow": "P14D", "passwordPolicies": "" // 若需要强密码则留空,禁用则设为"DisableStrongPassword" }
二、特定域的密码策略配置
如果需要针对单个域设置密码策略,调用PATCH /domains/{domainId}接口,修改和租户级一致的maxPasswordAge、passwordNotificationWindow属性即可。
示例请求
PATCH https://graph.microsoft.com/v1.0/domains/{目标域名或域ID} Content-Type: application/json { "maxPasswordAge": "P180D", "passwordNotificationWindow": "P7D" }
权限要求
- 租户级配置:需要
Organization.ReadWrite.All权限(应用权限或委派权限,委派需全局管理员角色) - 域级配置:需要
Domain.ReadWrite.All权限(同上)
注意:用户对象下的passwordPolicies是针对单个用户的个性化设置(比如单独给某用户设置密码永不失效),和Set-MsolPasswordPolicy的全局/域级策略不是一回事,别搞混。
内容的提问来源于stack exchange,提问作者Quinn Favo
相关产品推荐
相关产品推荐

