You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/active-directory/develop/msal-js-sso.md
+18-16Lines changed: 18 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,9 +19,9 @@ ms.custom: aaddev, has-adal-ref
19
19
20
20
# Single sign-on with MSAL.js
21
21
22
-
Single sign-on (SSO) provides more seamless experience by reducing the number of times your users are asked for their credentials. Users enter their credentials once, and the established session can be reused by other applications on the device without further prompting.
22
+
Single sign-on (SSO) provides a more seamless experience by reducing the number of times your users are asked for their credentials. Users enter their credentials once, and the established session can be reused by other applications on the device without further prompting.
23
23
24
-
Azure Active Directory (Azure AD) enables SSO by setting a session cookie when a user first authenticates. MSAL.js allows applications to use session cookie for SSO between browser tabs opened for a single application or between applications.
24
+
Azure Active Directory (Azure AD) enables SSO by setting a session cookie when a user first authenticates. MSAL.js allows use of the session cookie for SSO between the browser tabs opened for one or several applications.
25
25
26
26
## SSO between browser tabs
27
27
@@ -54,17 +54,21 @@ When applications are hosted on the same domain, the user can sign into an app o
54
54
55
55
When applications are hosted on different domains, the tokens cached on domain A cannot be accessed by MSAL.js in domain B.
56
56
57
-
When a user is signed in on domain A navigate to an application on domain B, the user will be redirected or prompted with the sign-in page. Since Azure AD still has the user session cookie, it will sign in the user and no prompt for credentials.
57
+
When a user signed in on domain A navigates to an application on domain B, they're typically redirected or prompted to sign in. Because Azure AD still has the user's session cookie, it signs in the user without prompting for credentials.
58
58
59
-
If the user has multiple user accounts in session with Azure AD, the user will be prompted to pick the relevant account to sign in with.
59
+
If the user has multiple user accounts in a session with Azure AD, the user is prompted to pick an account to sign in with.
60
60
61
-
### Automatically select account on Azure AD
61
+
### Automatic account selection
62
62
63
-
In certain cases, the application has access to the user's authentication context and there's a need to bypass the Azure AD account selection prompt when multiple accounts are signed in. Bypassing the Azure AD account selection prompt can be done in a few different ways:
63
+
When a user is signed in concurrently to multiple Azure AD accounts on the same device, you might find you have the need to bypass the account selection prompt.
64
64
65
-
**Using Session ID**
65
+
**Using a session ID**
66
66
67
-
Session ID (SID) is an [optional claim](active-directory-optional-claims.md) that can be configured in the ID tokens. A claim allows the application to identify the user’s Azure AD session independent of the user’s account name or username. You can pass the SID in the request parameters to the `acquireTokenSilent` call. The `acquireTokenSilent` in the request parameters allow Azure AD to bypass the account selection. SID is bound to the session cookie and won't cross browser contexts.
67
+
Use the session ID (SID) in silent authentication requests you make with `acquireTokenSilent` in MSAL.js.
68
+
69
+
To use a SID, add `sid` as an [optional claim](active-directory-optional-claims.md) to your app's ID tokens. The `sid` claim allows an application to identify a user's Azure AD session independent of their account name or username. To learn how to add optional claims like `sid`, see [Provide optional claims to your app](active-directory-optional-claims.md).
70
+
71
+
The SID is bound to the session cookie and won't cross browser contexts. You can use the SID only with `acquireTokenSilent`.
68
72
69
73
```javascript
70
74
var request = {
@@ -81,11 +85,9 @@ var request = {
81
85
});
82
86
```
83
87
84
-
SID can be used only with silent authentication requests made by `acquireTokenSilent` call in MSAL.js. To find the steps to configure optional claims in your application manifest, see [Provide optional claims to your app](active-directory-optional-claims.md).
85
-
86
-
**Using Login Hint**
88
+
**Using a login hint**
87
89
88
-
If you don't have SID claim configured or need to bypass the account selection prompt in interactive authentication calls, you can do so by providing a `login_hint` in the request parameters and optionally a `domain_hint` as `extraQueryParameters` in the MSAL.js interactive methods (`loginPopup`, `loginRedirect`, `acquireTokenPopup`, and `acquireTokenRedirect`). For example:
90
+
To bypass the account selection prompt typically shown during interactive authentication requests (or for silent requests when you haven't configured the `sid` optional claim), provide a `loginHint`. In multi-tenant applications, also include a `domain_hint`.
89
91
90
92
```javascript
91
93
var request = {
@@ -97,13 +99,13 @@ var request = {
97
99
msalInstance.loginRedirect(request);
98
100
```
99
101
100
-
To get the values for login_hint and domain_hint by reading the claims returned in the ID token for the user.
102
+
Get the values for `loginHint` and `domain_hint` from the user's **ID token**:
101
103
102
-
-**loginHint** should be set to the `preferred_username` claim in the ID token.
104
+
-`loginHint`: Use the ID token's `preferred_username` claim value.
103
105
104
-
-**domain_hint** is only required to be passed when using the /common authority. The domain hint is determined by tenant ID(tid). If the `tid` claim in the ID token is `9188040d-6c67-4c5b-b112-36a304b66dad` it's consumers. Otherwise, it's organizations.
106
+
-`domain_hint`: Use the ID token's `tid` claim value. Required in requests made by multi-tenant applications that use the */common* authority. Optional for other applications.
105
107
106
-
For more information about **login_hint**and **domain_hint**, see [auth code grant](v2-oauth2-auth-code-flow.md).
108
+
For more information about login hint and domain hint, see [Microsoft identity platform and OAuth 2.0 authorization code flow](v2-oauth2-auth-code-flow.md).
0 commit comments