omniauth-entra_id_jwt 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/LICENSE +21 -0
- data/LICENSE.txt +21 -0
- data/README.md +252 -0
- data/Rakefile +12 -0
- data/coverage/.last_run.json +5 -0
- data/coverage/.resultset.json +155 -0
- data/coverage/.resultset.json.lock +0 -0
- data/coverage/assets/0.13.1/DataTables-1.10.20/images/sort_asc.png +0 -0
- data/coverage/assets/0.13.1/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
- data/coverage/assets/0.13.1/DataTables-1.10.20/images/sort_both.png +0 -0
- data/coverage/assets/0.13.1/DataTables-1.10.20/images/sort_desc.png +0 -0
- data/coverage/assets/0.13.1/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
- data/coverage/assets/0.13.1/application.css +1 -0
- data/coverage/assets/0.13.1/application.js +7 -0
- data/coverage/assets/0.13.1/colorbox/border.png +0 -0
- data/coverage/assets/0.13.1/colorbox/controls.png +0 -0
- data/coverage/assets/0.13.1/colorbox/loading.gif +0 -0
- data/coverage/assets/0.13.1/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.13.1/favicon_green.png +0 -0
- data/coverage/assets/0.13.1/favicon_red.png +0 -0
- data/coverage/assets/0.13.1/favicon_yellow.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.13.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.13.1/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.13.1/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.13.1/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.13.1/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.13.1/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.13.1/loading.gif +0 -0
- data/coverage/assets/0.13.1/magnify.png +0 -0
- data/coverage/index.html +1700 -0
- data/lib/omniauth/entra_id_jwt/version.rb +11 -0
- data/lib/omniauth/entra_id_jwt.rb +2 -0
- data/lib/omniauth/strategies/entra_id_jwt.rb +138 -0
- data/lib/omniauth-entra_id_jwt.rb +1 -0
- data/sig/omniauth/entra/id/jwt.rbs +10 -0
- metadata +157 -0
data/coverage/index.html
ADDED
@@ -0,0 +1,1700 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
+
<head>
|
4
|
+
<title>Code coverage for Omniauth-entra id jwt</title>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
6
|
+
<script src='./assets/0.13.1/application.js' type='text/javascript'></script>
|
7
|
+
<link href='./assets/0.13.1/application.css' media='screen, projection, print' rel='stylesheet' type='text/css' />
|
8
|
+
<link rel="icon" type="image/png" href="./assets/0.13.1/favicon_green.png" />
|
9
|
+
</head>
|
10
|
+
|
11
|
+
<body>
|
12
|
+
<div id="loading">
|
13
|
+
<img src="./assets/0.13.1/loading.gif" alt="loading"/>
|
14
|
+
</div>
|
15
|
+
<div id="wrapper" class="hide">
|
16
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2025-06-20T01:26:24+00:00">2025-06-20T01:26:24+00:00</abbr></div>
|
17
|
+
<ul class="group_tabs"></ul>
|
18
|
+
|
19
|
+
<div id="content">
|
20
|
+
<div class="file_list_container" id="AllFiles">
|
21
|
+
<h2>
|
22
|
+
<span class="group_name">All Files</span>
|
23
|
+
(<span class="covered_percent">
|
24
|
+
<span class="green">
|
25
|
+
100.0%
|
26
|
+
</span>
|
27
|
+
|
28
|
+
</span>
|
29
|
+
covered at
|
30
|
+
<span class="covered_strength">
|
31
|
+
<span class="green">
|
32
|
+
42.42
|
33
|
+
</span>
|
34
|
+
</span> hits/line
|
35
|
+
)
|
36
|
+
</h2>
|
37
|
+
|
38
|
+
<a name="AllFiles"></a>
|
39
|
+
|
40
|
+
<div>
|
41
|
+
<b>2</b> files in total.
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="t-line-summary">
|
45
|
+
<b>62</b> relevant lines,
|
46
|
+
<span class="green"><b>62</b> lines covered</span> and
|
47
|
+
<span class="red"><b>0</b> lines missed. </span>
|
48
|
+
(<span class="green">
|
49
|
+
100.0%
|
50
|
+
</span>
|
51
|
+
)
|
52
|
+
</div>
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
<div class="file_list--responsive">
|
57
|
+
<table class="file_list">
|
58
|
+
<thead>
|
59
|
+
<tr>
|
60
|
+
<th>File</th>
|
61
|
+
<th class="cell--number">% covered</th>
|
62
|
+
<th class="cell--number">Lines</th>
|
63
|
+
<th class="cell--number">Relevant Lines</th>
|
64
|
+
<th class="cell--number">Lines covered</th>
|
65
|
+
<th class="cell--number">Lines missed</th>
|
66
|
+
<th class="cell--number">Avg. Hits / Line</th>
|
67
|
+
|
68
|
+
</tr>
|
69
|
+
</thead>
|
70
|
+
<tbody>
|
71
|
+
|
72
|
+
<tr class="t-file">
|
73
|
+
<td class="strong t-file__name"><a href="#0592804a777fbe43cb0f86915267e6d33ddf9234" class="src_link" title="lib/omniauth/entra_id_jwt.rb">lib/omniauth/entra_id_jwt.rb</a></td>
|
74
|
+
<td class="green strong cell--number t-file__coverage">100.00 %</td>
|
75
|
+
<td class="cell--number">2</td>
|
76
|
+
<td class="cell--number">2</td>
|
77
|
+
<td class="cell--number">2</td>
|
78
|
+
<td class="cell--number">0</td>
|
79
|
+
<td class="cell--number">1.00</td>
|
80
|
+
|
81
|
+
</tr>
|
82
|
+
|
83
|
+
<tr class="t-file">
|
84
|
+
<td class="strong t-file__name"><a href="#388c733481cefa33d56de4c678ba546ad33c87e6" class="src_link" title="lib/omniauth/strategies/entra_id_jwt.rb">lib/omniauth/strategies/entra_id_jwt.rb</a></td>
|
85
|
+
<td class="green strong cell--number t-file__coverage">100.00 %</td>
|
86
|
+
<td class="cell--number">138</td>
|
87
|
+
<td class="cell--number">60</td>
|
88
|
+
<td class="cell--number">60</td>
|
89
|
+
<td class="cell--number">0</td>
|
90
|
+
<td class="cell--number">43.80</td>
|
91
|
+
|
92
|
+
</tr>
|
93
|
+
|
94
|
+
</tbody>
|
95
|
+
</table>
|
96
|
+
</div>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
</div>
|
102
|
+
|
103
|
+
<div id="footer">
|
104
|
+
Generated by <a href="https://github.com/simplecov-ruby/simplecov">simplecov</a> v0.22.0
|
105
|
+
and simplecov-html v0.13.1<br/>
|
106
|
+
using RSpec
|
107
|
+
</div>
|
108
|
+
|
109
|
+
<div class="source_files">
|
110
|
+
|
111
|
+
<div class="source_table" id="0592804a777fbe43cb0f86915267e6d33ddf9234">
|
112
|
+
<div class="header">
|
113
|
+
<h3>lib/omniauth/entra_id_jwt.rb</h3>
|
114
|
+
<h4>
|
115
|
+
<span class="green">
|
116
|
+
100.0%
|
117
|
+
</span>
|
118
|
+
|
119
|
+
lines covered
|
120
|
+
</h4>
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
<div class="t-line-summary">
|
125
|
+
<b>2</b> relevant lines.
|
126
|
+
<span class="green"><b>2</b> lines covered</span> and
|
127
|
+
<span class="red"><b>0</b> lines missed.</span>
|
128
|
+
</div>
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
</div>
|
133
|
+
|
134
|
+
<pre>
|
135
|
+
<ol>
|
136
|
+
|
137
|
+
<div>
|
138
|
+
<li class="covered" data-hits="1" data-linenumber="1">
|
139
|
+
|
140
|
+
<span class="hits">1</span>
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
<code class="ruby">require File.join("omniauth", "entra_id_jwt", "version")</code>
|
146
|
+
</li>
|
147
|
+
</div>
|
148
|
+
|
149
|
+
<div>
|
150
|
+
<li class="covered" data-hits="1" data-linenumber="2">
|
151
|
+
|
152
|
+
<span class="hits">1</span>
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
<code class="ruby">require File.join("omniauth", "strategies", "entra_id_jwt")</code>
|
158
|
+
</li>
|
159
|
+
</div>
|
160
|
+
|
161
|
+
</ol>
|
162
|
+
</pre>
|
163
|
+
</div>
|
164
|
+
|
165
|
+
|
166
|
+
<div class="source_table" id="388c733481cefa33d56de4c678ba546ad33c87e6">
|
167
|
+
<div class="header">
|
168
|
+
<h3>lib/omniauth/strategies/entra_id_jwt.rb</h3>
|
169
|
+
<h4>
|
170
|
+
<span class="green">
|
171
|
+
100.0%
|
172
|
+
</span>
|
173
|
+
|
174
|
+
lines covered
|
175
|
+
</h4>
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
<div class="t-line-summary">
|
180
|
+
<b>60</b> relevant lines.
|
181
|
+
<span class="green"><b>60</b> lines covered</span> and
|
182
|
+
<span class="red"><b>0</b> lines missed.</span>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
</div>
|
188
|
+
|
189
|
+
<pre>
|
190
|
+
<ol>
|
191
|
+
|
192
|
+
<div>
|
193
|
+
<li class="never" data-hits="" data-linenumber="1">
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
<code class="ruby"># frozen_string_literal: true</code>
|
199
|
+
</li>
|
200
|
+
</div>
|
201
|
+
|
202
|
+
<div>
|
203
|
+
<li class="never" data-hits="" data-linenumber="2">
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
<code class="ruby"></code>
|
209
|
+
</li>
|
210
|
+
</div>
|
211
|
+
|
212
|
+
<div>
|
213
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
214
|
+
|
215
|
+
<span class="hits">1</span>
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
<code class="ruby">require "omniauth-oauth2"</code>
|
221
|
+
</li>
|
222
|
+
</div>
|
223
|
+
|
224
|
+
<div>
|
225
|
+
<li class="never" data-hits="" data-linenumber="4">
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
<code class="ruby"></code>
|
231
|
+
</li>
|
232
|
+
</div>
|
233
|
+
|
234
|
+
<div>
|
235
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
236
|
+
|
237
|
+
<span class="hits">1</span>
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
<code class="ruby">module OmniAuth</code>
|
243
|
+
</li>
|
244
|
+
</div>
|
245
|
+
|
246
|
+
<div>
|
247
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
248
|
+
|
249
|
+
<span class="hits">1</span>
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
<code class="ruby"> module Strategies</code>
|
255
|
+
</li>
|
256
|
+
</div>
|
257
|
+
|
258
|
+
<div>
|
259
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
260
|
+
|
261
|
+
<span class="hits">1</span>
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
<code class="ruby"> class EntraIdJWT < OmniAuth::Strategies::OAuth2</code>
|
267
|
+
</li>
|
268
|
+
</div>
|
269
|
+
|
270
|
+
<div>
|
271
|
+
<li class="covered" data-hits="1" data-linenumber="8">
|
272
|
+
|
273
|
+
<span class="hits">1</span>
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
|
278
|
+
<code class="ruby"> BASE_URL = "https://login.microsoftonline.com"</code>
|
279
|
+
</li>
|
280
|
+
</div>
|
281
|
+
|
282
|
+
<div>
|
283
|
+
<li class="never" data-hits="" data-linenumber="9">
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
<code class="ruby"></code>
|
289
|
+
</li>
|
290
|
+
</div>
|
291
|
+
|
292
|
+
<div>
|
293
|
+
<li class="covered" data-hits="1" data-linenumber="10">
|
294
|
+
|
295
|
+
<span class="hits">1</span>
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
<code class="ruby"> option :name, "entra_id_jwt"</code>
|
301
|
+
</li>
|
302
|
+
</div>
|
303
|
+
|
304
|
+
<div>
|
305
|
+
<li class="covered" data-hits="1" data-linenumber="11">
|
306
|
+
|
307
|
+
<span class="hits">1</span>
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
<code class="ruby"> option :tenant_provider, nil</code>
|
313
|
+
</li>
|
314
|
+
</div>
|
315
|
+
|
316
|
+
<div>
|
317
|
+
<li class="never" data-hits="" data-linenumber="12">
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
<code class="ruby"></code>
|
323
|
+
</li>
|
324
|
+
</div>
|
325
|
+
|
326
|
+
<div>
|
327
|
+
<li class="covered" data-hits="1" data-linenumber="13">
|
328
|
+
|
329
|
+
<span class="hits">1</span>
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
<code class="ruby"> DEFAULT_SCOPE = "openid profile email"</code>
|
335
|
+
</li>
|
336
|
+
</div>
|
337
|
+
|
338
|
+
<div>
|
339
|
+
<li class="covered" data-hits="1" data-linenumber="14">
|
340
|
+
|
341
|
+
<span class="hits">1</span>
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
<code class="ruby"> COMMON_TENANT_ID = "common"</code>
|
347
|
+
</li>
|
348
|
+
</div>
|
349
|
+
|
350
|
+
<div>
|
351
|
+
<li class="never" data-hits="" data-linenumber="15">
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
<code class="ruby"></code>
|
357
|
+
</li>
|
358
|
+
</div>
|
359
|
+
|
360
|
+
<div>
|
361
|
+
<li class="never" data-hits="" data-linenumber="16">
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
|
366
|
+
<code class="ruby"> # The tenant_provider must return client_id, client_secret and,</code>
|
367
|
+
</li>
|
368
|
+
</div>
|
369
|
+
|
370
|
+
<div>
|
371
|
+
<li class="never" data-hits="" data-linenumber="17">
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
<code class="ruby"> # optionally, tenant_id and base_url.</code>
|
377
|
+
</li>
|
378
|
+
</div>
|
379
|
+
|
380
|
+
<div>
|
381
|
+
<li class="never" data-hits="" data-linenumber="18">
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
<code class="ruby"> #</code>
|
387
|
+
</li>
|
388
|
+
</div>
|
389
|
+
|
390
|
+
<div>
|
391
|
+
<li class="covered" data-hits="1" data-linenumber="19">
|
392
|
+
|
393
|
+
<span class="hits">1</span>
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
<code class="ruby"> args [:tenant_provider]</code>
|
399
|
+
</li>
|
400
|
+
</div>
|
401
|
+
|
402
|
+
<div>
|
403
|
+
<li class="never" data-hits="" data-linenumber="20">
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
|
408
|
+
<code class="ruby"></code>
|
409
|
+
</li>
|
410
|
+
</div>
|
411
|
+
|
412
|
+
<div>
|
413
|
+
<li class="covered" data-hits="1" data-linenumber="21">
|
414
|
+
|
415
|
+
<span class="hits">1</span>
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
|
420
|
+
<code class="ruby"> def client</code>
|
421
|
+
</li>
|
422
|
+
</div>
|
423
|
+
|
424
|
+
<div>
|
425
|
+
<li class="covered" data-hits="63" data-linenumber="22">
|
426
|
+
|
427
|
+
<span class="hits">63</span>
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
<code class="ruby"> provider = options.tenant_provider ? options.tenant_provider.new(self) : options</code>
|
433
|
+
</li>
|
434
|
+
</div>
|
435
|
+
|
436
|
+
<div>
|
437
|
+
<li class="covered" data-hits="63" data-linenumber="23">
|
438
|
+
|
439
|
+
<span class="hits">63</span>
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
<code class="ruby"> options.client_id = provider.client_id</code>
|
445
|
+
</li>
|
446
|
+
</div>
|
447
|
+
|
448
|
+
<div>
|
449
|
+
<li class="never" data-hits="" data-linenumber="24">
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
<code class="ruby"></code>
|
455
|
+
</li>
|
456
|
+
</div>
|
457
|
+
|
458
|
+
<div>
|
459
|
+
<li class="covered" data-hits="63" data-linenumber="25">
|
460
|
+
|
461
|
+
<span class="hits">63</span>
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
<code class="ruby"> unless provider.respond_to?(:client_secret) && provider.client_secret</code>
|
467
|
+
</li>
|
468
|
+
</div>
|
469
|
+
|
470
|
+
<div>
|
471
|
+
<li class="covered" data-hits="1" data-linenumber="26">
|
472
|
+
|
473
|
+
<span class="hits">1</span>
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
<code class="ruby"> raise ArgumentError, "You must provide client_secret"</code>
|
479
|
+
</li>
|
480
|
+
</div>
|
481
|
+
|
482
|
+
<div>
|
483
|
+
<li class="never" data-hits="" data-linenumber="27">
|
484
|
+
|
485
|
+
|
486
|
+
|
487
|
+
|
488
|
+
<code class="ruby"> end</code>
|
489
|
+
</li>
|
490
|
+
</div>
|
491
|
+
|
492
|
+
<div>
|
493
|
+
<li class="never" data-hits="" data-linenumber="28">
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
<code class="ruby"></code>
|
499
|
+
</li>
|
500
|
+
</div>
|
501
|
+
|
502
|
+
<div>
|
503
|
+
<li class="covered" data-hits="62" data-linenumber="29">
|
504
|
+
|
505
|
+
<span class="hits">62</span>
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
<code class="ruby"> options.client_secret = provider.client_secret</code>
|
511
|
+
</li>
|
512
|
+
</div>
|
513
|
+
|
514
|
+
<div>
|
515
|
+
<li class="never" data-hits="" data-linenumber="30">
|
516
|
+
|
517
|
+
|
518
|
+
|
519
|
+
|
520
|
+
<code class="ruby"></code>
|
521
|
+
</li>
|
522
|
+
</div>
|
523
|
+
|
524
|
+
<div>
|
525
|
+
<li class="covered" data-hits="62" data-linenumber="31">
|
526
|
+
|
527
|
+
<span class="hits">62</span>
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
|
532
|
+
<code class="ruby"> tenant_id = provider.respond_to?(:tenant_id) ? provider.tenant_id : COMMON_TENANT_ID</code>
|
533
|
+
</li>
|
534
|
+
</div>
|
535
|
+
|
536
|
+
<div>
|
537
|
+
<li class="covered" data-hits="62" data-linenumber="32">
|
538
|
+
|
539
|
+
<span class="hits">62</span>
|
540
|
+
|
541
|
+
|
542
|
+
|
543
|
+
|
544
|
+
<code class="ruby"> base_url = provider.respond_to?(:base_url) ? provider.base_url : BASE_URL</code>
|
545
|
+
</li>
|
546
|
+
</div>
|
547
|
+
|
548
|
+
<div>
|
549
|
+
<li class="never" data-hits="" data-linenumber="33">
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
<code class="ruby"></code>
|
555
|
+
</li>
|
556
|
+
</div>
|
557
|
+
|
558
|
+
<div>
|
559
|
+
<li class="covered" data-hits="62" data-linenumber="34">
|
560
|
+
|
561
|
+
<span class="hits">62</span>
|
562
|
+
|
563
|
+
|
564
|
+
|
565
|
+
|
566
|
+
<code class="ruby"> options.authorize_params = provider.authorize_params if provider.respond_to?(:authorize_params)</code>
|
567
|
+
</li>
|
568
|
+
</div>
|
569
|
+
|
570
|
+
<div>
|
571
|
+
<li class="covered" data-hits="62" data-linenumber="35">
|
572
|
+
|
573
|
+
<span class="hits">62</span>
|
574
|
+
|
575
|
+
|
576
|
+
|
577
|
+
|
578
|
+
<code class="ruby"> options.token_params.scope = if defined?(request) && request.params["scope"]</code>
|
579
|
+
</li>
|
580
|
+
</div>
|
581
|
+
|
582
|
+
<div>
|
583
|
+
<li class="covered" data-hits="1" data-linenumber="36">
|
584
|
+
|
585
|
+
<span class="hits">1</span>
|
586
|
+
|
587
|
+
|
588
|
+
|
589
|
+
|
590
|
+
<code class="ruby"> request.params["scope"]</code>
|
591
|
+
</li>
|
592
|
+
</div>
|
593
|
+
|
594
|
+
<div>
|
595
|
+
<li class="covered" data-hits="61" data-linenumber="37">
|
596
|
+
|
597
|
+
<span class="hits">61</span>
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
|
602
|
+
<code class="ruby"> elsif provider.respond_to?(:scope) && provider.scope</code>
|
603
|
+
</li>
|
604
|
+
</div>
|
605
|
+
|
606
|
+
<div>
|
607
|
+
<li class="covered" data-hits="29" data-linenumber="38">
|
608
|
+
|
609
|
+
<span class="hits">29</span>
|
610
|
+
|
611
|
+
|
612
|
+
|
613
|
+
|
614
|
+
<code class="ruby"> provider.scope</code>
|
615
|
+
</li>
|
616
|
+
</div>
|
617
|
+
|
618
|
+
<div>
|
619
|
+
<li class="never" data-hits="" data-linenumber="39">
|
620
|
+
|
621
|
+
|
622
|
+
|
623
|
+
|
624
|
+
<code class="ruby"> else</code>
|
625
|
+
</li>
|
626
|
+
</div>
|
627
|
+
|
628
|
+
<div>
|
629
|
+
<li class="covered" data-hits="32" data-linenumber="40">
|
630
|
+
|
631
|
+
<span class="hits">32</span>
|
632
|
+
|
633
|
+
|
634
|
+
|
635
|
+
|
636
|
+
<code class="ruby"> DEFAULT_SCOPE</code>
|
637
|
+
</li>
|
638
|
+
</div>
|
639
|
+
|
640
|
+
<div>
|
641
|
+
<li class="never" data-hits="" data-linenumber="41">
|
642
|
+
|
643
|
+
|
644
|
+
|
645
|
+
|
646
|
+
<code class="ruby"> end</code>
|
647
|
+
</li>
|
648
|
+
</div>
|
649
|
+
|
650
|
+
<div>
|
651
|
+
<li class="covered" data-hits="62" data-linenumber="42">
|
652
|
+
|
653
|
+
<span class="hits">62</span>
|
654
|
+
|
655
|
+
|
656
|
+
|
657
|
+
|
658
|
+
<code class="ruby"> oauth2 = "oauth2/v2.0"</code>
|
659
|
+
</li>
|
660
|
+
</div>
|
661
|
+
|
662
|
+
<div>
|
663
|
+
<li class="never" data-hits="" data-linenumber="43">
|
664
|
+
|
665
|
+
|
666
|
+
|
667
|
+
|
668
|
+
<code class="ruby"></code>
|
669
|
+
</li>
|
670
|
+
</div>
|
671
|
+
|
672
|
+
<div>
|
673
|
+
<li class="covered" data-hits="62" data-linenumber="44">
|
674
|
+
|
675
|
+
<span class="hits">62</span>
|
676
|
+
|
677
|
+
|
678
|
+
|
679
|
+
|
680
|
+
<code class="ruby"> tenanted_endpoint_base_url = "#{base_url}/#{tenant_id}"</code>
|
681
|
+
</li>
|
682
|
+
</div>
|
683
|
+
|
684
|
+
<div>
|
685
|
+
<li class="never" data-hits="" data-linenumber="45">
|
686
|
+
|
687
|
+
|
688
|
+
|
689
|
+
|
690
|
+
<code class="ruby"></code>
|
691
|
+
</li>
|
692
|
+
</div>
|
693
|
+
|
694
|
+
<div>
|
695
|
+
<li class="covered" data-hits="62" data-linenumber="46">
|
696
|
+
|
697
|
+
<span class="hits">62</span>
|
698
|
+
|
699
|
+
|
700
|
+
|
701
|
+
|
702
|
+
<code class="ruby"> options.client_options.authorize_url = "#{tenanted_endpoint_base_url}/#{oauth2}/authorize"</code>
|
703
|
+
</li>
|
704
|
+
</div>
|
705
|
+
|
706
|
+
<div>
|
707
|
+
<li class="covered" data-hits="62" data-linenumber="47">
|
708
|
+
|
709
|
+
<span class="hits">62</span>
|
710
|
+
|
711
|
+
|
712
|
+
|
713
|
+
|
714
|
+
<code class="ruby"> options.client_options.token_url = "#{tenanted_endpoint_base_url}/#{oauth2}/token"</code>
|
715
|
+
</li>
|
716
|
+
</div>
|
717
|
+
|
718
|
+
<div>
|
719
|
+
<li class="never" data-hits="" data-linenumber="48">
|
720
|
+
|
721
|
+
|
722
|
+
|
723
|
+
|
724
|
+
<code class="ruby"></code>
|
725
|
+
</li>
|
726
|
+
</div>
|
727
|
+
|
728
|
+
<div>
|
729
|
+
<li class="never" data-hits="" data-linenumber="49">
|
730
|
+
|
731
|
+
|
732
|
+
|
733
|
+
|
734
|
+
<code class="ruby"> # On Behalf Of flow requires the default as the grant_type, so should only need to be configured</code>
|
735
|
+
</li>
|
736
|
+
</div>
|
737
|
+
|
738
|
+
<div>
|
739
|
+
<li class="never" data-hits="" data-linenumber="50">
|
740
|
+
|
741
|
+
|
742
|
+
|
743
|
+
|
744
|
+
<code class="ruby"> # in the provider (if at all).</code>
|
745
|
+
</li>
|
746
|
+
</div>
|
747
|
+
|
748
|
+
<div>
|
749
|
+
<li class="covered" data-hits="62" data-linenumber="51">
|
750
|
+
|
751
|
+
<span class="hits">62</span>
|
752
|
+
|
753
|
+
|
754
|
+
|
755
|
+
|
756
|
+
<code class="ruby"> options.token_params.grant_type = if provider.respond_to?(:grant_type) && provider.grant_type</code>
|
757
|
+
</li>
|
758
|
+
</div>
|
759
|
+
|
760
|
+
<div>
|
761
|
+
<li class="covered" data-hits="29" data-linenumber="52">
|
762
|
+
|
763
|
+
<span class="hits">29</span>
|
764
|
+
|
765
|
+
|
766
|
+
|
767
|
+
|
768
|
+
<code class="ruby"> provider.grant_type</code>
|
769
|
+
</li>
|
770
|
+
</div>
|
771
|
+
|
772
|
+
<div>
|
773
|
+
<li class="never" data-hits="" data-linenumber="53">
|
774
|
+
|
775
|
+
|
776
|
+
|
777
|
+
|
778
|
+
<code class="ruby"> else</code>
|
779
|
+
</li>
|
780
|
+
</div>
|
781
|
+
|
782
|
+
<div>
|
783
|
+
<li class="covered" data-hits="33" data-linenumber="54">
|
784
|
+
|
785
|
+
<span class="hits">33</span>
|
786
|
+
|
787
|
+
|
788
|
+
|
789
|
+
|
790
|
+
<code class="ruby"> grant_type</code>
|
791
|
+
</li>
|
792
|
+
</div>
|
793
|
+
|
794
|
+
<div>
|
795
|
+
<li class="never" data-hits="" data-linenumber="55">
|
796
|
+
|
797
|
+
|
798
|
+
|
799
|
+
|
800
|
+
<code class="ruby"> end</code>
|
801
|
+
</li>
|
802
|
+
</div>
|
803
|
+
|
804
|
+
<div>
|
805
|
+
<li class="never" data-hits="" data-linenumber="56">
|
806
|
+
|
807
|
+
|
808
|
+
|
809
|
+
|
810
|
+
<code class="ruby"></code>
|
811
|
+
</li>
|
812
|
+
</div>
|
813
|
+
|
814
|
+
<div>
|
815
|
+
<li class="never" data-hits="" data-linenumber="57">
|
816
|
+
|
817
|
+
|
818
|
+
|
819
|
+
|
820
|
+
<code class="ruby"> # On Behalf Of flow requires the default as the requested_token_use, so should only need to be configured</code>
|
821
|
+
</li>
|
822
|
+
</div>
|
823
|
+
|
824
|
+
<div>
|
825
|
+
<li class="never" data-hits="" data-linenumber="58">
|
826
|
+
|
827
|
+
|
828
|
+
|
829
|
+
|
830
|
+
<code class="ruby"> # in the provider (if at all).</code>
|
831
|
+
</li>
|
832
|
+
</div>
|
833
|
+
|
834
|
+
<div>
|
835
|
+
<li class="covered" data-hits="62" data-linenumber="59">
|
836
|
+
|
837
|
+
<span class="hits">62</span>
|
838
|
+
|
839
|
+
|
840
|
+
|
841
|
+
|
842
|
+
<code class="ruby"> options.token_params.requested_token_use = if provider.respond_to?(:requested_token_use) && provider.requested_token_use</code>
|
843
|
+
</li>
|
844
|
+
</div>
|
845
|
+
|
846
|
+
<div>
|
847
|
+
<li class="covered" data-hits="29" data-linenumber="60">
|
848
|
+
|
849
|
+
<span class="hits">29</span>
|
850
|
+
|
851
|
+
|
852
|
+
|
853
|
+
|
854
|
+
<code class="ruby"> provider.requested_token_use</code>
|
855
|
+
</li>
|
856
|
+
</div>
|
857
|
+
|
858
|
+
<div>
|
859
|
+
<li class="never" data-hits="" data-linenumber="61">
|
860
|
+
|
861
|
+
|
862
|
+
|
863
|
+
|
864
|
+
<code class="ruby"> else</code>
|
865
|
+
</li>
|
866
|
+
</div>
|
867
|
+
|
868
|
+
<div>
|
869
|
+
<li class="covered" data-hits="33" data-linenumber="62">
|
870
|
+
|
871
|
+
<span class="hits">33</span>
|
872
|
+
|
873
|
+
|
874
|
+
|
875
|
+
|
876
|
+
<code class="ruby"> requested_token_use</code>
|
877
|
+
</li>
|
878
|
+
</div>
|
879
|
+
|
880
|
+
<div>
|
881
|
+
<li class="never" data-hits="" data-linenumber="63">
|
882
|
+
|
883
|
+
|
884
|
+
|
885
|
+
|
886
|
+
<code class="ruby"> end</code>
|
887
|
+
</li>
|
888
|
+
</div>
|
889
|
+
|
890
|
+
<div>
|
891
|
+
<li class="never" data-hits="" data-linenumber="64">
|
892
|
+
|
893
|
+
|
894
|
+
|
895
|
+
|
896
|
+
<code class="ruby"></code>
|
897
|
+
</li>
|
898
|
+
</div>
|
899
|
+
|
900
|
+
<div>
|
901
|
+
<li class="covered" data-hits="62" data-linenumber="65">
|
902
|
+
|
903
|
+
<span class="hits">62</span>
|
904
|
+
|
905
|
+
|
906
|
+
|
907
|
+
|
908
|
+
<code class="ruby"> super</code>
|
909
|
+
</li>
|
910
|
+
</div>
|
911
|
+
|
912
|
+
<div>
|
913
|
+
<li class="never" data-hits="" data-linenumber="66">
|
914
|
+
|
915
|
+
|
916
|
+
|
917
|
+
|
918
|
+
<code class="ruby"> end</code>
|
919
|
+
</li>
|
920
|
+
</div>
|
921
|
+
|
922
|
+
<div>
|
923
|
+
<li class="never" data-hits="" data-linenumber="67">
|
924
|
+
|
925
|
+
|
926
|
+
|
927
|
+
|
928
|
+
<code class="ruby"></code>
|
929
|
+
</li>
|
930
|
+
</div>
|
931
|
+
|
932
|
+
<div>
|
933
|
+
<li class="covered" data-hits="1" data-linenumber="68">
|
934
|
+
|
935
|
+
<span class="hits">1</span>
|
936
|
+
|
937
|
+
|
938
|
+
|
939
|
+
|
940
|
+
<code class="ruby"> uid do</code>
|
941
|
+
</li>
|
942
|
+
</div>
|
943
|
+
|
944
|
+
<div>
|
945
|
+
<li class="covered" data-hits="44" data-linenumber="69">
|
946
|
+
|
947
|
+
<span class="hits">44</span>
|
948
|
+
|
949
|
+
|
950
|
+
|
951
|
+
|
952
|
+
<code class="ruby"> raw_info["userPrincipalName"]</code>
|
953
|
+
</li>
|
954
|
+
</div>
|
955
|
+
|
956
|
+
<div>
|
957
|
+
<li class="never" data-hits="" data-linenumber="70">
|
958
|
+
|
959
|
+
|
960
|
+
|
961
|
+
|
962
|
+
<code class="ruby"> end</code>
|
963
|
+
</li>
|
964
|
+
</div>
|
965
|
+
|
966
|
+
<div>
|
967
|
+
<li class="never" data-hits="" data-linenumber="71">
|
968
|
+
|
969
|
+
|
970
|
+
|
971
|
+
|
972
|
+
<code class="ruby"></code>
|
973
|
+
</li>
|
974
|
+
</div>
|
975
|
+
|
976
|
+
<div>
|
977
|
+
<li class="never" data-hits="" data-linenumber="72">
|
978
|
+
|
979
|
+
|
980
|
+
|
981
|
+
|
982
|
+
<code class="ruby"> # As per omniauth-microsoft_graph definition</code>
|
983
|
+
</li>
|
984
|
+
</div>
|
985
|
+
|
986
|
+
<div>
|
987
|
+
<li class="never" data-hits="" data-linenumber="73">
|
988
|
+
|
989
|
+
|
990
|
+
|
991
|
+
|
992
|
+
<code class="ruby"> # https://github.com/omniauth/omniauth/wiki/Auth-Hash-Schema</code>
|
993
|
+
</li>
|
994
|
+
</div>
|
995
|
+
|
996
|
+
<div>
|
997
|
+
<li class="covered" data-hits="1" data-linenumber="74">
|
998
|
+
|
999
|
+
<span class="hits">1</span>
|
1000
|
+
|
1001
|
+
|
1002
|
+
|
1003
|
+
|
1004
|
+
<code class="ruby"> info do</code>
|
1005
|
+
</li>
|
1006
|
+
</div>
|
1007
|
+
|
1008
|
+
<div>
|
1009
|
+
<li class="never" data-hits="" data-linenumber="75">
|
1010
|
+
|
1011
|
+
|
1012
|
+
|
1013
|
+
|
1014
|
+
<code class="ruby"> {</code>
|
1015
|
+
</li>
|
1016
|
+
</div>
|
1017
|
+
|
1018
|
+
<div>
|
1019
|
+
<li class="covered" data-hits="52" data-linenumber="76">
|
1020
|
+
|
1021
|
+
<span class="hits">52</span>
|
1022
|
+
|
1023
|
+
|
1024
|
+
|
1025
|
+
|
1026
|
+
<code class="ruby"> "name" => [raw_info["givenName"], raw_info["surname"]].join(' '),</code>
|
1027
|
+
</li>
|
1028
|
+
</div>
|
1029
|
+
|
1030
|
+
<div>
|
1031
|
+
<li class="never" data-hits="" data-linenumber="77">
|
1032
|
+
|
1033
|
+
|
1034
|
+
|
1035
|
+
|
1036
|
+
<code class="ruby"> "email" => raw_info["mail"],</code>
|
1037
|
+
</li>
|
1038
|
+
</div>
|
1039
|
+
|
1040
|
+
<div>
|
1041
|
+
<li class="never" data-hits="" data-linenumber="78">
|
1042
|
+
|
1043
|
+
|
1044
|
+
|
1045
|
+
|
1046
|
+
<code class="ruby"> "first_name" => raw_info["givenName"],</code>
|
1047
|
+
</li>
|
1048
|
+
</div>
|
1049
|
+
|
1050
|
+
<div>
|
1051
|
+
<li class="never" data-hits="" data-linenumber="79">
|
1052
|
+
|
1053
|
+
|
1054
|
+
|
1055
|
+
|
1056
|
+
<code class="ruby"> "last_name" => raw_info["surname"],</code>
|
1057
|
+
</li>
|
1058
|
+
</div>
|
1059
|
+
|
1060
|
+
<div>
|
1061
|
+
<li class="never" data-hits="" data-linenumber="80">
|
1062
|
+
|
1063
|
+
|
1064
|
+
|
1065
|
+
|
1066
|
+
<code class="ruby"> "nickname" => raw_info["displayName"],</code>
|
1067
|
+
</li>
|
1068
|
+
</div>
|
1069
|
+
|
1070
|
+
<div>
|
1071
|
+
<li class="never" data-hits="" data-linenumber="81">
|
1072
|
+
|
1073
|
+
|
1074
|
+
|
1075
|
+
|
1076
|
+
<code class="ruby"> "phone" => raw_info["mobilePhone"]</code>
|
1077
|
+
</li>
|
1078
|
+
</div>
|
1079
|
+
|
1080
|
+
<div>
|
1081
|
+
<li class="never" data-hits="" data-linenumber="82">
|
1082
|
+
|
1083
|
+
|
1084
|
+
|
1085
|
+
|
1086
|
+
<code class="ruby"> }</code>
|
1087
|
+
</li>
|
1088
|
+
</div>
|
1089
|
+
|
1090
|
+
<div>
|
1091
|
+
<li class="never" data-hits="" data-linenumber="83">
|
1092
|
+
|
1093
|
+
|
1094
|
+
|
1095
|
+
|
1096
|
+
<code class="ruby"> end</code>
|
1097
|
+
</li>
|
1098
|
+
</div>
|
1099
|
+
|
1100
|
+
<div>
|
1101
|
+
<li class="never" data-hits="" data-linenumber="84">
|
1102
|
+
|
1103
|
+
|
1104
|
+
|
1105
|
+
|
1106
|
+
<code class="ruby"></code>
|
1107
|
+
</li>
|
1108
|
+
</div>
|
1109
|
+
|
1110
|
+
<div>
|
1111
|
+
<li class="never" data-hits="" data-linenumber="85">
|
1112
|
+
|
1113
|
+
|
1114
|
+
|
1115
|
+
|
1116
|
+
<code class="ruby"></code>
|
1117
|
+
</li>
|
1118
|
+
</div>
|
1119
|
+
|
1120
|
+
<div>
|
1121
|
+
<li class="never" data-hits="" data-linenumber="86">
|
1122
|
+
|
1123
|
+
|
1124
|
+
|
1125
|
+
|
1126
|
+
<code class="ruby"> # Although the only extra referred to in https://github.com/omniauth/omniauth/wiki/Auth-Hash-Schema</code>
|
1127
|
+
</li>
|
1128
|
+
</div>
|
1129
|
+
|
1130
|
+
<div>
|
1131
|
+
<li class="never" data-hits="" data-linenumber="87">
|
1132
|
+
|
1133
|
+
|
1134
|
+
|
1135
|
+
|
1136
|
+
<code class="ruby"> # is raw_info, include other useful information such as tenant identifier as other keys.</code>
|
1137
|
+
</li>
|
1138
|
+
</div>
|
1139
|
+
|
1140
|
+
<div>
|
1141
|
+
<li class="never" data-hits="" data-linenumber="88">
|
1142
|
+
|
1143
|
+
|
1144
|
+
|
1145
|
+
|
1146
|
+
<code class="ruby"> # Probably best not to merge them all into the raw_info key, so they remain different.</code>
|
1147
|
+
</li>
|
1148
|
+
</div>
|
1149
|
+
|
1150
|
+
<div>
|
1151
|
+
<li class="covered" data-hits="1" data-linenumber="89">
|
1152
|
+
|
1153
|
+
<span class="hits">1</span>
|
1154
|
+
|
1155
|
+
|
1156
|
+
|
1157
|
+
|
1158
|
+
<code class="ruby"> extra do</code>
|
1159
|
+
</li>
|
1160
|
+
</div>
|
1161
|
+
|
1162
|
+
<div>
|
1163
|
+
<li class="never" data-hits="" data-linenumber="90">
|
1164
|
+
|
1165
|
+
|
1166
|
+
|
1167
|
+
|
1168
|
+
<code class="ruby"> {</code>
|
1169
|
+
</li>
|
1170
|
+
</div>
|
1171
|
+
|
1172
|
+
<div>
|
1173
|
+
<li class="covered" data-hits="62" data-linenumber="91">
|
1174
|
+
|
1175
|
+
<span class="hits">62</span>
|
1176
|
+
|
1177
|
+
|
1178
|
+
|
1179
|
+
|
1180
|
+
<code class="ruby"> 'raw_info' => raw_info,</code>
|
1181
|
+
</li>
|
1182
|
+
</div>
|
1183
|
+
|
1184
|
+
<div>
|
1185
|
+
<li class="never" data-hits="" data-linenumber="92">
|
1186
|
+
|
1187
|
+
|
1188
|
+
|
1189
|
+
|
1190
|
+
<code class="ruby"> 'params' => access_token.params,</code>
|
1191
|
+
</li>
|
1192
|
+
</div>
|
1193
|
+
|
1194
|
+
<div>
|
1195
|
+
<li class="never" data-hits="" data-linenumber="93">
|
1196
|
+
|
1197
|
+
|
1198
|
+
|
1199
|
+
|
1200
|
+
<code class="ruby"> 'aud' => options.client_id,</code>
|
1201
|
+
</li>
|
1202
|
+
</div>
|
1203
|
+
|
1204
|
+
<div>
|
1205
|
+
<li class="never" data-hits="" data-linenumber="94">
|
1206
|
+
|
1207
|
+
|
1208
|
+
|
1209
|
+
|
1210
|
+
<code class="ruby"> 'tid' => @jwt_data["tid"]</code>
|
1211
|
+
</li>
|
1212
|
+
</div>
|
1213
|
+
|
1214
|
+
<div>
|
1215
|
+
<li class="never" data-hits="" data-linenumber="95">
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
|
1220
|
+
<code class="ruby"> }</code>
|
1221
|
+
</li>
|
1222
|
+
</div>
|
1223
|
+
|
1224
|
+
<div>
|
1225
|
+
<li class="never" data-hits="" data-linenumber="96">
|
1226
|
+
|
1227
|
+
|
1228
|
+
|
1229
|
+
|
1230
|
+
<code class="ruby"> end</code>
|
1231
|
+
</li>
|
1232
|
+
</div>
|
1233
|
+
|
1234
|
+
<div>
|
1235
|
+
<li class="never" data-hits="" data-linenumber="97">
|
1236
|
+
|
1237
|
+
|
1238
|
+
|
1239
|
+
|
1240
|
+
<code class="ruby"></code>
|
1241
|
+
</li>
|
1242
|
+
</div>
|
1243
|
+
|
1244
|
+
<div>
|
1245
|
+
<li class="covered" data-hits="1" data-linenumber="98">
|
1246
|
+
|
1247
|
+
<span class="hits">1</span>
|
1248
|
+
|
1249
|
+
|
1250
|
+
|
1251
|
+
|
1252
|
+
<code class="ruby"> def callback_url</code>
|
1253
|
+
</li>
|
1254
|
+
</div>
|
1255
|
+
|
1256
|
+
<div>
|
1257
|
+
<li class="covered" data-hits="1" data-linenumber="99">
|
1258
|
+
|
1259
|
+
<span class="hits">1</span>
|
1260
|
+
|
1261
|
+
|
1262
|
+
|
1263
|
+
|
1264
|
+
<code class="ruby"> raise NotImplementedError, "Callback URL is not supported in on behalf of flow"</code>
|
1265
|
+
</li>
|
1266
|
+
</div>
|
1267
|
+
|
1268
|
+
<div>
|
1269
|
+
<li class="never" data-hits="" data-linenumber="100">
|
1270
|
+
|
1271
|
+
|
1272
|
+
|
1273
|
+
|
1274
|
+
<code class="ruby"> end</code>
|
1275
|
+
</li>
|
1276
|
+
</div>
|
1277
|
+
|
1278
|
+
<div>
|
1279
|
+
<li class="never" data-hits="" data-linenumber="101">
|
1280
|
+
|
1281
|
+
|
1282
|
+
|
1283
|
+
|
1284
|
+
<code class="ruby"></code>
|
1285
|
+
</li>
|
1286
|
+
</div>
|
1287
|
+
|
1288
|
+
<div>
|
1289
|
+
<li class="covered" data-hits="1" data-linenumber="102">
|
1290
|
+
|
1291
|
+
<span class="hits">1</span>
|
1292
|
+
|
1293
|
+
|
1294
|
+
|
1295
|
+
|
1296
|
+
<code class="ruby"> def raw_info</code>
|
1297
|
+
</li>
|
1298
|
+
</div>
|
1299
|
+
|
1300
|
+
<div>
|
1301
|
+
<li class="covered" data-hits="470" data-linenumber="103">
|
1302
|
+
|
1303
|
+
<span class="hits">470</span>
|
1304
|
+
|
1305
|
+
|
1306
|
+
|
1307
|
+
|
1308
|
+
<code class="ruby"> @raw_info = access_token.request(:get, "https://graph.microsoft.com/v1.0/me").parsed if @raw_info.nil?</code>
|
1309
|
+
</li>
|
1310
|
+
</div>
|
1311
|
+
|
1312
|
+
<div>
|
1313
|
+
<li class="covered" data-hits="470" data-linenumber="104">
|
1314
|
+
|
1315
|
+
<span class="hits">470</span>
|
1316
|
+
|
1317
|
+
|
1318
|
+
|
1319
|
+
|
1320
|
+
<code class="ruby"> @raw_info</code>
|
1321
|
+
</li>
|
1322
|
+
</div>
|
1323
|
+
|
1324
|
+
<div>
|
1325
|
+
<li class="never" data-hits="" data-linenumber="105">
|
1326
|
+
|
1327
|
+
|
1328
|
+
|
1329
|
+
|
1330
|
+
<code class="ruby"> end</code>
|
1331
|
+
</li>
|
1332
|
+
</div>
|
1333
|
+
|
1334
|
+
<div>
|
1335
|
+
<li class="never" data-hits="" data-linenumber="106">
|
1336
|
+
|
1337
|
+
|
1338
|
+
|
1339
|
+
|
1340
|
+
<code class="ruby"></code>
|
1341
|
+
</li>
|
1342
|
+
</div>
|
1343
|
+
|
1344
|
+
<div>
|
1345
|
+
<li class="covered" data-hits="1" data-linenumber="107">
|
1346
|
+
|
1347
|
+
<span class="hits">1</span>
|
1348
|
+
|
1349
|
+
|
1350
|
+
|
1351
|
+
|
1352
|
+
<code class="ruby"> def callback_phase</code>
|
1353
|
+
</li>
|
1354
|
+
</div>
|
1355
|
+
|
1356
|
+
<div>
|
1357
|
+
<li class="covered" data-hits="44" data-linenumber="108">
|
1358
|
+
|
1359
|
+
<span class="hits">44</span>
|
1360
|
+
|
1361
|
+
|
1362
|
+
|
1363
|
+
|
1364
|
+
<code class="ruby"> options.provider_ignores_state = true</code>
|
1365
|
+
</li>
|
1366
|
+
</div>
|
1367
|
+
|
1368
|
+
<div>
|
1369
|
+
<li class="covered" data-hits="44" data-linenumber="109">
|
1370
|
+
|
1371
|
+
<span class="hits">44</span>
|
1372
|
+
|
1373
|
+
|
1374
|
+
|
1375
|
+
|
1376
|
+
<code class="ruby"> super</code>
|
1377
|
+
</li>
|
1378
|
+
</div>
|
1379
|
+
|
1380
|
+
<div>
|
1381
|
+
<li class="never" data-hits="" data-linenumber="110">
|
1382
|
+
|
1383
|
+
|
1384
|
+
|
1385
|
+
|
1386
|
+
<code class="ruby"> end</code>
|
1387
|
+
</li>
|
1388
|
+
</div>
|
1389
|
+
|
1390
|
+
<div>
|
1391
|
+
<li class="never" data-hits="" data-linenumber="111">
|
1392
|
+
|
1393
|
+
|
1394
|
+
|
1395
|
+
|
1396
|
+
<code class="ruby"></code>
|
1397
|
+
</li>
|
1398
|
+
</div>
|
1399
|
+
|
1400
|
+
<div>
|
1401
|
+
<li class="covered" data-hits="1" data-linenumber="112">
|
1402
|
+
|
1403
|
+
<span class="hits">1</span>
|
1404
|
+
|
1405
|
+
|
1406
|
+
|
1407
|
+
|
1408
|
+
<code class="ruby"> protected</code>
|
1409
|
+
</li>
|
1410
|
+
</div>
|
1411
|
+
|
1412
|
+
<div>
|
1413
|
+
<li class="never" data-hits="" data-linenumber="113">
|
1414
|
+
|
1415
|
+
|
1416
|
+
|
1417
|
+
|
1418
|
+
<code class="ruby"></code>
|
1419
|
+
</li>
|
1420
|
+
</div>
|
1421
|
+
|
1422
|
+
<div>
|
1423
|
+
<li class="covered" data-hits="1" data-linenumber="114">
|
1424
|
+
|
1425
|
+
<span class="hits">1</span>
|
1426
|
+
|
1427
|
+
|
1428
|
+
|
1429
|
+
|
1430
|
+
<code class="ruby"> def grant_type</code>
|
1431
|
+
</li>
|
1432
|
+
</div>
|
1433
|
+
|
1434
|
+
<div>
|
1435
|
+
<li class="covered" data-hits="33" data-linenumber="115">
|
1436
|
+
|
1437
|
+
<span class="hits">33</span>
|
1438
|
+
|
1439
|
+
|
1440
|
+
|
1441
|
+
|
1442
|
+
<code class="ruby"> "urn:ietf:params:oauth:grant-type:jwt-bearer"</code>
|
1443
|
+
</li>
|
1444
|
+
</div>
|
1445
|
+
|
1446
|
+
<div>
|
1447
|
+
<li class="never" data-hits="" data-linenumber="116">
|
1448
|
+
|
1449
|
+
|
1450
|
+
|
1451
|
+
|
1452
|
+
<code class="ruby"> end</code>
|
1453
|
+
</li>
|
1454
|
+
</div>
|
1455
|
+
|
1456
|
+
<div>
|
1457
|
+
<li class="never" data-hits="" data-linenumber="117">
|
1458
|
+
|
1459
|
+
|
1460
|
+
|
1461
|
+
|
1462
|
+
<code class="ruby"></code>
|
1463
|
+
</li>
|
1464
|
+
</div>
|
1465
|
+
|
1466
|
+
<div>
|
1467
|
+
<li class="covered" data-hits="1" data-linenumber="118">
|
1468
|
+
|
1469
|
+
<span class="hits">1</span>
|
1470
|
+
|
1471
|
+
|
1472
|
+
|
1473
|
+
|
1474
|
+
<code class="ruby"> def requested_token_use</code>
|
1475
|
+
</li>
|
1476
|
+
</div>
|
1477
|
+
|
1478
|
+
<div>
|
1479
|
+
<li class="covered" data-hits="33" data-linenumber="119">
|
1480
|
+
|
1481
|
+
<span class="hits">33</span>
|
1482
|
+
|
1483
|
+
|
1484
|
+
|
1485
|
+
|
1486
|
+
<code class="ruby"> "on_behalf_of"</code>
|
1487
|
+
</li>
|
1488
|
+
</div>
|
1489
|
+
|
1490
|
+
<div>
|
1491
|
+
<li class="never" data-hits="" data-linenumber="120">
|
1492
|
+
|
1493
|
+
|
1494
|
+
|
1495
|
+
|
1496
|
+
<code class="ruby"> end</code>
|
1497
|
+
</li>
|
1498
|
+
</div>
|
1499
|
+
|
1500
|
+
<div>
|
1501
|
+
<li class="never" data-hits="" data-linenumber="121">
|
1502
|
+
|
1503
|
+
|
1504
|
+
|
1505
|
+
|
1506
|
+
<code class="ruby"></code>
|
1507
|
+
</li>
|
1508
|
+
</div>
|
1509
|
+
|
1510
|
+
<div>
|
1511
|
+
<li class="never" data-hits="" data-linenumber="122">
|
1512
|
+
|
1513
|
+
|
1514
|
+
|
1515
|
+
|
1516
|
+
<code class="ruby"> # This requires examining the request body, as it is almost definitely delivered as</code>
|
1517
|
+
</li>
|
1518
|
+
</div>
|
1519
|
+
|
1520
|
+
<div>
|
1521
|
+
<li class="never" data-hits="" data-linenumber="123">
|
1522
|
+
|
1523
|
+
|
1524
|
+
|
1525
|
+
|
1526
|
+
<code class="ruby"> # ContentType application/json</code>
|
1527
|
+
</li>
|
1528
|
+
</div>
|
1529
|
+
|
1530
|
+
<div>
|
1531
|
+
<li class="covered" data-hits="1" data-linenumber="124">
|
1532
|
+
|
1533
|
+
<span class="hits">1</span>
|
1534
|
+
|
1535
|
+
|
1536
|
+
|
1537
|
+
|
1538
|
+
<code class="ruby"> def build_access_token</code>
|
1539
|
+
</li>
|
1540
|
+
</div>
|
1541
|
+
|
1542
|
+
<div>
|
1543
|
+
<li class="covered" data-hits="44" data-linenumber="125">
|
1544
|
+
|
1545
|
+
<span class="hits">44</span>
|
1546
|
+
|
1547
|
+
|
1548
|
+
|
1549
|
+
|
1550
|
+
<code class="ruby"> body = JSON.parse(request.body.read)</code>
|
1551
|
+
</li>
|
1552
|
+
</div>
|
1553
|
+
|
1554
|
+
<div>
|
1555
|
+
<li class="covered" data-hits="43" data-linenumber="126">
|
1556
|
+
|
1557
|
+
<span class="hits">43</span>
|
1558
|
+
|
1559
|
+
|
1560
|
+
|
1561
|
+
|
1562
|
+
<code class="ruby"> request.body.rewind</code>
|
1563
|
+
</li>
|
1564
|
+
</div>
|
1565
|
+
|
1566
|
+
<div>
|
1567
|
+
<li class="never" data-hits="" data-linenumber="127">
|
1568
|
+
|
1569
|
+
|
1570
|
+
|
1571
|
+
|
1572
|
+
<code class="ruby"> # Need to store the JWT token here, as otherwise the actual tenant (tid)</code>
|
1573
|
+
</li>
|
1574
|
+
</div>
|
1575
|
+
|
1576
|
+
<div>
|
1577
|
+
<li class="never" data-hits="" data-linenumber="128">
|
1578
|
+
|
1579
|
+
|
1580
|
+
|
1581
|
+
|
1582
|
+
<code class="ruby"> # is not found in the subsequent /me API call.</code>
|
1583
|
+
</li>
|
1584
|
+
</div>
|
1585
|
+
|
1586
|
+
<div>
|
1587
|
+
<li class="never" data-hits="" data-linenumber="129">
|
1588
|
+
|
1589
|
+
|
1590
|
+
|
1591
|
+
|
1592
|
+
<code class="ruby"> # Check for tid claim, as it will be useful.</code>
|
1593
|
+
</li>
|
1594
|
+
</div>
|
1595
|
+
|
1596
|
+
<div>
|
1597
|
+
<li class="covered" data-hits="43" data-linenumber="130">
|
1598
|
+
|
1599
|
+
<span class="hits">43</span>
|
1600
|
+
|
1601
|
+
|
1602
|
+
|
1603
|
+
|
1604
|
+
<code class="ruby"> @jwt_data = JWT.decode(body['code'], nil, false, { required_claims: "tid" })[0]</code>
|
1605
|
+
</li>
|
1606
|
+
</div>
|
1607
|
+
|
1608
|
+
<div>
|
1609
|
+
<li class="never" data-hits="" data-linenumber="131">
|
1610
|
+
|
1611
|
+
|
1612
|
+
|
1613
|
+
|
1614
|
+
<code class="ruby"></code>
|
1615
|
+
</li>
|
1616
|
+
</div>
|
1617
|
+
|
1618
|
+
<div>
|
1619
|
+
<li class="covered" data-hits="42" data-linenumber="132">
|
1620
|
+
|
1621
|
+
<span class="hits">42</span>
|
1622
|
+
|
1623
|
+
|
1624
|
+
|
1625
|
+
|
1626
|
+
<code class="ruby"> client.get_token({ assertion: body['code'] }.merge(token_params))</code>
|
1627
|
+
</li>
|
1628
|
+
</div>
|
1629
|
+
|
1630
|
+
<div>
|
1631
|
+
<li class="never" data-hits="" data-linenumber="133">
|
1632
|
+
|
1633
|
+
|
1634
|
+
|
1635
|
+
|
1636
|
+
<code class="ruby"> end</code>
|
1637
|
+
</li>
|
1638
|
+
</div>
|
1639
|
+
|
1640
|
+
<div>
|
1641
|
+
<li class="never" data-hits="" data-linenumber="134">
|
1642
|
+
|
1643
|
+
|
1644
|
+
|
1645
|
+
|
1646
|
+
<code class="ruby"> end</code>
|
1647
|
+
</li>
|
1648
|
+
</div>
|
1649
|
+
|
1650
|
+
<div>
|
1651
|
+
<li class="never" data-hits="" data-linenumber="135">
|
1652
|
+
|
1653
|
+
|
1654
|
+
|
1655
|
+
|
1656
|
+
<code class="ruby"> end</code>
|
1657
|
+
</li>
|
1658
|
+
</div>
|
1659
|
+
|
1660
|
+
<div>
|
1661
|
+
<li class="never" data-hits="" data-linenumber="136">
|
1662
|
+
|
1663
|
+
|
1664
|
+
|
1665
|
+
|
1666
|
+
<code class="ruby">end</code>
|
1667
|
+
</li>
|
1668
|
+
</div>
|
1669
|
+
|
1670
|
+
<div>
|
1671
|
+
<li class="never" data-hits="" data-linenumber="137">
|
1672
|
+
|
1673
|
+
|
1674
|
+
|
1675
|
+
|
1676
|
+
<code class="ruby"></code>
|
1677
|
+
</li>
|
1678
|
+
</div>
|
1679
|
+
|
1680
|
+
<div>
|
1681
|
+
<li class="covered" data-hits="1" data-linenumber="138">
|
1682
|
+
|
1683
|
+
<span class="hits">1</span>
|
1684
|
+
|
1685
|
+
|
1686
|
+
|
1687
|
+
|
1688
|
+
<code class="ruby">OmniAuth.config.add_camelization 'entra_id_jwt', 'EntraIdJWT'</code>
|
1689
|
+
</li>
|
1690
|
+
</div>
|
1691
|
+
|
1692
|
+
</ol>
|
1693
|
+
</pre>
|
1694
|
+
</div>
|
1695
|
+
|
1696
|
+
|
1697
|
+
</div>
|
1698
|
+
</div>
|
1699
|
+
</body>
|
1700
|
+
</html>
|