Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
… into ade-firewall
  • Loading branch information
msmbaldwin committed Feb 28, 2020
2 parents 6dd4deb + 9b13c74 commit 4f6885f
Show file tree
Hide file tree
Showing 66 changed files with 1,504 additions and 365 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ If you don't yet have a SAML service provider and an associated metadata endpoin

## 1. Set up certificates

To build a trust relationship between your service provider and Azure AD B2C, you need to provide X509 certificates and their private keys.
To build a trust relationship between your service provider and Azure AD B2C, you need to provide the web app X509 certificates.

* **Service provider certificates**
* Certificate with a private key stored in your Web App. This certificate is used by your service provider to sign the SAML request sent to Azure AD B2C. Azure AD B2C reads the public key from the service provider metadata to validate the signature.
Expand Down
219 changes: 216 additions & 3 deletions articles/active-directory/fundamentals/whats-new-archive.md

Large diffs are not rendered by default.

348 changes: 134 additions & 214 deletions articles/active-directory/fundamentals/whats-new.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions articles/active-directory/governance/TOC.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@
href: entitlement-management-external-users.md
- name: View reports and logs
href: entitlement-management-reports.md
- name: Archive logs and reporting
href: entitlement-management-logs-and-reporting.md
- name: Troubleshoot
href: entitlement-management-troubleshoot.md
- name: Catalog owners
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
---
title: Archive & report with Azure Monitor - Azure AD entitlement management
description: Learn how to archive logs and create reports with Azure Monitor in Azure Active Directory entitlement management.
services: active-directory
documentationCenter: ''
author: msaburnley
manager: daveba
editor:
ms.service: active-directory
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
ms.subservice: compliance
ms.date: 02/27/2020
ms.author: ajburnle
ms.reviewer:
ms.collection: M365-identity-device-management


#Customer intent: As an administrator, I want to extend data retention in entitlement management past the default period by using Azure Monitor.

---
# Archive logs and reporting on Azure AD entitlement management in Azure Monitor

Azure AD stores audit events for up to 30 days in the audit log. However, you can keep the audit data for longer than the default retention period, outlined in [How long does Azure AD store reporting data?](../reports-monitoring/reference-reports-data-retention.md), by routing it to an Azure Storage account or using Azure Monitor. You can then use workbooks and custom queries and reports on this data.


## Configure Azure AD to use Azure Monitor
Before using the Azure Monitor workbooks, you must configure Azure AD to send a copy of its audit logs to Azure Monitor.

Archiving Azure AD audit logs requires you to have Azure Monitor in an Azure subscription. You can read more about the prerequisites and estimated costs of using Azure Monitor in [Azure AD activity logs in Azure Monitor](../reports-monitoring/concept-activity-logs-azure-monitor.md).

**Prerequisite role**: Global Admin

1. Sign in to the Azure portal as a user who is a Global Admin. Make sure you have access to the resource group containing the Azure Monitor workspace.

1. Select **Azure Active Directory** then click **Diagnostic settings** under Monitoring in the left navigation menu. Check if there's already a setting to send the audit logs to that workspace.

1. If there isn't already a setting, click **Add diagnostic setting**. Use the instructions in the article [Integrate Azure AD logs with Azure Monitor logs](../reports-monitoring/howto-integrate-activity-logs-with-log-analytics.md#send-logs-to-azure-monitor)
to send the Azure AD audit log to the Azure Monitor workspace.

![Diagnostics settings pane](./media/entitlement-management-logs-and-reporting/audit-log-diagnostics-settings.png)


1. After the log is sent to Azure Monitor, select **Log Analytics workspaces**, and select the workspace that contains the Azure AD audit logs.

1. Select **Usage and estimated costs** and click **Data Retention**. Change the slider to the number of days you want to keep the data to meet your auditing requirements.

![Log Analytics workspaces pane](./media/entitlement-management-logs-and-reporting/log-analytics-workspaces.png)

## Create custom Azure Monitor queries using the Azure portal
You can create your own queries on Azure AD audit events, including entitlement management events.

1. In Azure Active Directory of the Azure portal, click **Logs** under the Monitoring section in the left navigation menu to create a new query page.

1. Your workspace should be shown in the upper left of the query page. If you have multiple Azure Monitor workspaces, and the workspace you're using to store Azure AD audit events isn't shown, click **Select Scope**. Then, select the correct subscription and workspace.

1. Next, in the query text area, delete the string “search *” and replace it with the following query:

