Create AADConditionalAccessPolicy.md
Родитель
766b58750b
Коммит
9b6c6b0c31
|
@ -0,0 +1,131 @@
|
||||||
|
# AADConditionalAccessPolicy
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
| Parameter | Attribute | DataType | Description | Allowed Values |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| **DisplayName** | Key | String | DisplayName of the AAD CA Policy ||
|
||||||
|
| **Id** | Write | String | Specifies the GUID for the Policy. ||
|
||||||
|
| **State** | Write | String | Specifies the State of the Policy. |disabled, enabled, enabledForReportingButNotEnforced|
|
||||||
|
| **IncludeApplications** | Write | StringArray[] | Cloud Apps in scope of the Policy. ||
|
||||||
|
| **ExcludeApplications** | Write | StringArray[] | Cloud Apps out of scope of the Policy. ||
|
||||||
|
| **IncludeUserActions** | Write | StringArray[] | User Actions in scope of the Policy. ||
|
||||||
|
| **IncludeUsers** | Write | StringArray[] | Users in scope of the Policy. ||
|
||||||
|
| **ExcludeUsers** | Write | StringArray[] | Users out of scope of the Policy. ||
|
||||||
|
| **IncludeGroups** | Write | StringArray[] | Groups in scope of the Policy. ||
|
||||||
|
| **ExcludeGroups** | Write | StringArray[] | Groups out of scope of the Policy. ||
|
||||||
|
| **IncludeRoles** | Write | StringArray[] | AAD Admin Roles in scope of the Policy. ||
|
||||||
|
| **ExcludeRoles** | Write | StringArray[] | AAD Admin Roles out of scope of the Policy. ||
|
||||||
|
| **IncludePlatforms** | Write | StringArray[] | Client Device Platforms in scope of the Policy. ||
|
||||||
|
| **ExcludePlatforms** | Write | StringArray[] | Client Device Platforms out of scope of the Policy. ||
|
||||||
|
| **IncludeLocations** | Write | StringArray[] | AAD Named Locations in scope of the Policy. ||
|
||||||
|
| **ExcludeLocations** | Write | StringArray[] | AAD Named Locations out of scope of the Policy. ||
|
||||||
|
| **IncludeDeviceStates** | Write | StringArray[] | Client Device Compliance states in scope of the Policy. ||
|
||||||
|
| **ExcludeDeviceStates** | Write | StringArray[] | Client Device Compliance states out of scope of the Policy. ||
|
||||||
|
| **UserRiskLevels** | Write | StringArray[] | AAD Identity Protection User Risk Levels in scope of the Policy. ||
|
||||||
|
| **SignInRiskLevels** | Write | StringArray[] | AAD Identity Protection Sign-in Risk Levels in scope of the Policy. ||
|
||||||
|
| **ClientAppTypes** | Write | StringArray[] | Client App types in scope of the Policy. ||
|
||||||
|
| **GrantControlOperator** | Write | String | Operator to be used for Grant Controls. |AND, OR|
|
||||||
|
| **BuiltInControls** | Write | StringArray[] | List of built-in Grant Controls to be applied by the Policy. ||
|
||||||
|
| **ApplicationEnforcedRestrictionsIsEnabled** | Write | Boolean | Specifies, whether Application Enforced Restrictions are enabled in the Policy. ||
|
||||||
|
| **CloudAppSecurityIsEnabled** | Write | Boolean | Specifies, whether Cloud App Security is enforced by the Policy. ||
|
||||||
|
| **CloudAppSecurityType** | Write | String | Specifies, what Cloud App Security control is enforced by the Policy. ||
|
||||||
|
| **SignInFrequencyValue** | Write | UInt32 | Sign in frequency time in the given unit to be enforced by the policy. ||
|
||||||
|
| **SignInFrequencyType** | Write | String | Sign in frequency unit (days/hours) to be interpreted by the policy. |Days, Hours, |
|
||||||
|
| **SignInFrequencyIsEnabled** | Write | Boolean | Specifies, whether sign-in frequency is enforced by the Policy. ||
|
||||||
|
| **PersistentBrowserIsEnabled** | Write | Boolean | Specifies, whether Browser Persistence is controlled by the Policy. ||
|
||||||
|
| **PersistentBrowserMode** | Write | String | Specifies, what Browser Persistence control is enforced by the Policy. |Always, Never, |
|
||||||
|
| **Ensure** | Write | String | Specify if the Azure AD CA Policy should exist or not. |Present, Absent|
|
||||||
|
| **GlobalAdminAccount** | Write | PSCredential | Credentials of the Azure Active Directory Admin ||
|
||||||
|
| **ApplicationId** | Write | String | Id of the Azure Active Directory application to authenticate with. ||
|
||||||
|
| **TenantId** | Write | String | Id of the Azure Active Directory tenant used for authentication. ||
|
||||||
|
| **CertificateThumbprint** | Write | String | Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. ||
|
||||||
|
|
||||||
|
# AADConditionalAccessPolicy
|
||||||
|
|
||||||
|
### Description
|
||||||
|
|
||||||
|
This resource configures an Azure Active Directory Conditional Access Policy.
|
||||||
|
|
||||||
|
## Azure AD Permissions
|
||||||
|
|
||||||
|
To authenticate via Azure Active Directory, this resource required the following Application permissions:
|
||||||
|
|
||||||
|
* **Automate**
|
||||||
|
* Application.Read.All
|
||||||
|
* Group.Read.All
|
||||||
|
* Directory.Read.All
|
||||||
|
* Policy.Read.All
|
||||||
|
* Policy.Read.ConditionalAccess
|
||||||
|
* Policy.ReadWrite.ConditionalAccess
|
||||||
|
* RoleManagement.Read.All
|
||||||
|
* RoleManagement.Read.Directory
|
||||||
|
* User.Read.All
|
||||||
|
|
||||||
|
* **Export**
|
||||||
|
* Application.Read.All
|
||||||
|
* Group.Read.All
|
||||||
|
* Directory.Read.All
|
||||||
|
* Policy.Read.All
|
||||||
|
* Policy.Read.ConditionalAccess
|
||||||
|
* RoleManagement.Read.All
|
||||||
|
* RoleManagement.Read.Directory
|
||||||
|
* User.Read.All
|
||||||
|
|
||||||
|
NOTE: All permisions listed above require admin consent.
|
||||||
|
|
||||||
|
Additionally Global Reader Role needs to be assigned, as long as AAD PowerShell is not fully converged to use GRAPH API
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Example 1
|
||||||
|
|
||||||
|
This example is used to test new resources and showcase the usage of new resources being worked on.
|
||||||
|
It is not meant to use as a production baseline.
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Configuration Example
|
||||||
|
{
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[PSCredential]
|
||||||
|
$credsGlobalAdmin
|
||||||
|
)
|
||||||
|
Import-DscResource -ModuleName Microsoft365DSC
|
||||||
|
|
||||||
|
node localhost
|
||||||
|
{
|
||||||
|
AADConditionalAccessPolicy Allin-example
|
||||||
|
{
|
||||||
|
GlobalAdminAccount = $credsGlobalAdmin;
|
||||||
|
BuiltInControls = @("Mfa", "CompliantDevice", "DomainJoinedDevice", "ApprovedApplication", "CompliantApplication");
|
||||||
|
ClientAppTypes = @("ExchangeActiveSync", "Browser", "MobileAppsAndDesktopClients", "Other");
|
||||||
|
CloudAppSecurityIsEnabled = $True;
|
||||||
|
CloudAppSecurityType = "MonitorOnly";
|
||||||
|
DisplayName = "Allin-example";
|
||||||
|
Ensure = "Present";
|
||||||
|
ExcludeApplications = @("803ee9ca-3f7f-4824-bd6e-0b99d720c35c", "00000012-0000-0000-c000-000000000000", "00000007-0000-0000-c000-000000000000", "Office365");
|
||||||
|
ExcludeDeviceStates = @("Compliant", "DomainJoined");
|
||||||
|
ExcludeLocations = @("Blocked Countries");
|
||||||
|
ExcludePlatforms = @("Windows", "WindowsPhone", "MacOS");
|
||||||
|
ExcludeRoles = @("Company Administrator", "Application Administrator", "Application Developer", "Cloud Application Administrator", "Cloud Device Administrator");
|
||||||
|
ExcludeUsers = @("admin@$OrganizationName", "AAdmin@$OrganizationName", "CAAdmin@$OrganizationName", "AllanD@$OrganizationName", "AlexW@$OrganizationName", "GuestsOrExternalUsers");
|
||||||
|
GrantControlOperator = "OR";
|
||||||
|
IncludeApplications = @("All");
|
||||||
|
IncludeDeviceStates = @("All");
|
||||||
|
IncludeLocations = @("AllTrusted");
|
||||||
|
IncludePlatforms = @("Android", "IOS");
|
||||||
|
IncludeUserActions = @();
|
||||||
|
IncludeUsers = @("All");
|
||||||
|
PersistentBrowserMode = "";
|
||||||
|
SignInFrequencyIsEnabled = $True;
|
||||||
|
SignInFrequencyType = "Hours";
|
||||||
|
SignInFrequencyValue = 5;
|
||||||
|
SignInRiskLevels = @("High", "Medium");
|
||||||
|
State = "disabled";
|
||||||
|
UserRiskLevels = @("High", "Medium");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
Загрузка…
Ссылка в новой задаче