UNPKG

18.9 kBMarkdownView Raw
1<a name="4.0.0"></a>
2
3# 4.3.2
4- Update `async` to resolve dependency alert: #4724
5- Update `cache-manager` to resolve dependency alert: #4781
6
7# 4.3.1
8
9## Bugs
10- Replace `jwk-to-pem` with `node-jose` to remove dependency on `elliptic`: #3868
11- Update `https-proxy-agent` to v5: #3996
12
13# 4.3.0
14
15## Features
16
17- Add proxy support to OIDCStrategy: #435
18
19## Bugs
20
21- Fix sameSiteNotAllowed: #465
22- Fix crash if Bearer token is blank: #474
23- Stringify optionToValidate when logging: #437
24- Properly handle malformed json: #436
25- Update dependencies to resolve security vulnerabilities: #511
26
27# 4.2.1
28### Fix Policy Checker Bug
29#426 merged
30Fix for the policyChecker that will never work as the pathname will never contain query parameters.
31
32# 4.2.0
33### Support for Same Site.
34* Passport now offers support for the cookie attribute `SameSite` for the Oidc Strategy. Without this cookie attribute set, coookies will not be forwarded back to the server to verify the state and nonce of an id token in Chrome 80+. To read more about the Same Site changes chrome is making, please see https://www.chromium.org/updates/same-site.
35
36To get the benefit of this, you will need to explicitly opt into the `cookieSameSite` option. This is opt in because it requires that you validate your webserver accepts the cookie option we set. For instance Express 3 will not accept the Same Site cookie attribute and will require that you upgrade to Express 4.
37
38# 4.0.0
39### Breaking change
40* Passport-azure-ad will only support node.js version 6 and above from this release.
41
42### Fixed security vulnerability
43* [#383](https://github.com/AzureAD/passport-azure-ad/issues/383) Update base64url to fix vulnerability
44
45
46# 3.0.12
47
48## Breaking change
49
50* Added option 'loggingNoPII' to OIDCStrategy and BearerStrategy per Microsoft policy.
51
52If this is set to true, then Passport-azure-ad won't log anything related to
53personal identification information, such as id_token, claims, etc. The default value is true. If you want the full log as before, you
54have to explicitly set 'loggingNoPII' to false in the constructor of OIDCStrategy and BearerStrategy.
55
56# 3.0.11
57
58## OIDCStrategy
59
60### Bug fixes
61
62* [#365](https://github.com/AzureAD/passport-azure-ad/issues/365) Metadata caching in Bearer Strategy breaks and cannot be recovered if request fails
63
64## BearerStrategy
65
66### Bug fixes
67
68* [#365](https://github.com/AzureAD/passport-azure-ad/issues/365) Metadata caching in Bearer Strategy breaks and cannot be recovered if request fails
69
70# 3.0.10
71
72## BearerStrategy
73
74### New features
75
76* [#354](https://github.com/AzureAD/passport-azure-ad/issues/354) Support passing tenant name or id in BearerStrategy
77
78# 3.0.9
79
80## OIDCStrategy
81
82### Bug fixes
83
84* [#338](https://github.com/AzureAD/passport-azure-ad/issues/338) Allow query parameters in the identityMetadata config key
85
86* [#346](https://github.com/AzureAD/passport-azure-ad/pull/346) Fix: Cannot set cookie on the response
87
88## BearerStrategy
89
90### Bug fixes
91
92* [#333](https://github.com/AzureAD/passport-azure-ad/issues/333) jwt should not check sub for access token
93
94* [#338](https://github.com/AzureAD/passport-azure-ad/issues/338) Allow query parameters in the identityMetadata config key
95
96# 3.0.8
97
98## OIDCStrategy
99
100### Bug fixes
101
102* [#328](https://github.com/AzureAD/passport-azure-ad/issues/328) OIDC session key fails to serialize for certain session middleware options
103
104* Support advanced policy name with prefix b2c_1a_
105
106# 3.0.7
107
108## OIDCStrategy
109
110### Bug fixes
111
112* [#301](https://github.com/AzureAD/passport-azure-ad/issues/301) Error: a key with kid %s cannot be found
113
114* [#309](https://github.com/AzureAD/passport-azure-ad/issues/309) "State" gets encoded and causes invalid state error
115
116* [#317](https://github.com/AzureAD/passport-azure-ad/issues/317) Undefined "token_type"
117
118## BearerStrategy
119
120### New features
121
122* [#296](https://github.com/AzureAD/passport-azure-ad/issues/296) scope validation for BearerStrategy
123
124### Bug fixes
125
126* [#301](https://github.com/AzureAD/passport-azure-ad/issues/301) Error: a key with kid %s cannot be found
127
128# 3.0.6
129
130## OIDCStrategy
131
132### New features
133
134* [#285](https://github.com/AzureAD/passport-azure-ad/issues/285) express-session free support
135
136 We used to save state etc in express session, so you cannot be session free even if `{ session : fase }`
137 option is used in `passport.authenticate`. Now we provide an option to save state etc in cookie via
138 encryption and decryption, so OIDCStrategy no longer relies on express session.
139
140 More details can be found in README.md, section 5.1.4.
141
142# 3.0.5
143
144## OIDCStrategy
145
146### New features
147
148* added support of `id_token` in JWE compact serialization format.
149
150 Supported key encryption algorithms (alg) are:
151 `RSA1_5`, `RSA-OAEP`, `A128KW`, `A256KW`, `dir`
152
153 supported content encryption algorithms (enc) are:
154 `A128CBC-HS256`, `A192CBC-HS384`, `A256CBC-HS512`, `A128GCM`, and `A256GCM`.
155
156# 3.0.4
157
158## OIDCStrategy
159
160### New features
161
162* added support for `prompt`, `login_hint` and `domain_hint` parameters
163
164* added `tfp` claim support for B2C
165
166* token validation clock skew is now configurable using `clockSkew` option
167
168* added `thumbprint` and `privatePEMKey` options for client assertion support.
169
170## BearerStrategy
171
172* token validation clock skew is now configurable using `clockSkew` option
173
174## Tests
175
176* added end to end automated tests for OIDCStrategy and BearerStrategy
177
178## Bug fixes
179
180* [#231](https://github.com/AzureAD/passport-azure-ad/issues/231) Support client_asserton for OIDC auth flow
181
182* [#245](https://github.com/AzureAD/passport-azure-ad/issues/245) Make clock skew configurable
183
184* [#251](https://github.com/AzureAD/passport-azure-ad/issues/251) Multiple Audiences with Bearer Strategy
185
186* [#254](https://github.com/AzureAD/passport-azure-ad/issues/254) passReqToCallback does not work with bearer strategy
187
188* [#256](https://github.com/AzureAD/passport-azure-ad/issues/256) Support 'tfp' for B2C
189
190* [#261](https://github.com/AzureAD/passport-azure-ad/issues/261) prompt,domain_hint and login_hint are missing in the query params sent to endpoint
191
192* [#264](https://github.com/AzureAD/passport-azure-ad/issues/264) OIDC authentication fails when oauth token_type is 'bearer' and not 'Bearer'
193
194# 3.0.3
195
196## Bug fixes
197
198* [#248](https://github.com/AzureAD/passport-azure-ad/issues/248) End_to_end_test showing up in test folder
199
200# 3.0.2
201
202## Changes
203
204* removed dependency on oniyi-object-transform
205
206* allow 5 minutes clock skew for token validation
207
208# 3.0.1
209
210## OIDCStrategy
211
212### New features
213
214* specify tenant per request
215
216 Now you can specify the tenant per request, using the `tenantIdOrName` option in `passport.authenticate`. More details on the usage can be found in README.md. `tenantIdOrName` enables two features:
217
218 * B2C common endpoint support
219
220 Now you can use the B2C common endpoint by specifying the tenant for each login request using the `tenantIdOrName` option. A login request is any request that doesn't contain code or id_token.
221
222 * extensive issuer validation on common endpoint
223
224 Previously, you had to provide an `issuer` value in configuration to validat the issuer on the common endpoint. Alternatively, you can now specify the tenant for each login request.
225
226## Bug fixes
227
228* [#239](https://github.com/AzureAD/passport-azure-ad/issues/239) Problems with signin in the updated sample
229
230* [#233](https://github.com/AzureAD/passport-azure-ad/issues/233) Provide documentation with more details
231
232* [#229](https://github.com/AzureAD/passport-azure-ad/issues/229) use tenant id dynamically for each request
233
234* [#123](https://github.com/AzureAD/passport-azure-ad/issues/123) Question: what is the difference between OIDCStrategy and BearerStrategy. Which one should I use?
235
236# 3.0.0
237
238## OIDCStrategy
239
240### Breaking changes
241
242#### SAML and WSFED
243
244* We no longer support SAML and WSFED starting from version 3.0.0, please use release 2.0.3 instead.
245
246#### Options
247
248* `skipUserProfile` option: this option is no longer provided. We will load 'userinfo' if we can get an access_token for 'userinfo'. More specifically, if you are using AAD v1 with 'code', 'code id_token' or 'id_token code' flow, and the resource is not specified. For all other scenarios, we do an 'id_token' fallback.
249
250* `returnURL`/`callbackURL` option: this option is renamed to `redirectUrl`. `redirectUrl` can only be a https url now unless you set the `allowHttpForRedirectUrl` option to true.
251
252#### Claims in the returned profile
253
254* removed `email` claim.
255
256* added `oid`, `upn` and `emails` claim. `emails` claim is always an array. You might get `upn` claim from non B2C tenants, and you might
257get `emails` claim from B2C tenants.
258
259#### B2C only
260
261* `identityMetadata` option: common endpoint is no longer allowed for B2C. Tenant-specific endpoint should be used, for instance:
262`https://login.microsoftonline.com/your_B2C_tenant_name.onmicrosoft.com/v2.0/.well-known/openid-configuration` or
263`https://login.microsoftonline.com/your_B2C_tenant_guid/v2.0/.well-known/openid-configuration`.
264
265* `isB2C` option: this is a new option. If you are using a B2C tenant, set this option to true.
266
267* `tenantName`: this option is no longer used.
268
269### New features
270
271* multiple nonce and state support in OIDCStrategy. Provided `nonceLifetime` option to configure the lifetime of nonce saved in session.
272
273* enabled `issuer` validation against common endpoint. To validate issuer on common endpoint, user must
274specify the allowed issuer(s) in `issuer` option, and set `validateIssuer` option to true.
275
276* user-provided state support. The usage is as follows:
277
278```
279 passport.authenticate('azuread-openidconnect', { customState : 'the_state_you_want_to_use' });
280```
281
282## BearerStrategy
283
284### Breaking changes
285
286#### General
287
288* We no longer accept access_token sent by request query. access_token should either be put in the request header or request body.
289
290* We no longer support the `certificate` option. Now we always fetch the keys from the metadata url and generate the pem key.
291
292#### B2C only
293
294* `identityMetadata`: common endpoint is no longer allowed for B2C. Tenant-specific endpoint should be used, for instance:
295`https://login.microsoftonline.com/your_B2C_tenant_name.onmicrosoft.com/v2.0/.well-known/openid-configuration` or
296`https://login.microsoftonline.com/your_B2C_tenant_guid/v2.0/.well-known/openid-configuration`.
297
298* `isB2C` option: this is a new option. If you are using a B2C tenant, set this option to true.
299
300* `tenantName`: this option is no longer used.
301
302#### New features
303
304* enabled `issuer` validation against common endpoint. To validate issuer on common endpoint, user must
305specify the allowed issuer or array of issuers in `issuer` option, and set `validateIssuer` option to true.
306
307
308## Bug fixes
309
310* [#218](https://github.com/AzureAD/passport-azure-ad/issues/218) Missing email claim for B2C
311
312* [#195](https://github.com/AzureAD/passport-azure-ad/issues/195) Remove default query support for access_token in bearerStrategy
313
314* [#194](https://github.com/AzureAD/passport-azure-ad/issues/194) Error message for 'sub' mismatch is incorrect after redeeming 'code'
315
316* [#189](https://github.com/AzureAD/passport-azure-ad/issues/189) Extensibility to allow issuer validation when going against common endpoint
317
318* [#188](https://github.com/AzureAD/passport-azure-ad/issues/188) Mocha tests for B2C to prevent regressions
319
320* [#187](https://github.com/AzureAD/passport-azure-ad/issues/187) p parameter is not being passed in each flow through the passport.js library
321
322* [#171](https://github.com/AzureAD/passport-azure-ad/issues/171) multiple nonce and state handling
323
324* [#165](https://github.com/AzureAD/passport-azure-ad/issues/165) validationConfiguration.callbackUrl should be named redirectUrl
325
326* [#164](https://github.com/AzureAD/passport-azure-ad/issues/164) By default redirect URL should be https
327
328# 2.0.3
329
330* Updated telemetry version.
331
332# 2.0.2
333
334* Increased the size of nonce and state in OIDCStrategy.
335
336# 2.0.1
337
338## Major changes from 2.0.0
339
340### Security Fix
341* Version 2.0.1 fixes a known security vulnerability affecting versions <1.4.6 and 2.0.0. All users should upgrade to 2.0.1 or greater immediately. For more details, see the [Security-Notice](https://github.com/AzureAD/passport-azure-ad/blob/master/SECURITY-NOTICE.MD) for more details.
342
343### BearerStrategy
344* Metadata is loaded only once in 2.0.0, which happens at the creation time of the strategy. In 2.0.1 we load metadata for each request that requires authentication. We keep the metadata in memory cache for 30 minutes. Whenever we need to load the metadata, we check the memory cache first. If we don't find it we then load the metadata from AAD and save it in memory cache. This way BearerStrategy can automatically handle the key rolling of Azure Active Directory.
345* The default value of validateIssuer is true.
346
347### OIDCStrategy
348* For OIDCStrategy, we now support 'code id_token' as the response_type, in addition to 'code', 'id_token code' and 'id_token'.
349* The default value of validateIssuer is true.
350
351### Miscellaneous
352* For non-server-related errors, in 2.0.1 we call Strategy.fail function instead of throwing an error, so the user can do the failure redirection.
353* Added chai-passport-strategy testing tool and more unit tests.
354* Fixed some bugs in examples.
355* Added telemetry parameters in both OIDCStrategy and BearerStrategy when sending requests to Azure Active Directory.
356
357### Upgrade Notes
358
3591. This patch updates the library that your application runs, but does not change the current state of your users, including any sessions they had open. This applies to malicious users who could have exploited this vulnerability to gain access to your system. If your application has users with existing sessions open, after applying the patch, ensure all these sessions are terminated and users are required to sign in again.
360
361
3622. In previous versions of the Passport-Azure-AD for NodeJS library, the issuer wasn't validated, even if you had set validateIssuer to true in your configuration. This is fixed in versions 1.4.6 and 2.0.1. However, this may mean you get 401s if you are using the common endpoint in the identityMetadata config setting and have validateIssuer to true. If you are using the common endpoint (which looks like "https://login.microsoftonline.com/common/.well-known/openid-configuration"), issuers cannot be validated. You can fix this in two ways:
363
364 - If you are a single-tenant app, you can replace 'common' with your tenantId in the endpoint address. The issuer will be validated. IdentityMetadata set to support a single tenant should look like "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011dddd/.well-known/openid-configuration" with your tenant GUID replaced in the path or "https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/.well-known/openid-configuration" with your tenant name replaced in the path.
365
366 - If you are a multi-tenant app and need to go against the common endpoint, you must set validateIssuer to false. Be aware that the issuer field of the token will not be validated and all issuers will be accepted.
367
368## Bug fixes in 2.0.1
369* [#71](https://github.com/AzureAD/passport-azure-ad/issues/71) Cryptic error message when the client ID is null/undefined
370* [#90](https://github.com/AzureAD/passport-azure-ad/issues/90) Cannot read property 'keys' of undefined
371* [#117](https://github.com/AzureAD/passport-azure-ad/issues/117) TypeError: Invalid hex string in aadutils.js
372* [#112](https://github.com/AzureAD/passport-azure-ad/issues/112) done is not a function. bearerstrategy.js:149
373* [#121](https://github.com/AzureAD/passport-azure-ad/issues/121) Error with regex into pem.js
374
375# 1.4.8
376
377* Updated telemetry version.
378
379# 1.4.7
380
381* Increased the size of nonce and state in OIDCStrategy.
382
383# 1.4.6
384
385### Security Fix
386* Version 1.4.6 fixes a known security vulnerability affecting versions <1.4.6. All users should upgrade to 1.4.6 or greater immediately. For more details, see the [Security-Notice](https://github.com/AzureAD/passport-azure-ad/blob/master/SECURITY-NOTICE.MD).
387
388### BearerStrategy
389* The default value of validateIssuer is true.
390
391### OIDCStrategy
392* For OIDCStrategy, we now support 'code id_token' as the response_type, in addition to 'code', 'id_token code' and 'id_token'.
393* The default value of validateIssuer is true.
394* Validating options at the time of creating strategy, instead of when authenticate method is called.
395
396### Miscellaneous
397* For non-server-related errors, in 1.4.6 we call Strategy.fail function instead of throwing error, so user can do the failure redirection.
398* Added chai-passport-strategy testing tool and more unit tests.
399* Added telemetry in both OIDC and Bearer strategy when sending requests to AAD.
400* Fixed some bugs in examples.
401
402### Upgrade Notes
403
4041. This patch updates the library that your application runs, but does not change the current state of your users, including any sessions they had open. This applies to malicious users who could have exploited this vulnerability to gain access to your system. If your application has users with existing sessions open, after applying the patch, ensure all these sessions are terminated and users are required to sign in again.
405
406
4072. In previous versions of the Passport-Azure-AD for NodeJS library, the issuer wasn't validated, even if you had set validateIssuer to true in your configuration. This is fixed in versions 1.4.6 and 2.0.1. However, this may mean you get 401s if you are using the common endpoint in the identityMetadata config setting and have validateIssuer to true. If you are using the common endpoint (which looks like "https://login.microsoftonline.com/common/.well-known/openid-configuration"), issuers cannot be validated. You can fix this in two ways:
408
409 - If you are a single-tenant app, you can replace 'common' with your tenantId in the endpoint address. The issuer will be validated. IdentityMetadata set to support a single tenant should look like "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011dddd/.well-known/openid-configuration" with your tenant GUID replaced in the path or "https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/.well-known/openid-configuration" with your tenant name replaced in the path.
410
411 - If you are a multi-tenant app and need to go against the common endpoint, you must set validateIssuer to false. Be aware that the issuer field of the token will not be validated and all issuers will be accepted.
412
413
\No newline at end of file