Skip to content

Commit d87a7d9

Browse files
Merge pull request #207557 from rahul-nagraj/enforce-saml-authentication
Added howto-Enforce-Signed-SAML-Authentication page
2 parents 6905e9d + c2a3d3c commit d87a7d9

File tree

4 files changed

+85
-9
lines changed

4 files changed

+85
-9
lines changed

.openpublishing.redirection.active-directory.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10831,11 +10831,6 @@
1083110831
"redirect_url": "/azure/active-directory/manage-apps/tutorial-manage-certificates-for-federated-single-sign-on",
1083210832
"redirect_document_id": false
1083310833
},
10834-
{
10835-
"source_path": "articles/active-directory/manage-apps/howto-enforce-signed-saml-authentication.md",
10836-
"redirect_url": "/azure/active-directory/manage-apps/howto-saml-token-encryption",
10837-
"redirect_document_id": true
10838-
},
1083910834
{
1084010835
"source_path": "articles/active-directory/manage-apps/recover-deleted-apps-faq.md",
1084110836
"redirect_url": "/azure/active-directory/manage-apps/delete-recover-faq",

articles/active-directory/develop/single-sign-on-saml-protocol.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.subservice: develop
1111
ms.workload: identity
1212
ms.topic: conceptual
13-
ms.date: 02/05/2022
13+
ms.date: 08/31/2022
1414
ms.author: kenwith
1515
ms.custom: aaddev
1616
ms.reviewer: paulgarn
@@ -43,7 +43,7 @@ To request a user authentication, cloud services send an `AuthnRequest` element
4343

4444
| Parameter | Type | Description |
4545
| --- | --- | --- |
46-
| ID | Required | Azure AD uses this attribute to populate the `InResponseTo` attribute of the returned response. ID must not begin with a number, so a common strategy is to prepend a string like "id" to the string representation of a GUID. For example, `id6c1c178c166d486687be4aaf5e482730` is a valid ID. |
46+
| ID | Required | Azure AD uses this attribute to populate the `InResponseTo` attribute of the returned response. ID must not begin with a number, so a common strategy is to prepend a string like "ID" to the string representation of a GUID. For example, `id6c1c178c166d486687be4aaf5e482730` is a valid ID. |
4747
| Version | Required | This parameter should be set to **2.0**. |
4848
| IssueInstant | Required | This is a DateTime string with a UTC value and [round-trip format ("o")](/dotnet/standard/base-types/standard-date-and-time-format-strings). Azure AD expects a DateTime value of this type, but doesn't evaluate or use the value. |
4949
| AssertionConsumerServiceURL | Optional | If provided, this parameter must match the `RedirectUri` of the cloud service in Azure AD. |
@@ -97,7 +97,7 @@ If provided, don't include the `ProxyCount` attribute, `IDPListOption` or `Reque
9797

9898
### Signature
9999

100-
A `Signature` element in `AuthnRequest` elements is optional. Azure AD does not validate signed authentication requests if a signature is present. Requestor verification is provided for by only responding to registered Assertion Consumer Service URLs.
100+
A `Signature` element in `AuthnRequest` elements is optional. Azure AD can be configured (Preview) to enforce the requirement of signed authentication requests. If enabled, only signed authentication requests are accepted, otherwise the requestor verification is provided for by only responding to registered Assertion Consumer Service URLs.
101101

102102
### Subject
103103

@@ -217,7 +217,7 @@ To generate this digital signature, Azure AD uses the signing key in the `IDPSSO
217217

218218
#### Subject
219219

220-
This specifies the principal that is the subject of the statements in the assertion. It contains a `NameID` element, which represents the authenticated user. The `NameID` value is a targeted identifier that is directed only to the service provider that is the audience for the token. It is persistent - it can be revoked, but is never reassigned. It is also opaque, in that it does not reveal anything about the user and cannot be used as an identifier for attribute queries.
220+
This specifies the principle that is the subject of the statements in the assertion. It contains a `NameID` element, which represents the authenticated user. The `NameID` value is a targeted identifier that is directed only to the service provider that is the audience for the token. It is persistent - it can be revoked, but is never reassigned. It is also opaque, in that it does not reveal anything about the user and cannot be used as an identifier for attribute queries.
221221

222222
The `Method` attribute of the `SubjectConfirmation` element is always set to `urn:oasis:names:tc:SAML:2.0:cm:bearer`.
223223

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
title: Enforce signed SAML authentication requests
3+
description: Learn how to enforce signed SAML authentication requests.
4+
services: active-directory
5+
author: AllisonAm
6+
manager: CelesteDG
7+
ms.service: active-directory
8+
ms.subservice: app-mgmt
9+
ms.workload: identity
10+
ms.topic: conceptual
11+
ms.date: 06/29/2022
12+
ms.author: alamaral
13+
ms.collection: M365-identity-device-management
14+
---
15+
16+
17+
# SAML Request Signature Verification (Preview)
18+
19+
SAML Request Signature Verification is a functionality that validates the signature of signed authentication requests. An App Admin now can enable and disable the enforcement of signed requests and upload the public keys that should be used to do the validation.
20+
21+
If enabled Azure Active Directory will validate the requests against the public keys configured. There are some scenarios where the authentication requests can fail:
22+
23+
- Protocol not allowed for signed requests. Only SAML protocol is supported.
24+
- Request not signed, but verification is enabled.
25+
- No verification certificate configured for SAML request signature verification.
26+
- Signature verification failed.
27+
- Key identifier in request is missing and two most recently added certificates don't match with the request signature.
28+
- Request signed but algorithm missing.
29+
- No certificate matching with provided key identifier.
30+
- Signature algorithm not allowed. Only RSA-SHA256 is supported.
31+
32+
## To configure SAML Request Signature Verification in the Azure portal
33+
34+
1. Inside the Azure portal, navigate to **Azure Active Directory** from the Search bar or Azure Services.
35+
36+
![Screenshot of Azure Active Directory inside the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation1.png)
37+
38+
2. Navigate to **Enterprise applications** from the left menu.
39+
40+
![Screenshot of Enterprise Application option inside the Azure portal Navigation.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation2.png)
41+
42+
3. Select the application you wish to apply the changes.
43+
44+
4. Navigate to **Single sign-on.**
45+
46+
5. In the **Single sign-on** screen, there's a new subsection called **Verification certificates** under **SAML Certificates.**
47+
48+
![Screenshot of verification certificates under SAML Certificates on the Enterprise Application page in the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation3.png)
49+
50+
6. Click on **Edit.**
51+
52+
7. In the new blade, you'll be able to enable the verification of signed requests and opt-in for weak algorithm verification in case your application still uses RSA-SHA1 to sign the authentication requests.
53+
54+
8. To enable the verification of signed requests, click **Enable verification certificates** and upload a verification public key that matches with the private key used to sign the request.
55+
56+
![Screenshot of enable verification certificates in Enterprise Application within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation4.png)
57+
58+
![Screenshot of upload certificates in Enterprise Application within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation5.png)
59+
60+
![Screenshot of certificate upload success in Enterprise Application within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation6.png)
61+
62+
9. Once you have your verification certificate uploaded, click **Save.**
63+
64+
![Screenshot of certificate verification save in Enterprise Application within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation7.png)
65+
66+
![Screenshot of certificate update success in Enterprise Application within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation8.png)
67+
68+
10. When the verification of signed requests is enabled, the test experience is disabled as the requests requires to be signed by the service provider.
69+
70+
![Screenshot of testing disabled warning when signed requests enabled in Enterprise Application within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation9.png)
71+
72+
11. If you want to see the current configuration of an enterprise application, you can navigate to the **Single Sign-on** screen and see the summary of your configuration under **SAML Certificates**. There you'll be able to see if the verification of signed requests is enabled and the count of Active and Expired verification certificates.
73+
74+
![Screenshot of enterprise application configuration in single sign-on screen within the Azure portal.](./media/howto-enforce-signed-saml-authentication/samlsignaturevalidation10.png)
75+
76+
## Next steps
77+
78+
* Find out [How Azure AD uses the SAML protocol](../develop/active-directory-saml-protocol-reference.md)
79+
* Learn the format, security characteristics, and contents of [SAML tokens in Azure AD](../develop/reference-saml-tokens.md)

articles/active-directory/manage-apps/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
href: certificate-signing-options.md
5858
- name: Tenant restrictions
5959
href: tenant-restrictions.md
60+
- name: Enforce signed SAML authentication requests
61+
href: howto-enforce-signed-saml-authentication.md
6062
- name: Configure SAML token encryption
6163
href: howto-saml-token-encryption.md
6264
- name: End-user portals

0 commit comments

Comments
 (0)