Skip to content

Commit 410c7ea

Browse files
committed
Adding sesson provider and change SAML IDP
1 parent f96f897 commit 410c7ea

15 files changed

+186
-34
lines changed

articles/active-directory-b2c/TOC.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@
7676
href: user-overview.md
7777
- name: User profile attributes
7878
href: user-profile-attributes.md
79+
- name: Session
80+
href: session.md
7981
- name: How-to guides
8082
items:
8183
- name: App integration
@@ -335,8 +337,8 @@
335337
href: phone-factor-technical-profile.md
336338
- name: REST
337339
href: restful-technical-profile.md
338-
- name: SAML
339-
href: saml-technical-profile.md
340+
- name: SAML identity provider
341+
href: saml-identity-provider-technical-profile.md
340342
- name: SAML token issuer
341343
href: saml-issuer-technical-profile.md
342344
- name: Self-asserted

articles/active-directory-b2c/claim-resolver-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ You can use claims resolvers with the following elements:
135135
|[OpenID Connect](openid-connect-technical-profile.md) technical profile| `InputClaim`, `OutputClaim`| 1, 2|
136136
|[Claims transformation](claims-transformation-technical-profile.md) technical profile| `InputClaim`, `OutputClaim`| 1, 2|
137137
|[RESTful provider](restful-technical-profile.md) technical profile| `InputClaim`| 1, 2|
138-
|[SAML2](saml-technical-profile.md) technical profile| `OutputClaim`| 1, 2|
138+
|[SAML identity provider](saml-identity-provider-technical-profile.md) technical profile| `OutputClaim`| 1, 2|
139139
|[Self-Asserted](self-asserted-technical-profile.md) technical profile| `InputClaim`, `OutputClaim`| 1, 2|
140140
|[ContentDefinition](contentdefinitions.md)| `LoadUri`| |
141141
|[ContentDefinitionParameters](relyingparty.md#contentdefinitionparameters)| `Parameter` | |

articles/active-directory-b2c/connect-with-saml-service-providers.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ You can change the value of the `IssuerUri` metadata. This is the issuer URI tha
125125
<!-- SAML Token Issuer technical profile -->
126126
<TechnicalProfile Id="Saml2AssertionIssuer">
127127
<DisplayName>Token Issuer</DisplayName>
128-
<Protocol Name="None"/>
128+
<Protocol Name="SAML2"/>
129129
<OutputTokenFormat>SAML2</OutputTokenFormat>
130130
<Metadata>
131131
<!-- The issuer contains the policy name; it should be the same name as configured in the relying party application. B2C_1A_signup_signin_SAML is used below. -->
@@ -138,11 +138,11 @@ You can change the value of the `IssuerUri` metadata. This is the issuer URI tha
138138
</CryptographicKeys>
139139
<InputClaims/>
140140
<OutputClaims/>
141-
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-sp"/>
141+
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer"/>
142142
</TechnicalProfile>
143143
144144
<!-- Session management technical profile for SAML based tokens -->
145-
<TechnicalProfile Id="SM-Saml-sp">
145+
<TechnicalProfile Id="SM-Saml-issuer">
146146
<DisplayName>Session Management Provider</DisplayName>
147147
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
148148
</TechnicalProfile>

articles/active-directory-b2c/custom-policy-developer-notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ Custom policy/Identity Experience Framework capabilities are under constant and
7676
| [OpenID Connect](openid-connect-technical-profile.md) | | | X | For example, Google+. |
7777
| [OAuth2](oauth2-technical-profile.md) | | | X | For example, Facebook. |
7878
| [OAuth1](oauth1-technical-profile.md) | | X | | For example, Twitter. |
79-
| [SAML2](saml-technical-profile.md) | | | X | For example, Salesforce, ADFS. |
79+
| [SAML2](saml-identity-provider-technical-profile.md) | | | X | For example, Salesforce, ADFS. |
8080
| WSFED| X | | | |
8181

8282

articles/active-directory-b2c/custom-policy-reference-sso.md

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,16 @@ SSO session management uses the same semantics as any other technical profile in
2626

2727
Azure AD B2C has defined a number of SSO session providers that can be used:
2828

29-
* NoopSSOSessionProvider
30-
* DefaultSSOSessionProvider
31-
* ExternalLoginSSOSessionProvider
32-
* SamlSSOSessionProvider
29+
|Session provider |Scope |
30+
|---------|---------|
31+
|[NoopSSOSessionProvider](#noopssosessionprovider) | None |
32+
|[DefaultSSOSessionProvider](#defaultssosessionprovider) | Azure AD B2C internal session manager. |
33+
|[ExternalLoginSSOSessionProvider](#externalloginssosessionprovider) | Between Azure AD B2C and OAuth1, OAuth2, or OpenId Connect identity provider. | |
34+
|[OAuthSSOSessionProvider](#oauthssosessionprovider) | Between an OAuth2 or OpenId connect relying party application and Azure AD B2C. |
35+
|[SamlSSOSessionProvider](#samlssosessionprovider) | Between Azure AD B2C and SAML identity provider. And between a SAML service provider (relying party application) and Azure AD B2C. |
36+
37+
38+
3339

3440
SSO management classes are specified using the `<UseTechnicalProfileForSessionManagement ReferenceId="{ID}" />` element of a technical profile.
3541

@@ -60,11 +66,11 @@ As the name dictates, this provider does nothing. This provider can be used for
6066

6167
### DefaultSSOSessionProvider
6268

63-
This provider can be used for storing claims in a session. This provider is typically referenced in a technical profile used for managing local accounts. The following `SM-AAD` technical profile is included in the [custom policy starter pack](custom-policy-get-started.md#custom-policy-starter-pack).
69+
This provider can be used for storing claims in a session. This provider is typically referenced in a technical profile used for managing local and federated accounts. The following `SM-AAD` technical profile is included in the [custom policy starter pack](custom-policy-get-started.md#custom-policy-starter-pack).
6470

6571
```XML
6672
<TechnicalProfile Id="SM-AAD">
67-
<DisplayName>Session Mananagement Provider</DisplayName>
73+
<DisplayName>Session Management Provider</DisplayName>
6874
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
6975
<PersistedClaims>
7076
<PersistedClaim ClaimTypeReferenceId="objectId" />
@@ -80,6 +86,7 @@ This provider can be used for storing claims in a session. This provider is typi
8086
</TechnicalProfile>
8187
```
8288

89+
8390
The following `SM-MFA` technical profile is included in the [custom policy starter pack](custom-policy-get-started.md#custom-policy-starter-pack) `SocialAndLocalAccountsWithMfa`. This technical profile manages the multi-factor authentication session.
8491

8592
```XML
@@ -97,11 +104,11 @@ The following `SM-MFA` technical profile is included in the [custom policy start
97104

98105
### ExternalLoginSSOSessionProvider
99106

100-
This provider is used to suppress the "choose identity provider" screen. It is typically referenced in a technical profile configured for an external identity provider, such as Facebook. The following `SM-SocialLogin` technical profile is included in the [custom policy starter pack](custom-policy-get-started.md#custom-policy-starter-pack).
107+
This provider is used to suppress the "choose identity provider" screen, and sign-out from a federated identity provider. It is typically referenced in a technical profile configured for an federated identity provider, such as Facebook, or Azure Active Directory. The following `SM-SocialLogin` technical profile is included in the [custom policy starter pack](custom-policy-get-started.md#custom-policy-starter-pack).
101108

102109
```XML
103110
<TechnicalProfile Id="SM-SocialLogin">
104-
<DisplayName>Session Mananagement Provider</DisplayName>
111+
<DisplayName>Session Management Provider</DisplayName>
105112
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.ExternalLoginSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
106113
<Metadata>
107114
<Item Key="AlwaysFetchClaimsFromProvider">true</Item>
@@ -118,9 +125,20 @@ This provider is used to suppress the "choose identity provider" screen. It is t
118125
| --- | --- | --- |
119126
| AlwaysFetchClaimsFromProvider | No | Not currently used, can be ignored. |
120127

128+
### OAuthSSOSessionProvider
129+
130+
This provider is used for managing the Azure AD B2C sessions between a OAuth2 or OpenId Connect relying party and Azure AD B2C.
131+
132+
```xml
133+
<TechnicalProfile Id="SM-jwt-issuer">
134+
<DisplayName>Session Management Provider</DisplayName>
135+
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.OAuthSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
136+
</TechnicalProfile>
137+
```
138+
121139
### SamlSSOSessionProvider
122140

123-
This provider is used for managing the Azure AD B2C SAML sessions between a relying party application or a federated SAML identity provider. When using the SSO provider for storing a SAML identity provider session, the `RegisterServiceProviders` must be set to `false`. The following `SM-Saml-idp` technical profile is used by the [SAML technical profile](saml-technical-profile.md).
141+
This provider is used for managing the Azure AD B2C SAML sessions between a relying party application or a federated SAML identity provider. When using the SSO provider for storing a SAML identity provider session, the `RegisterServiceProviders` must be set to `false`. The following `SM-Saml-idp` technical profile is used by the [SAML identity provider technical profile](saml-identity-provider-technical-profile.md).
124142

125143
```XML
126144
<TechnicalProfile Id="SM-Saml-idp">
@@ -134,10 +152,10 @@ This provider is used for managing the Azure AD B2C SAML sessions between a rely
134152

135153
When using the provider for storing the B2C SAML session, the `RegisterServiceProviders` must set to `true`. SAML session logout requires the `SessionIndex` and `NameID` to complete.
136154

137-
The following `SM-Saml-idp` technical profile is used by [SAML issuer technical profile](saml-issuer-technical-profile.md)
155+
The following `SM-Saml-issuer` technical profile is used by [SAML issuer technical profile](saml-issuer-technical-profile.md)
138156

139157
```XML
140-
<TechnicalProfile Id="SM-Saml-sp">
158+
<TechnicalProfile Id="SM-Saml-issuer">
141159
<DisplayName>Session Management Provider</DisplayName>
142160
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
143161
</TechnicalProfile>
@@ -150,4 +168,6 @@ The following `SM-Saml-idp` technical profile is used by [SAML issuer technical
150168
| RegisterServiceProviders | No | Indicates that the provider should register all SAML service providers that have been issued an assertion. Possible values: `true` (default), or `false`.|
151169

152170

171+
## Next steps
153172

173+
- Learn more about [Azure AD B2C session](session.md).

articles/active-directory-b2c/identity-provider-adfs2016-custom.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ms.subservice: B2C
1818

1919
[!INCLUDE [active-directory-b2c-advanced-audience-warning](../../includes/active-directory-b2c-advanced-audience-warning.md)]
2020

21-
This article shows you how to enable sign-in for an ADFS user account by using [custom policies](custom-policy-overview.md) in Azure Active Directory B2C (Azure AD B2C). You enable sign-in by adding a [SAML technical profile](saml-technical-profile.md) to a custom policy.
21+
This article shows you how to enable sign-in for an ADFS user account by using [custom policies](custom-policy-overview.md) in Azure Active Directory B2C (Azure AD B2C). You enable sign-in by adding a [SAML identity provider technical profile](saml-identity-provider-technical-profile.md) to a custom policy.
2222

2323
## Prerequisites
2424

@@ -44,7 +44,7 @@ You need to store your certificate in your Azure AD B2C tenant.
4444

4545
If you want users to sign in using an ADFS account, you need to define the account as a claims provider that Azure AD B2C can communicate with through an endpoint. The endpoint provides a set of claims that are used by Azure AD B2C to verify that a specific user has authenticated.
4646

47-
You can define an ADFS account as a claims provider by adding it to the **ClaimsProviders** element in the extension file of your policy. For more information, see [define a SAML technical profile](saml-technical-profile.md).
47+
You can define an ADFS account as a claims provider by adding it to the **ClaimsProviders** element in the extension file of your policy. For more information, see [define a SAML identity provider technical profile](saml-identity-provider-technical-profile.md).
4848

4949
1. Open the *TrustFrameworkExtensions.xml*.
5050
1. Find the **ClaimsProviders** element. If it does not exist, add it under the root element.

articles/active-directory-b2c/identity-provider-salesforce-custom.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ms.subservice: B2C
1818

1919
[!INCLUDE [active-directory-b2c-advanced-audience-warning](../../includes/active-directory-b2c-advanced-audience-warning.md)]
2020

21-
This article shows you how to enable sign-in for users from a Salesforce organization using [custom policies](custom-policy-overview.md) in Azure Active Directory B2C (Azure AD B2C). You enable sign-in by adding a [SAML technical profile](saml-technical-profile.md) to a custom policy.
21+
This article shows you how to enable sign-in for users from a Salesforce organization using [custom policies](custom-policy-overview.md) in Azure Active Directory B2C (Azure AD B2C). You enable sign-in by adding a [SAML identity provider technical profile](saml-identity-provider-technical-profile.md) to a custom policy.
2222

2323
## Prerequisites
2424

@@ -99,7 +99,7 @@ You need to store the certificate that you created in your Azure AD B2C tenant.
9999

100100
If you want users to sign in using a Salesforce account, you need to define the account as a claims provider that Azure AD B2C can communicate with through an endpoint. The endpoint provides a set of claims that are used by Azure AD B2C to verify that a specific user has authenticated.
101101

102-
You can define a Salesforce account as a claims provider by adding it to the **ClaimsProviders** element in the extension file of your policy. For more information, see [define a SAML technical profile](saml-technical-profile.md).
102+
You can define a Salesforce account as a claims provider by adding it to the **ClaimsProviders** element in the extension file of your policy. For more information, see [define a SAML identity provider technical profile](saml-identity-provider-technical-profile.md).
103103

104104
1. Open the *TrustFrameworkExtensions.xml*.
105105
1. Find the **ClaimsProviders** element. If it does not exist, add it under the root element.

articles/active-directory-b2c/jwt-issuer-technical-profile.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: celestedg
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: reference
12-
ms.date: 03/06/2020
12+
ms.date: 04/07/2020
1313
ms.author: mimart
1414
ms.subservice: B2C
1515
---
@@ -31,7 +31,16 @@ The following example shows a technical profile for `JwtIssuer`:
3131
<DisplayName>JWT Issuer</DisplayName>
3232
<Protocol Name="None" />
3333
<OutputTokenFormat>JWT</OutputTokenFormat>
34-
...
34+
<Metadata>
35+
<Item Key="client_id">{service:te}</Item>
36+
<Item Key="issuer_refresh_token_user_identity_claim_type">objectId</Item>
37+
<Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
38+
</Metadata>
39+
<CryptographicKeys>
40+
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
41+
<Key Id="issuer_refresh_token_key" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer" />
42+
</CryptographicKeys>
43+
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
3544
</TechnicalProfile>
3645
```
3746

@@ -60,9 +69,13 @@ The CryptographicKeys element contains the following attributes:
6069

6170
| Attribute | Required | Description |
6271
| --------- | -------- | ----------- |
63-
| issuer_secret | Yes | The X509 certificate (RSA key set) to use to sign the JWT token. This is the `B2C_1A_TokenSigningKeyContainer` key you cofigured in [Get started with custom policies](custom-policy-get-started.md). |
72+
| issuer_secret | Yes | The X509 certificate (RSA key set) to use to sign the JWT token. This is the `B2C_1A_TokenSigningKeyContainer` key you configure in [Get started with custom policies](custom-policy-get-started.md). |
6473
| issuer_refresh_token_key | Yes | The X509 certificate (RSA key set) to use to encrypt the refresh token. You configured the `B2C_1A_TokenEncryptionKeyContainer` key in [Get started with custom policies](custom-policy-get-started.md) |
6574

75+
## Session management
76+
77+
To configure the Azure AD B2C sessions between a relying party application, the attribute of the `UseTechnicalProfileForSessionManagement` element, reference to [OAuthSSOSessionProvider](custom-policy-reference-sso.md#oauthssosessionprovider) SSO session.
78+
6679

6780

6881

108 KB
Loading

articles/active-directory-b2c/openid-connect.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: celestedg
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: conceptual
11-
ms.date: 08/22/2019
11+
ms.date: 04/27/2020
1212
ms.author: mimart
1313
ms.subservice: B2C
1414
ms.custom: fasttrack-edit
@@ -258,7 +258,7 @@ Error responses look like:
258258

259259
## Send a sign-out request
260260

261-
When you want to sign the user out of the application, it isn't enough to clear the application's cookies or otherwise end the session with the user. Redirect the user to Azure AD B2C to sign out. If you fail to do so, the user might be able to reauthenticate to your application without entering their credentials again.
261+
When you want to sign the user out of the application, it isn't enough to clear the application's cookies or otherwise end the session with the user. Redirect the user to Azure AD B2C to sign out. If you fail to do so, the user might be able to reauthenticate to your application without entering their credentials again. For more information, see [Azure AD B2C session](session.md).
262262

263263
To sign out the user, redirect the user to the `end_session` endpoint that is listed in the OpenID Connect metadata document described earlier:
264264

@@ -279,6 +279,4 @@ GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/
279279

280280
After logout, the user is redirected to the URI specified in the `post_logout_redirect_uri` parameter, regardless of the reply URLs that have been specified for the application. However, if a valid `id_token_hint` is passed, Azure AD B2C verifies that the value of `post_logout_redirect_uri` matches one of the application's configured redirect URIs before performing the redirect. If no matching reply URL was configured for the application, an error message is displayed and the user is not redirected.
281281

282-
### External identity provider sign-out
283282

284-
Directing the user to the `end_session` endpoint clears some of the user's single sign-on state with Azure AD B2C, but it doesn't sign the user out of their social identity provider (IDP) session. If the user selects the same IDP during a subsequent sign-in, they are reauthenticated without entering their credentials. If a user wants to sign out of the application, it doesn't necessarily mean they want to sign out of their Facebook account. However, if local accounts are used, the user's session ends properly.

0 commit comments

Comments
 (0)