```
AuditLogs | where Category == "EntitlementManagement"
```
1. Then click **Run**.
![Click Run to start query](./media/entitlement-management-logs-and-reporting/run-query.png)
The table will show the Audit log events for entitlement management from the last hour by default. You can change the “Time range” setting to view older events. However, changing this setting will only show events that occurred after Azure AD was configured to send events to Azure Monitor.
If you would like to know the oldest and newest audit events held in Azure Monitor, use the following query:
```
AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type
```
For more information on the columns that are stored for audit events in Azure Monitor, see [Interpret the Azure AD audit logs schema in Azure Monitor](../reports-monitoring/reference-azure-monitor-audit-log-schema.md).
## Create custom Azure Monitor queries using Azure PowerShell
You can access logs through PowerShell after you've configured Azure AD to send logs to Azure Monitor. Then, send queries from scripts or the PowerShell command line, without needing to be a Global Admin in the tenant.
### Ensure the user or service principal has the correct role assignment
Make sure you, the user or service principal that will authenticate to Azure AD, are in the appropriate Azure role in the Log Analytics workspace. The role options are either Log Analytics Reader or the Log Analytics Contributor. If you're already in one of those roles, then skip to [Retrieve Log Analytics ID with one Azure subscription](#retrieve-log-analytics-id-with-one-azure-subscription).
To set the role assignment and create a query, do the following steps:
1. In the Azure portal, locate the [Log Analytics workspace](https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/Microsoft.OperationalInsights%2Fworkspaces
).
1. Select **Access Control (IAM)**.
1. Then click **Add** to add a role assignment.
![Add a role assignment](./media/entitlement-management-logs-and-reporting/workspace-set-role-assignment.png)
### Install Azure PowerShell module
Once you have the appropriate role assignment, launch PowerShell, and [install the Azure PowerShell module](/powershell/azure/install-az-ps?view=azps-3.3.0) (if you haven’t already), by typing:
```azurepowershell
install-module -Name az -allowClobber -Scope CurrentUser
```

Now you're ready to authenticate to Azure AD, and retrieve the id of the Log Analytics workspace you’re querying.

### Retrieve Log Analytics ID with one Azure subscription
If you have only a single Azure subscription, and a single Log Analytics workspace, then type the following to authenticate to Azure AD, connect to that subscription, and retrieve that workspace:

```azurepowershell
Connect-AzAccount
$wks = Get-AzOperationalInsightsWorkspace
```

### Retrieve Log Analytics ID with multiple Azure subscriptions

[Get-AzOperationalInsightsWorkspace](/powershell/module/Az.OperationalInsights/Get-AzOperationalInsightsWorkspace) operates in one subscription at a time. So, if you have multiple Azure subscriptions, you'll want to make sure you connect to the one that has the Log Analytics workspace with the Azure AD logs.

The following cmdlets display a list of subscriptions, and find the id of the subscription that has the Log Analytics workspace:

```azurepowershell
Connect-AzAccount
$subs = Get-AzSubscription
$subs | ft
```

You can reauthenticate and associate your PowerShell session to that subscription using a command such as `Connect-AzAccount –Subscription $subs[0].id`. To learn more about how to authenticate to Azure from PowerShell, including non-interactively, see [Sign in with Azure PowerShell](/powershell/azure/authenticate-azureps?view=azps-3.3.0&viewFallbackFrom=azps-2.5.0
).

If you have multiple Log Analytics workspaces in that subscription, then the cmdlet [Get-AzOperationalInsightsWorkspace](/powershell/module/Az.OperationalInsights/Get-AzOperationalInsightsWorkspace) returns the list of workspaces. Then you can find the one that has the Azure AD logs. The `CustomerId` field returned by this cmdlet is the same as the value of the "Workspace id" displayed in the Azure portal in the Log Analytics workspace overview.

```powershell
$wks = Get-AzOperationalInsightsWorkspace
$wks | ft CustomerId, Name
```

### Send the query to the Log Analytics workspace
Finally, once you have a workspace identified, you can use [Invoke-AzOperationalInsightsQuery](/powershell/module/az.operationalinsights/Invoke-AzOperationalInsightsQuery?view=azps-3.3.0
) to send a Kusto query to that workspace. These queries are written in [Kusto query language](https://docs.microsoft.com/azure/kusto/query/).

For example, you can retrieve the date range of the audit event records from the Log Analytics workspace, with PowerShell cmdlets to send a query like:

```powershell
$aQuery = "AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type"
$aResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $aQuery
$aResponse.Results |ft
```

You can also retrieve entitlement management events using a query like:

```azurepowershell
$bQuery = = 'AuditLogs | where Category == "EntitlementManagement"'
$bResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $Query
$bResponse.Results |ft
```

## Next steps:
- [Create interactive reports with Azure Monitor workbooks](../../azure-monitor/app/usage-workbooks.md)

Original file line number Diff line number Diff line change
Expand Up @@ -108,5 +108,6 @@ When the user's access package assignment expires, is canceled by the user, or r

## Next steps

- [Archive reports and Logs](entitlement-management-logs-and-reporting.md)
- [Troubleshoot Azure AD entitlement management](entitlement-management-troubleshoot.md)
- [Common scenarios](entitlement-management-scenarios.md)
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ There are several ways that you can configure entitlement management for your or

1. Open an access package
1. [View assignments](entitlement-management-access-package-assignments.md#view-who-has-an-assignment)
1. [Archive reports and logs](entitlement-management-logs-and-reporting.md)

### Administrator: View resources assigned to users

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 8 additions & 15 deletions articles/aks/ingress-static-ip.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ You can also:

This article assumes that you have an existing AKS cluster. If you need an AKS cluster, see the AKS quickstart [using the Azure CLI][aks-quickstart-cli] or [using the Azure portal][aks-quickstart-portal].

This article uses Helm to install the NGINX ingress controller, cert-manager, and a sample web app. You need to have Helm initialized within your AKS cluster and using a service account for Tiller. Make sure that you are using the latest release of Helm 3. For upgrade instructions, see the [Helm install docs][helm-install]. For more information on configuring and using Helm, see [Install applications with Helm in Azure Kubernetes Service (AKS)][use-helm].
This article uses Helm to install the NGINX ingress controller, cert-manager, and a sample web app. Make sure that you are using the latest release of Helm. For upgrade instructions, see the [Helm install docs][helm-install]. For more information on configuring and using Helm, see [Install applications with Helm in Azure Kubernetes Service (AKS)][use-helm].

This article also requires that you are running the Azure CLI version 2.0.64 or later. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][azure-cli-install].

Expand Down Expand Up @@ -114,13 +114,10 @@ To install the cert-manager controller in an RBAC-enabled cluster, use the follo

```console
# Install the CustomResourceDefinition resources separately
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.12/deploy/manifests/00-crds.yaml

# Create the namespace for cert-manager
kubectl create namespace cert-manager
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.13/deploy/manifests/00-crds.yaml

# Label the cert-manager namespace to disable resource validation
kubectl label namespace cert-manager cert-manager.io/disable-validation=true
kubectl label namespace ingress-basic cert-manager.io/disable-validation=true

# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io
Expand All @@ -131,8 +128,8 @@ helm repo update
# Install the cert-manager Helm chart
helm install \
cert-manager \
--namespace cert-manager \
--version v0.12.0 \
--namespace ingress-basic \
--version v0.13.0 \
jetstack/cert-manager
```

Expand All @@ -149,7 +146,6 @@ apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
namespace: ingress-basic
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
Expand All @@ -165,7 +161,7 @@ spec:
To create the issuer, use the `kubectl apply -f cluster-issuer.yaml` command.

```
$ kubectl apply -f cluster-issuer.yaml
$ kubectl apply -f cluster-issuer.yaml --namespace ingress-basic

clusterissuer.cert-manager.io/letsencrypt-staging created
```
Expand Down Expand Up @@ -345,20 +341,17 @@ NAME NAMESPACE REVISION UPDATED
aks-helloworld ingress-basic 1 2020-01-11 15:02:21.51172346 deployed aks-helloworld-0.1.0
aks-helloworld-2 ingress-basic 1 2020-01-11 15:03:10.533465598 deployed aks-helloworld-0.1.0
nginx-ingress ingress-basic 1 2020-01-11 14:51:03.454165006 deployed nginx-ingress-1.28.2 0.26.2
cert-manager cert-manager 1 2020-01-06 21:19:03.866212286 deployed cert-manager-v0.12.0 v0.12.0
cert-manager ingress-basic 1 2020-01-06 21:19:03.866212286 deployed cert-manager-v0.13.0 v0.13.0
```

Delete the releases with the `helm uninstall` command. The following example deletes the NGINX ingress deployment, certificate manager, and the two sample AKS hello world apps.

```
$ helm uninstall aks-helloworld aks-helloworld-2 nginx-ingress -n ingress-basic
$ helm uninstall aks-helloworld aks-helloworld-2 nginx-ingress cert-manager -n ingress-basic
release "aks-helloworld" deleted
release "aks-helloworld-2" deleted
release "nginx-ingress" deleted
$ helm uninstall cert-manager -n cert-manager
release "cert-manager" deleted
```

Expand Down
18 changes: 11 additions & 7 deletions articles/aks/ingress-tls.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ To get the public IP address, use the `kubectl get service` command. It takes a
$ kubectl get service -l app=nginx-ingress --namespace ingress-basic
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
billowing-kitten-nginx-ingress-controller LoadBalancer 10.0.182.160 MY_EXTERNAL_IP 80:30920/TCP,443:30426/TCP 20m
billowing-kitten-nginx-ingress-default-backend ClusterIP 10.0.255.77 <none> 80/TCP 20m
nginx-ingress-controller LoadBalancer 10.0.182.160 MY_EXTERNAL_IP 80:30920/TCP,443:30426/TCP 20m
nginx-ingress-default-backend ClusterIP 10.0.255.77 <none> 80/TCP 20m
```

No ingress rules have been created yet. If you browse to the public IP address, the NGINX ingress controller's default 404 page is displayed.
Expand Down Expand Up @@ -114,10 +114,10 @@ To install the cert-manager controller:
```console
# Install the CustomResourceDefinition resources separately
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.12/deploy/manifests/00-crds.yaml --namespace ingress-basic
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.13/deploy/manifests/00-crds.yaml
# Label the ingress-basic namespace to disable resource validation
kubectl label namespace ingress-basic certmanager.k8s.io/disable-validation=true
kubectl label namespace ingress-basic cert-manager.io/disable-validation=true
# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io
Expand All @@ -126,7 +126,11 @@ helm repo add jetstack https://charts.jetstack.io
helm repo update
# Install the cert-manager Helm chart
helm install cert-manager --namespace ingress-basic --version v0.12.0 jetstack/cert-manager --set ingressShim.defaultIssuerName=letsencrypt --set ingressShim.defaultIssuerKind=ClusterIssuer
helm install \
cert-manager \
--namespace ingress-basic \
--version v0.13.0 \
jetstack/cert-manager
```
For more information on cert-manager configuration, see the [cert-manager project][cert-manager].
Expand Down Expand Up @@ -300,14 +304,14 @@ $ helm list --namespace ingress-basic
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
aks-helloworld ingress-basic 1 2020-01-15 10:24:32.054871 -0600 CST deployed aks-helloworld-0.1.0
aks-helloworld-two ingress-basic 1 2020-01-15 10:24:37.671667 -0600 CST deployed aks-helloworld-0.1.0
cert-manager ingress-basic 1 2020-01-15 10:23:36.515514 -0600 CST deployed cert-manager-v0.12.0 v0.12.0
cert-manager ingress-basic 1 2020-01-15 10:23:36.515514 -0600 CST deployed cert-manager-v0.13.0 v0.13.0
nginx ingress-basic 1 2020-01-15 10:09:45.982693 -0600 CST deployed nginx-ingress-1.29.1 0.27.0
```

Delete the releases with the `helm delete` command. The following example deletes the NGINX ingress deployment, and the two sample AKS hello world apps.

```
$ helm delete aks-helloworld aks-helloworld-two cert-manager nginx --namespace ingress-basic
$ helm uninstall aks-helloworld aks-helloworld-two cert-manager nginx --namespace ingress-basic
release "aks-helloworld" uninstalled
release "aks-helloworld-two" uninstalled
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ms.custom: seodec18
ms.service: cognitive-services
ms.subservice: language-understanding
ms.topic: conceptual
ms.date: 12/30/2019
ms.date: 02/28/2020
ms.author: diberry
---

Expand All @@ -27,7 +27,10 @@ If you do not have an Azure subscription, [sign up](https://azure.microsoft.com/

## Access the migration process

On a weekly basis, you are prompted to migrate your apps. You can cancel this window without migrating. If you want to migrate before the next scheduled period, you can begin the migration process from the **Lock** icon on the top tool bar of the LUIS portal.
On a weekly basis, you are prompted to migrate your apps. You can cancel this window without migrating. If you want to migrate before the next scheduled period, you can begin the migration process from the **Azure** icon on the top tool bar of the LUIS portal.

> [!div class="mx-imgBorder"]
> ![Migration icon](./media/migrate-authoring-key/migration-button.png)
## App owner begins the migration process

Expand Down
Loading

0 comments on commit 4f6885f

Please sign in to comment.