WEBVTT

1
00:00:05.095 --> 00:00:07.555
<00:00:05.095>So, <00:00:05.375>um, <00:00:05.654>yeah, <00:00:05.935>that's <00:00:06.215>the <00:00:06.494>agenda

2
00:00:07.575 --> 00:00:09.155
<00:00:07.575>for <00:00:07.808>the <00:00:08.041>next <00:00:08.275>kind <00:00:08.508>of <00:00:08.741>30 <00:00:08.975>minutes.

3
00:00:09.535 --> 00:00:12.955
<00:00:09.535>Um, <00:00:09.690>why <00:00:09.846>do <00:00:10.001>we <00:00:10.157>want <00:00:10.312>to <00:00:10.468>delegate <00:00:10.623>authentication <00:00:10.779>of <00:00:10.935>users?

4
00:00:13.655 --> 00:00:16.355
<00:00:13.655>We <00:00:13.830>want, <00:00:14.004>I <00:00:14.180>wanna <00:00:14.354>show <00:00:14.530>you <00:00:14.704>some <00:00:14.879>practical <00:00:15.055>authentication

5
00:00:16.455 --> 00:00:19.835
<00:00:16.455>by <00:00:16.630>example, <00:00:16.805>both <00:00:16.979>from <00:00:17.154>an <00:00:17.330>general <00:00:17.505>open <00:00:17.680>Mighty <00:00:17.854>Connect

6
00:00:19.835 --> 00:00:20.995
<00:00:19.835>perspective, <00:00:20.357>and <00:00:20.879>then

7
00:00:21.145 --> 00:00:23.715
<00:00:21.145>what <00:00:21.320>key <00:00:21.495>flow <00:00:21.669>can <00:00:21.845>help <00:00:22.020>you <00:00:22.195>with <00:00:22.370>around <00:00:22.544>that.

8
00:00:24.575 --> 00:00:26.595
<00:00:24.575>And <00:00:24.730>then <00:00:24.886>we'd <00:00:25.041>finally <00:00:25.197>look <00:00:25.352>at <00:00:25.508>all <00:00:25.663>the <00:00:25.819>other <00:00:25.974>things

9
00:00:26.595 --> 00:00:29.075
<00:00:26.595>that <00:00:26.794>you <00:00:26.994>need <00:00:27.195>when <00:00:27.395>you <00:00:27.595>are <00:00:27.794>authenticating <00:00:27.994>users,

10
00:00:29.775 --> 00:00:32.515
<00:00:29.775>and <00:00:29.974>then <00:00:30.174>sum <00:00:30.375>it <00:00:30.575>up <00:00:30.775>in <00:00:30.974>standards <00:00:31.174>everywhere.

11
00:00:34.775 --> 00:00:36.355
<00:00:34.775>So <00:00:35.241>the <00:00:35.708>motivation, <00:00:36.175>um,

12
00:00:37.285 --> 00:00:39.585
<00:00:37.285>authentication <00:00:37.565>is <00:00:37.845>about <00:00:38.125>answering <00:00:38.404>the <00:00:38.684>question,

13
00:00:39.765 --> 00:00:41.305
<00:00:39.765>who <00:00:40.042>are <00:00:40.319>you <00:00:40.596>for <00:00:40.873>an <00:00:41.150>application?

14
00:00:41.305 --> 00:00:43.905
<00:00:41.305>Application <00:00:41.655>has <00:00:42.005>data, <00:00:42.355>has <00:00:42.705>functionality

15
00:00:44.325 --> 00:00:46.225
<00:00:44.325>and <00:00:44.500>it <00:00:44.675>wants <00:00:44.850>to <00:00:45.025>offer <00:00:45.200>that <00:00:45.375>to <00:00:45.550>the <00:00:45.725>users.

16
00:00:46.725 --> 00:00:49.625
<00:00:46.725>But <00:00:46.852>then <00:00:46.979>the <00:00:47.106>first <00:00:47.234>question <00:00:47.361>is, <00:00:47.488>who <00:00:47.615>are <00:00:47.743>you <00:00:47.870>to <00:00:47.997>the <00:00:48.125>one,

17
00:00:49.685 --> 00:00:51.585
<00:00:49.685>the <00:00:49.860>one <00:00:50.035>person <00:00:50.210>that <00:00:50.385>comes <00:00:50.560>around <00:00:50.735>in <00:00:50.910>the <00:00:51.085>browser?

18
00:00:53.005 --> 00:00:54.585
<00:00:53.005>Um, <00:00:53.705>but <00:00:54.405>yeah,

19
00:00:54.615 --> 00:00:57.145
<00:00:54.615>usually <00:00:54.770>it <00:00:54.926>starts <00:00:55.081>a <00:00:55.237>lot <00:00:55.392>earlier <00:00:55.548>than <00:00:55.703>just <00:00:55.859>logging <00:00:56.015>in

20
00:00:57.145 --> 00:00:59.145
<00:00:57.145>because, <00:00:57.611>um, <00:00:58.078>you <00:00:58.545>want

21
00:00:59.145 --> 00:01:01.065
<00:00:59.145>to <00:00:59.320>know <00:00:59.495>if <00:00:59.670>the <00:00:59.845>user <00:01:00.020>is <00:01:00.195>already <00:01:00.370>logged <00:01:00.545>in.

22
00:01:01.285 --> 00:01:03.265
<00:01:01.285>And <00:01:01.425>then <00:01:01.565>you <00:01:01.705>can <00:01:01.845>really <00:01:01.985>want <00:01:02.125>to <00:01:02.264>choose, <00:01:02.404>if <00:01:02.544>you <00:01:02.684>want

23
00:01:03.265 --> 00:01:06.585
<00:01:03.265>to <00:01:03.405>show <00:01:03.545>a <00:01:03.685>welcome <00:01:03.825>screen, <00:01:03.965>show <00:01:04.105>some <00:01:04.245>data <00:01:04.385>about <00:01:04.525>the <00:01:04.665>user,

24
00:01:07.205 --> 00:01:08.665
<00:01:07.205>and <00:01:07.392>we <00:01:07.580>will <00:01:07.768>start <00:01:07.955>at <00:01:08.143>the <00:01:08.331>very <00:01:08.518>beginning.

25
00:01:08.725 --> 00:01:11.265
<00:01:08.725>How <00:01:08.852>can <00:01:08.979>I <00:01:09.106>figure <00:01:09.234>out <00:01:09.361>if <00:01:09.488>the <00:01:09.615>user <00:01:09.743>is <00:01:09.870>already <00:01:09.997>logged <00:01:10.125>in?

26
00:01:12.205 --> 00:01:14.585
<00:01:12.205>And <00:01:12.380>then <00:01:12.554>there <00:01:12.730>are <00:01:12.905>these <00:01:13.080>flow <00:01:13.255>diagrams, <00:01:13.429>whoever <00:01:13.605>saw

27
00:01:14.585 --> 00:01:17.145
<00:01:14.585>that <00:01:14.760>flow <00:01:14.935>diagram <00:01:15.110>here <00:01:15.285>on <00:01:15.460>the <00:01:15.635>right <00:01:15.810>authentication <00:01:15.985>flow.

28
00:01:18.805 --> 00:01:21.025
<00:01:18.805>Um, <00:01:19.038>I <00:01:19.271>think <00:01:19.505>that's <00:01:19.738>not <00:01:19.971>very <00:01:20.205>practical.

29
00:01:21.045 --> 00:01:24.025
<00:01:21.045>So <00:01:21.172>we <00:01:21.299>dive <00:01:21.426>into <00:01:21.554>URLs, <00:01:21.681>how <00:01:21.808>to <00:01:21.935>put <00:01:22.063>the <00:01:22.190>parameters <00:01:22.317>in <00:01:22.445>here

30
00:01:24.025 --> 00:01:25.625
<00:01:24.025>and <00:01:24.225>how <00:01:24.425>to <00:01:24.625>make <00:01:24.825>practical <00:01:25.025>use <00:01:25.225>of <00:01:25.425>it.

31
00:01:26.085 --> 00:01:27.785
<00:01:26.085>So <00:01:26.240>that <00:01:26.396>will <00:01:26.551>be <00:01:26.707>the, <00:01:26.862>the <00:01:27.018>core <00:01:27.173>of <00:01:27.329>the <00:01:27.485>talk.

32
00:01:29.355 --> 00:01:31.935
<00:01:29.355>And <00:01:29.530>I <00:01:29.705>also <00:01:29.880>show <00:01:30.055>while <00:01:30.230>I'm <00:01:30.405>of <00:01:30.580>the <00:01:30.755>maintainers

33
00:01:31.935 --> 00:01:35.055
<00:01:31.935>of <00:01:32.062>the <00:01:32.189>key <00:01:32.316>cloud <00:01:32.444>project, <00:01:32.571>so <00:01:32.698>I <00:01:32.825>will <00:01:32.953>also <00:01:33.080>show <00:01:33.207>you <00:01:33.335>the

34
00:01:35.195 --> 00:01:36.735
<00:01:35.195>how <00:01:35.393>you <00:01:35.591>can <00:01:35.789>make <00:01:35.987>use <00:01:36.185>of <00:01:36.383>the <00:01:36.581>features

35
00:01:37.115 --> 00:01:39.295
<00:01:37.115>and <00:01:37.395>spending <00:01:37.675>minimum <00:01:37.955>amount <00:01:38.235>of <00:01:38.515>work.

36
00:01:39.715 --> 00:01:42.295
<00:01:39.715>Uh, <00:01:39.890>you <00:01:40.065>can <00:01:40.240>then <00:01:40.415>build <00:01:40.590>on <00:01:40.765>the <00:01:40.940>business <00:01:41.115>functionality,

37
00:01:42.675 --> 00:01:45.735
<00:01:42.675>but <00:01:42.908>then <00:01:43.141>authenticating <00:01:43.375>users <00:01:43.608>shouldn't <00:01:43.841>be, <00:01:44.075>um,

38
00:01:45.885 --> 00:01:47.735
<00:01:45.884>something <00:01:46.164>you <00:01:46.445>do <00:01:46.725>again <00:01:47.005>and <00:01:47.285>again

39
00:01:47.735 --> 00:01:49.375
<00:01:47.735>because <00:01:48.015>it's <00:01:48.295>already <00:01:48.575>been <00:01:48.855>done <00:01:49.135>before

40
00:01:49.375 --> 00:01:51.375
<00:01:49.375>and <00:01:49.608>probably <00:01:49.841>millions <00:01:50.075>of <00:01:50.308>times <00:01:50.541>done <00:01:50.775>before.

41
00:01:51.955 --> 00:01:52.975
<00:01:51.955>And <00:01:52.261>with <00:01:52.567>key <00:01:52.872>cloak,

42
00:01:53.275 --> 00:01:54.775
<00:01:53.275>you <00:01:53.467>have <00:01:53.660>a <00:01:53.853>well <00:01:54.046>established <00:01:54.239>solution <00:01:54.432>for <00:01:54.625>that.

43
00:01:57.325 --> 00:02:00.185
<00:01:57.325>So <00:01:57.480>the <00:01:57.636>things <00:01:57.791>you <00:01:57.947>can <00:01:58.102>do <00:01:58.258>with <00:01:58.413>key <00:01:58.569>log, <00:01:58.725>um,

44
00:02:00.205 --> 00:02:02.785
<00:02:00.205>and <00:02:00.360>authentication <00:02:00.516>in <00:02:00.671>general, <00:02:00.827>it <00:02:00.982>starts <00:02:01.138>with, <00:02:01.293>as <00:02:01.449>I <00:02:01.605>said,

45
00:02:02.785 --> 00:02:04.585
<00:02:02.785>with <00:02:03.251>already <00:02:03.718>logged <00:02:04.185>in.

46
00:02:04.585 --> 00:02:05.865
<00:02:04.585>That's <00:02:04.815>one <00:02:05.045>of <00:02:05.276>the <00:02:05.506>first <00:02:05.737>question.

47
00:02:05.925 --> 00:02:08.545
<00:02:05.925>But <00:02:06.100>then <00:02:06.274>you <00:02:06.450>log <00:02:06.625>in, <00:02:06.800>well <00:02:06.975>that's <00:02:07.149>quite <00:02:07.325>natural,

48
00:02:09.085 --> 00:02:10.545
<00:02:09.085>but <00:02:09.413>also <00:02:09.741>about <00:02:10.070>changing <00:02:10.399>password.

49
00:02:10.565 --> 00:02:12.945
<00:02:10.565>You <00:02:10.704>can <00:02:10.845>register <00:02:10.984>a <00:02:11.125>user, <00:02:11.265>you <00:02:11.405>have <00:02:11.545>a <00:02:11.685>forgot <00:02:11.825>password <00:02:11.965>flow,

50
00:02:13.205 --> 00:02:14.505
<00:02:13.205>you <00:02:13.790>wanna <00:02:14.375>re-authenticate.

51
00:02:14.885 --> 00:02:15.945
<00:02:14.885>Are <00:02:15.123>you <00:02:15.362>still <00:02:15.600>logged <00:02:15.839>in?

52
00:02:16.525 --> 00:02:20.225
<00:02:16.525>Um, <00:02:16.725>enforcing <00:02:16.925>a <00:02:17.125>second <00:02:17.325>factor, <00:02:17.525>validating <00:02:17.725>email <00:02:17.925>address.

53
00:02:20.285 --> 00:02:22.625
<00:02:20.285>We <00:02:20.412>will <00:02:20.539>see <00:02:20.666>that <00:02:20.794>live <00:02:20.921>in <00:02:21.048>a <00:02:21.175>demo <00:02:21.303>today <00:02:21.430>if <00:02:21.557>everything <00:02:21.685>works.

54
00:02:23.565 --> 00:02:26.625
<00:02:23.565>Um, <00:02:23.765>we <00:02:23.965>want <00:02:24.165>to <00:02:24.365>stress <00:02:24.565>cope's <00:02:24.765>incremental <00:02:24.965>profiling.

55
00:02:26.805 --> 00:02:29.265
<00:02:26.805>All <00:02:26.980>of <00:02:27.155>that <00:02:27.330>is <00:02:27.505>part <00:02:27.680>of <00:02:27.855>authenticating <00:02:28.030>a <00:02:28.205>user.

56
00:02:29.605 --> 00:02:31.345
<00:02:29.605>And <00:02:29.760>it's <00:02:29.916>all <00:02:30.071>of <00:02:30.227>that <00:02:30.382>is <00:02:30.538>part <00:02:30.693>of <00:02:30.849>kick <00:02:31.005>look.

57
00:02:33.965 --> 00:02:36.505
<00:02:33.965>And <00:02:34.120>after <00:02:34.276>today's <00:02:34.431>talk, <00:02:34.587>you <00:02:34.742>will <00:02:34.898>probably <00:02:35.053>see <00:02:35.209>some <00:02:35.365>bits

58
00:02:36.505 --> 00:02:38.065
<00:02:36.505>of <00:02:36.738>it, <00:02:36.971>and <00:02:37.204>I <00:02:37.438>can <00:02:37.671>put <00:02:37.905>it

59
00:02:38.065 --> 00:02:39.985
<00:02:38.065>to <00:02:38.298>practical <00:02:38.531>use <00:02:38.765>in <00:02:38.998>your <00:02:39.231>own <00:02:39.465>environments.

60
00:02:42.525 --> 00:02:46.065
<00:02:42.525>So <00:02:42.700>that <00:02:42.875>was <00:02:43.050>hopefully <00:02:43.225>not <00:02:43.400>me <00:02:43.575>delegating <00:02:43.750>the <00:02:43.925>truth

61
00:02:46.205 --> 00:02:47.425
<00:02:46.204>of <00:02:46.571>authentic <00:02:46.937>end <00:02:47.303>users.

62
00:02:47.725 --> 00:02:49.025
<00:02:47.725>Um, <00:02:48.115>yeah, <00:02:48.505>let's <00:02:48.895>start

63
00:02:49.025 --> 00:02:51.745
<00:02:49.025>with <00:02:49.305>a <00:02:49.585>practical <00:02:49.865>authentication <00:02:50.145>by <00:02:50.425>example.

64
00:02:52.935 --> 00:02:54.635
<00:02:52.935>So <00:02:53.215>the <00:02:53.495>actors <00:02:53.775>in <00:02:54.055>the <00:02:54.335>play

65
00:02:54.635 --> 00:02:56.515
<00:02:54.635>that <00:02:54.810>we <00:02:54.984>see <00:02:55.160>here <00:02:55.334>are, <00:02:55.510>are <00:02:55.685>the <00:02:55.859>end <00:02:56.035>users.

66
00:02:56.695 --> 00:02:58.435
<00:02:56.695>The <00:02:56.928>end <00:02:57.161>users. <00:02:57.394>They <00:02:57.628>have <00:02:57.861>some <00:02:58.095>credentials

67
00:02:58.435 --> 00:02:59.885
<00:02:58.435>that <00:02:58.652>may <00:02:58.870>be <00:02:59.087>be <00:02:59.305>username <00:02:59.522>and <00:02:59.739>password.

68
00:03:00.145 --> 00:03:01.285
<00:03:00.145>It <00:03:00.350>might <00:03:00.555>be <00:03:00.760>your <00:03:00.965>power <00:03:01.171>key,

69
00:03:01.575 --> 00:03:03.165
<00:03:01.575>might <00:03:01.855>be <00:03:02.135>other <00:03:02.415>ces <00:03:02.695>second <00:03:02.975>factors.

70
00:03:03.305 --> 00:03:06.005
<00:03:03.305>And <00:03:03.460>their <00:03:03.616>core <00:03:03.771>skill <00:03:03.927>is <00:03:04.082>to <00:03:04.238>operate <00:03:04.393>a <00:03:04.549>web <00:03:04.705>browser,

71
00:03:06.005 --> 00:03:07.045
<00:03:06.005>usually <00:03:06.472>nowadays, <00:03:06.940>right?

72
00:03:07.905 --> 00:03:10.805
<00:03:07.905>Um, <00:03:08.080>then <00:03:08.255>there's <00:03:08.430>key <00:03:08.605>cloak <00:03:08.780>and <00:03:08.955>open <00:03:09.130>ID <00:03:09.305>provider,

73
00:03:10.945 --> 00:03:13.085
<00:03:10.945>or <00:03:11.295>usually <00:03:11.644>abbreviated <00:03:11.995>as <00:03:12.345>op.

74
00:03:13.785 --> 00:03:14.885
<00:03:13.785>It <00:03:14.032>shows <00:03:14.280>the <00:03:14.527>login <00:03:14.774>screen.

75
00:03:15.025 --> 00:03:16.925
<00:03:15.025>It <00:03:15.305>validates <00:03:15.585>the <00:03:15.865>credentials <00:03:16.145>and <00:03:16.425>issues

76
00:03:17.085 --> 00:03:18.245
<00:03:17.085>and <00:03:17.607>validates <00:03:18.129>tokens.

77
00:03:18.425 --> 00:03:21.405
<00:03:18.425>And <00:03:18.541>as <00:03:18.658>we <00:03:18.775>will <00:03:18.891>see, <00:03:19.008>tokens <00:03:19.125>will <00:03:19.241>be <00:03:19.358>all <00:03:19.475>around <00:03:19.591>when <00:03:19.708>it <00:03:19.825>comes

78
00:03:21.405 --> 00:03:23.125
<00:03:21.405>to <00:03:22.105>authenticating <00:03:22.805>users.

79
00:03:23.425 --> 00:03:26.445
<00:03:23.425>And <00:03:23.600>then <00:03:23.775>there's <00:03:23.950>a <00:03:24.125>relying <00:03:24.300>party <00:03:24.475>or <00:03:24.650>client <00:03:24.825>application.

80
00:03:27.145 --> 00:03:30.125
<00:03:27.145>That's <00:03:27.345>the <00:03:27.545>thing <00:03:27.745>that <00:03:27.945>application <00:03:28.145>developers <00:03:28.345>usually, <00:03:28.545>um,

81
00:03:30.875 --> 00:03:32.645
<00:03:30.875>develop <00:03:31.155>new <00:03:31.435>enhanced <00:03:31.715>day <00:03:31.995>by <00:03:32.275>day.

82
00:03:33.225 --> 00:03:34.445
<00:03:33.225>And <00:03:33.499>it's <00:03:33.774>a <00:03:34.048>web <00:03:34.322>application.

83
00:03:34.465 --> 00:03:36.325
<00:03:34.465>It <00:03:34.745>interacts <00:03:35.025>with <00:03:35.305>the <00:03:35.585>open <00:03:35.865>provider

84
00:03:36.665 --> 00:03:38.165
<00:03:36.665>and <00:03:36.935>the <00:03:37.204>other <00:03:37.475>relying <00:03:37.745>parties <00:03:38.015>ts.

85
00:03:39.625 --> 00:03:40.725
<00:03:39.625>And <00:03:39.872>this <00:03:40.120>is <00:03:40.367>the <00:03:40.615>application

86
00:03:40.725 --> 00:03:42.685
<00:03:40.725>that <00:03:41.005>wants <00:03:41.285>the <00:03:41.565>user <00:03:41.845>to <00:03:42.125>authenticate.

87
00:03:44.685 --> 00:03:46.455
<00:03:44.685>Alright, <00:03:45.151>um, <00:03:45.618>key <00:03:46.085>cloak.

88
00:03:46.675 --> 00:03:49.015
<00:03:46.675>Key <00:03:46.830>cloak <00:03:46.986>has <00:03:47.141>been <00:03:47.297>around <00:03:47.452>for <00:03:47.608>over <00:03:47.763>10 <00:03:47.919>years <00:03:48.075>now.

89
00:03:49.015 --> 00:03:50.655
<00:03:49.015>Initial <00:03:49.364>commit <00:03:49.714>was <00:03:50.065>in <00:03:50.415>2013.

90
00:03:51.115 --> 00:03:53.375
<00:03:51.115>It <00:03:51.348>started <00:03:51.581>with <00:03:51.815>being <00:03:52.048>just <00:03:52.281>OpenID <00:03:52.515>Connect

91
00:03:53.515 --> 00:03:54.735
<00:03:53.515>and <00:03:53.789>then <00:03:54.064>we <00:03:54.338>added <00:03:54.613>saml.

92
00:03:54.915 --> 00:03:56.215
<00:03:54.915>We <00:03:55.149>had <00:03:55.383>a <00:03:55.617>lot <00:03:55.851>of <00:03:56.085>backends

93
00:03:56.215 --> 00:03:58.295
<00:03:56.215>who <00:03:56.448>can <00:03:56.681>have <00:03:56.915>users <00:03:57.148>in <00:03:57.381>custom <00:03:57.615>databases.

94
00:03:58.435 --> 00:04:01.815
<00:03:58.435>In, <00:03:58.590>in <00:03:58.746>lda <00:03:58.901>you <00:03:59.057>can <00:03:59.212>federate <00:03:59.368>with <00:03:59.523>other <00:03:59.679>identity <00:03:59.835>providers.

95
00:04:02.805 --> 00:04:07.455
<00:04:02.805>It's, <00:04:02.960>um, <00:04:03.116>since <00:04:03.271>2023, <00:04:03.427>we <00:04:03.582>are <00:04:03.738>now <00:04:03.893>an <00:04:04.049>CNCF <00:04:04.205>project.

96
00:04:07.675 --> 00:04:10.055
<00:04:07.675>So <00:04:07.830>all <00:04:07.986>the <00:04:08.141>property, <00:04:08.297>all <00:04:08.452>the <00:04:08.608>naming <00:04:08.763>has <00:04:08.919>been <00:04:09.075>transferred

97
00:04:10.055 --> 00:04:11.055
<00:04:10.055>to <00:04:10.505>Theno <00:04:10.955>Foundation

98
00:04:11.055 --> 00:04:12.855
<00:04:11.055>and <00:04:11.288>the <00:04:11.521>Cloud <00:04:11.755>Native <00:04:11.988>Computing <00:04:12.221>Foundation <00:04:12.455>actually,

99
00:04:14.255 --> 00:04:17.395
<00:04:14.255>and <00:04:14.430>it's <00:04:14.605>open <00:04:14.780>source, <00:04:14.954>it's <00:04:15.130>Apache <00:04:15.305>version <00:04:15.480>two <00:04:15.655>license,

100
00:04:17.525 --> 00:04:19.915
<00:04:17.524>which <00:04:17.875>is <00:04:18.224>also <00:04:18.575>commercial <00:04:18.924>friendly.

101
00:04:20.215 --> 00:04:23.675
<00:04:20.214>And <00:04:20.331>I <00:04:20.448>have <00:04:20.565>to <00:04:20.681>say <00:04:20.798>key <00:04:20.914>plug <00:04:21.031>is <00:04:21.148>a <00:04:21.265>hundred <00:04:21.381>percent <00:04:21.498>open <00:04:21.614>source.

102
00:04:23.675 --> 00:04:25.955
<00:04:23.675>There's <00:04:23.908>nothing <00:04:24.141>like <00:04:24.375>open <00:04:24.608>core <00:04:24.841>or <00:04:25.075>whatnot,

103
00:04:25.955 --> 00:04:27.595
<00:04:25.955>but <00:04:26.155>it's <00:04:26.354>really <00:04:26.555>a <00:04:26.755>hundred <00:04:26.955>percent <00:04:27.155>open <00:04:27.354>source.

104
00:04:28.655 --> 00:04:30.955
<00:04:28.655>As <00:04:28.854>of <00:04:29.054>today, <00:04:29.255>we <00:04:29.455>have <00:04:29.655>28,000 <00:04:29.854>GitHub <00:04:30.054>stores,

105
00:04:31.045 --> 00:04:34.195
<00:04:31.045>which <00:04:31.200>makes <00:04:31.356>it <00:04:31.511>a <00:04:31.667>quite <00:04:31.822>popular <00:04:31.978>project <00:04:32.133>in <00:04:32.289>this <00:04:32.445>space.

106
00:04:34.975 --> 00:04:37.715
<00:04:34.975>And <00:04:35.130>if <00:04:35.286>you're <00:04:35.441>interested <00:04:35.597>in <00:04:35.752>kelo, <00:04:35.908>um, <00:04:36.063>after <00:04:36.219>this <00:04:36.375>talk,

107
00:04:37.715 --> 00:04:38.835
<00:04:37.715>or <00:04:37.967>maybe <00:04:38.219>in <00:04:38.471>general <00:04:38.722>already,

108
00:04:39.185 --> 00:04:41.155
<00:04:39.185>there's <00:04:39.465>a <00:04:39.745>key <00:04:40.025>con <00:04:40.305>Amsterdam <00:04:40.585>happening.

109
00:04:41.155 --> 00:04:43.275
<00:04:41.155>It's <00:04:41.354>a <00:04:41.554>one <00:04:41.755>day <00:04:41.955>conference <00:04:42.155>with <00:04:42.354>two <00:04:42.554>tracks.

110
00:04:43.825 --> 00:04:46.395
<00:04:43.825>It's <00:04:43.965>a <00:04:44.104>great <00:04:44.245>place <00:04:44.385>to <00:04:44.525>meet <00:04:44.664>other <00:04:44.805>people <00:04:44.945>who <00:04:45.085>are <00:04:45.224>contributing

111
00:04:46.395 --> 00:04:48.875
<00:04:46.395>to <00:04:46.570>kelo, <00:04:46.745>who <00:04:46.919>are <00:04:47.094>using <00:04:47.270>kelo <00:04:47.445>and <00:04:47.620>production <00:04:47.794>environments

112
00:04:49.575 --> 00:04:52.755
<00:04:49.575>and <00:04:49.730>to <00:04:49.886>well, <00:04:50.041>and <00:04:50.197>great <00:04:50.352>place <00:04:50.508>to <00:04:50.663>meet <00:04:50.819>the <00:04:50.974>ecosystem.

113
00:04:52.895 --> 00:04:56.755
<00:04:52.895>So <00:04:53.011>be <00:04:53.128>in <00:04:53.245>Amsterdam <00:04:53.361>on <00:04:53.478>the <00:04:53.594>28th <00:04:53.711>of <00:04:53.828>August <00:04:53.945>and <00:04:54.061>join <00:04:54.178>us <00:04:54.294>there.

114
00:04:59.465 --> 00:05:03.005
<00:04:59.465>So <00:04:59.640>open <00:04:59.815>Id <00:04:59.990>connect, <00:05:00.165>um, <00:05:00.340>it <00:05:00.515>starts, <00:05:00.690>it <00:05:00.865>starts

115
00:05:03.005 --> 00:05:04.485
<00:05:03.005>with <00:05:03.449>like <00:05:03.893>auto <00:05:04.337>discovering

116
00:05:04.485 --> 00:05:06.645
<00:05:04.485>what <00:05:04.660>your <00:05:04.835>Open <00:05:05.010>Id <00:05:05.185>connect <00:05:05.360>provider <00:05:05.535>can <00:05:05.710>actually <00:05:05.885>do.

117
00:05:07.385 --> 00:05:10.405
<00:05:07.385>And <00:05:07.585>for <00:05:07.784>that <00:05:07.985>there's <00:05:08.185>an <00:05:08.385>URL <00:05:08.585>that <00:05:08.784>call.

118
00:05:12.985 --> 00:05:14.965
<00:05:12.985>Should <00:05:13.185>I, <00:05:13.385>should <00:05:13.585>I <00:05:13.785>move <00:05:13.985>there <00:05:14.185>or <00:05:14.385>near

119
00:05:15.065 --> 00:05:18.165
<00:05:15.065>or, <00:05:15.531>okay, <00:05:15.998>I'm <00:05:16.465>fine.

120
00:05:18.225 --> 00:05:21.125
<00:05:18.225>Thanks <00:05:18.352>for <00:05:18.479>that, <00:05:18.606>but <00:05:18.734>let's <00:05:18.861>hope <00:05:18.988>the <00:05:19.115>sound <00:05:19.243>is <00:05:19.370>fine <00:05:19.497>as <00:05:19.625>well.

121
00:05:21.875 --> 00:05:24.615
<00:05:21.875>So <00:05:22.050>the <00:05:22.225>thing <00:05:22.400>is, <00:05:22.575>an <00:05:22.750>application <00:05:22.925>can <00:05:23.100>auto <00:05:23.275>discover

122
00:05:24.615 --> 00:05:28.135
<00:05:24.615>what <00:05:24.790>an <00:05:24.965>open <00:05:25.140>ID <00:05:25.315>provider <00:05:25.490>actually <00:05:25.665>provides <00:05:25.840>as <00:05:26.015>services.

123
00:05:28.155 --> 00:05:30.455
<00:05:28.155>And <00:05:28.282>for <00:05:28.409>that <00:05:28.536>we <00:05:28.664>have <00:05:28.791>a <00:05:28.918>dot <00:05:29.045>well <00:05:29.173>announced <00:05:29.300>slash <00:05:29.427>open <00:05:29.554>ID

124
00:05:31.455 --> 00:05:33.335
<00:05:31.455>configuration, <00:05:31.805>ERL <00:05:32.155>that <00:05:32.505>the <00:05:32.854>application

125
00:05:33.365 --> 00:05:34.535
<00:05:33.365>will <00:05:33.575>call <00:05:33.786>at <00:05:33.996>the <00:05:34.207>very <00:05:34.417>beginning.

126
00:05:34.915 --> 00:05:38.335
<00:05:34.915>It <00:05:35.070>returns <00:05:35.226>Jason, <00:05:35.381>Jason <00:05:35.537>format <00:05:35.692>like <00:05:35.848>a <00:05:36.003>lot <00:05:36.159>of <00:05:36.315>things,

127
00:05:38.635 --> 00:05:39.855
<00:05:38.635>uh, <00:05:39.184>return <00:05:39.733>today.

128
00:05:40.275 --> 00:05:41.735
<00:05:40.275>And <00:05:40.462>for <00:05:40.650>example, <00:05:40.838>I <00:05:41.025>can <00:05:41.213>look <00:05:41.401>in <00:05:41.589>there

129
00:05:41.735 --> 00:05:45.255
<00:05:41.735>and <00:05:41.862>find <00:05:41.989>a <00:05:42.116>lot <00:05:42.244>of <00:05:42.371>URLs <00:05:42.498>like <00:05:42.625>which <00:05:42.753>ERL <00:05:42.880>should <00:05:43.007>the <00:05:43.135>application

130
00:05:45.255 --> 00:05:46.575
<00:05:45.255>call <00:05:45.552>to <00:05:45.849>authenticate <00:05:46.146>a <00:05:46.443>user?

131
00:05:46.985 --> 00:05:50.215
<00:05:46.985>Which <00:05:47.140>endpoint <00:05:47.296>should <00:05:47.451>it <00:05:47.607>call <00:05:47.762>to <00:05:47.918>get <00:05:48.073>some <00:05:48.229>user <00:05:48.385>information?

132
00:05:50.595 --> 00:05:52.775
<00:05:50.595>How <00:05:50.795>about <00:05:50.995>checking <00:05:51.195>it? <00:05:51.395>Forio <00:05:51.595>still <00:05:51.795>locked <00:05:51.995>in.

133
00:05:52.795 --> 00:05:55.215
<00:05:52.795>All <00:05:53.028>these <00:05:53.261>URLs <00:05:53.495>are <00:05:53.728>present <00:05:53.961>in <00:05:54.195>such,

134
00:05:56.505 --> 00:05:57.925
<00:05:56.505>uh, <00:05:57.144>adjacent <00:05:57.783>definition.

135
00:05:57.925 --> 00:05:58.965
<00:05:57.925>And <00:05:58.159>they <00:05:58.393>can <00:05:58.627>also <00:05:58.861>discover

136
00:05:58.965 --> 00:06:01.445
<00:05:58.965>what <00:05:59.198>features <00:05:59.431>the <00:05:59.665>Open <00:05:59.898>ID <00:06:00.131>Connect <00:06:00.365>provider,

137
00:06:01.945 --> 00:06:02.965
<00:06:01.945>um, <00:06:02.404>supports <00:06:02.863>there.

138
00:06:05.095 --> 00:06:06.115
<00:06:05.095>And <00:06:05.324>as <00:06:05.554>I <00:06:05.783>said <00:06:06.013>earlier,

139
00:06:06.215 --> 00:06:08.675
<00:06:06.215>the <00:06:06.370>first <00:06:06.526>question <00:06:06.681>I <00:06:06.837>have <00:06:06.992>is <00:06:07.148>the <00:06:07.303>user <00:06:07.459>already <00:06:07.614>logged

140
00:06:08.675 --> 00:06:09.755
<00:06:08.675>in, <00:06:08.869>how <00:06:09.063>can <00:06:09.258>I <00:06:09.452>do <00:06:09.647>that?

141
00:06:10.015 --> 00:06:12.755
<00:06:10.015>And <00:06:10.248>for <00:06:10.481>that, <00:06:10.715>there's <00:06:10.948>the <00:06:11.181>authorization <00:06:11.414>endpoint

142
00:06:12.855 --> 00:06:14.475
<00:06:12.855>or <00:06:13.205>send <00:06:13.555>authorization <00:06:13.905>code <00:06:14.255>flow.

143
00:06:14.475 --> 00:06:15.795
<00:06:14.475>Maybe <00:06:14.673>you <00:06:14.871>heard <00:06:15.069>about <00:06:15.267>that <00:06:15.465>one <00:06:15.663>before.

144
00:06:16.255 --> 00:06:18.715
<00:06:16.255>And <00:06:16.455>what <00:06:16.655>I <00:06:16.855>put <00:06:17.055>in <00:06:17.255>there <00:06:17.455>is <00:06:17.655>A-A-U-R-L

145
00:06:18.905 --> 00:06:20.115
<00:06:18.905>with <00:06:19.268>the <00:06:19.631>specific <00:06:19.994>formats.

146
00:06:20.175 --> 00:06:21.555
<00:06:20.175>Yes, <00:06:20.423>there's <00:06:20.671>an <00:06:20.920>RC <00:06:21.168>for <00:06:21.417>that,

147
00:06:22.015 --> 00:06:23.915
<00:06:22.015>and <00:06:22.215>I <00:06:22.414>put <00:06:22.615>in <00:06:22.815>there <00:06:23.015>prompt <00:06:23.215>equals <00:06:23.414>none.

148
00:06:24.615 --> 00:06:27.195
<00:06:24.615>And <00:06:24.755>when <00:06:24.895>I <00:06:25.035>put <00:06:25.175>in <00:06:25.315>prompt <00:06:25.455>equals <00:06:25.595>none <00:06:25.735>there, <00:06:25.875>I <00:06:26.015>redirect

149
00:06:27.255 --> 00:06:29.595
<00:06:27.255>to <00:06:27.455>well, <00:06:27.655>the <00:06:27.855>applicator <00:06:28.055>redirect <00:06:28.255>to <00:06:28.455>click <00:06:28.655>log.

150
00:06:29.595 --> 00:06:32.135
<00:06:29.595>And <00:06:29.750>when <00:06:29.906>it <00:06:30.061>comes <00:06:30.217>back, <00:06:30.372>it <00:06:30.528>will <00:06:30.683>show <00:06:30.839>an <00:06:30.995>error

151
00:06:32.135 --> 00:06:33.255
<00:06:32.135>saying <00:06:32.639>login <00:06:33.143>required.

152
00:06:33.885 --> 00:06:37.025
<00:06:33.885>And <00:06:34.001>when <00:06:34.118>it <00:06:34.235>comes <00:06:34.351>back <00:06:34.468>like <00:06:34.585>this, <00:06:34.701>I <00:06:34.818>know <00:06:34.935>that <00:06:35.051>the <00:06:35.168>user's <00:06:35.284>not

153
00:06:37.025 --> 00:06:38.905
<00:06:37.025>yet <00:06:37.200>logged <00:06:37.375>in, <00:06:37.549>I <00:06:37.724>can <00:06:37.900>show <00:06:38.075>a <00:06:38.250>landing <00:06:38.424>page

154
00:06:39.205 --> 00:06:40.545
<00:06:39.205>and <00:06:39.377>then <00:06:39.549>a <00:06:39.721>user <00:06:39.894>can <00:06:40.066>have <00:06:40.238>a <00:06:40.411>choice.

155
00:06:40.605 --> 00:06:42.345
<00:06:40.605>Do <00:06:40.745>you <00:06:40.885>want <00:06:41.025>to <00:06:41.165>log <00:06:41.305>in <00:06:41.445>now? <00:06:41.585>Do <00:06:41.725>you <00:06:41.865>wanna <00:06:42.005>register?

156
00:06:42.345 --> 00:06:45.135
<00:06:42.345>What <00:06:42.500>do <00:06:42.656>you <00:06:42.811>want? <00:06:42.967>And <00:06:43.122>I <00:06:43.278>can <00:06:43.433>really <00:06:43.589>decide <00:06:43.745>that

157
00:06:45.195 --> 00:06:47.895
<00:06:45.195>as <00:06:45.335>from <00:06:45.474>a <00:06:45.615>business <00:06:45.755>perspective, <00:06:45.895>what's <00:06:46.034>the <00:06:46.175>best <00:06:46.315>thing <00:06:46.455>I <00:06:46.594>want

158
00:06:47.895 --> 00:06:49.735
<00:06:47.895>to <00:06:48.034>do <00:06:48.174>with <00:06:48.315>a <00:06:48.455>user <00:06:48.594>when <00:06:48.734>they're <00:06:48.875>not <00:06:49.015>yet <00:06:49.155>logged <00:06:49.294>in?

159
00:06:51.995 --> 00:06:54.765
<00:06:51.995>When <00:06:52.150>I <00:06:52.306>wanna <00:06:52.461>say <00:06:52.617>I <00:06:52.772>wanna <00:06:52.928>register <00:06:53.083>a <00:06:53.239>user, <00:06:53.395>um,

160
00:06:55.445 --> 00:06:58.565
<00:06:55.445>I <00:06:55.600>can <00:06:55.756>put <00:06:55.911>another <00:06:56.067>prompt <00:06:56.222>in <00:06:56.378>here <00:06:56.533>saying <00:06:56.689>prompt <00:06:56.844>create.

161
00:06:58.945 --> 00:07:01.445
<00:06:58.945>So <00:06:59.100>then <00:06:59.256>key <00:06:59.411>click <00:06:59.567>will <00:06:59.722>present <00:06:59.878>a <00:07:00.033>user <00:07:00.189>registration <00:07:00.344>form,

162
00:07:01.945 --> 00:07:05.005
<00:07:01.945>and <00:07:02.085>it <00:07:02.224>will <00:07:02.365>then <00:07:02.505>allow <00:07:02.645>putting <00:07:02.784>in <00:07:02.925>all <00:07:03.065>the <00:07:03.205>configured <00:07:03.344>fields

163
00:07:05.035 --> 00:07:08.165
<00:07:05.035>like <00:07:05.315>username, <00:07:05.595>password, <00:07:05.875>mailing <00:07:06.155>address, <00:07:06.435>whatnot.

164
00:07:08.185 --> 00:07:09.605
<00:07:08.185>And <00:07:08.398>then <00:07:08.611>you <00:07:08.824>can <00:07:09.037>register <00:07:09.250>a <00:07:09.463>user.

165
00:07:10.185 --> 00:07:11.585
<00:07:10.185>And <00:07:10.605>when <00:07:11.025>it <00:07:11.445>comes,

166
00:07:12.325 --> 00:07:14.015
<00:07:12.325>and <00:07:12.604>that <00:07:12.885>is <00:07:13.164>a <00:07:13.445>new <00:07:13.724>functionality

167
00:07:14.015 --> 00:07:15.975
<00:07:14.015>that <00:07:14.248>we <00:07:14.481>added <00:07:14.715>in <00:07:14.948>Key <00:07:15.181>Qto <00:07:15.414>26.1.

168
00:07:16.325 --> 00:07:18.055
<00:07:16.325>It's <00:07:16.500>now, <00:07:16.675>we <00:07:16.849>had <00:07:17.025>to <00:07:17.200>do <00:07:17.375>it <00:07:17.550>there <00:07:17.724>before,

169
00:07:18.055 --> 00:07:20.255
<00:07:18.055>but <00:07:18.230>now <00:07:18.405>it's <00:07:18.580>fully <00:07:18.755>star <00:07:18.930>standard <00:07:19.105>compliant <00:07:19.280>with <00:07:19.455>the,

170
00:07:20.255 --> 00:07:21.695
<00:07:20.255>with <00:07:20.514>the <00:07:20.773>RFC <00:07:21.032>that's <00:07:21.291>behind <00:07:21.551>it.

171
00:07:24.795 --> 00:07:27.295
<00:07:24.795>So, <00:07:24.950>and <00:07:25.106>then <00:07:25.261>when <00:07:25.417>I <00:07:25.572>say <00:07:25.728>log <00:07:25.883>in <00:07:26.039>the <00:07:26.195>user,

172
00:07:27.395 --> 00:07:30.215
<00:07:27.395>that's <00:07:27.570>finally <00:07:27.745>the <00:07:27.919>thing <00:07:28.094>that <00:07:28.270>we <00:07:28.445>thought <00:07:28.620>about <00:07:28.794>first,

173
00:07:30.215 --> 00:07:31.695
<00:07:30.215>but <00:07:30.405>now <00:07:30.595>it <00:07:30.785>comes <00:07:30.976>here <00:07:31.166>in <00:07:31.356>third <00:07:31.546>place.

174
00:07:32.135 --> 00:07:33.495
<00:07:32.135>I <00:07:32.379>put <00:07:32.624>in <00:07:32.869>prompt <00:07:33.114>equals <00:07:33.359>login.

175
00:07:33.875 --> 00:07:37.375
<00:07:33.875>And <00:07:34.002>when <00:07:34.129>I <00:07:34.256>do <00:07:34.384>that, <00:07:34.511>I <00:07:34.638>then <00:07:34.765>receive <00:07:34.893>a <00:07:35.020>session <00:07:35.147>state <00:07:35.275>back

176
00:07:37.675 --> 00:07:41.695
<00:07:37.675>and <00:07:37.830>the <00:07:37.986>code, <00:07:38.141>um, <00:07:38.297>and <00:07:38.452>then <00:07:38.608>post, <00:07:38.763>post <00:07:38.919>the <00:07:39.075>code

177
00:07:41.835 --> 00:07:43.615
<00:07:41.835>and <00:07:42.068>the <00:07:42.301>other <00:07:42.534>provisional, <00:07:42.768>the <00:07:43.001>token <00:07:43.234>endpoint.

178
00:07:43.615 --> 00:07:46.215
<00:07:43.615>And <00:07:43.790>finally, <00:07:43.965>finally, <00:07:44.140>I <00:07:44.315>get <00:07:44.490>the, <00:07:44.665>the <00:07:44.840>simple <00:07:45.015>tokens

179
00:07:46.215 --> 00:07:48.375
<00:07:46.215>that <00:07:46.390>I <00:07:46.565>need <00:07:46.740>as <00:07:46.915>an <00:07:47.090>application <00:07:47.265>to <00:07:47.440>figure <00:07:47.615>out

180
00:07:48.375 --> 00:07:50.175
<00:07:48.375>what <00:07:48.550>the <00:07:48.725>users <00:07:48.900>then <00:07:49.075>allow <00:07:49.250>to <00:07:49.425>do <00:07:49.600>and <00:07:49.775>whatnot.

181
00:07:50.515 --> 00:07:52.315
<00:07:50.515>So <00:07:50.748>let's <00:07:50.981>look <00:07:51.215>at <00:07:51.448>the <00:07:51.681>demo <00:07:51.914>here.

182
00:07:53.135 --> 00:07:54.795
<00:07:53.135>So <00:07:53.335>I <00:07:53.534>have <00:07:53.735>a <00:07:53.935>small <00:07:54.135>view <00:07:54.335>app <00:07:54.534>here.

183
00:07:54.855 --> 00:07:58.945
<00:07:54.855>Um, <00:07:54.982>at <00:07:55.109>the <00:07:55.236>moment, <00:07:55.364>um, <00:07:55.491>the <00:07:55.618>user <00:07:55.745>is <00:07:55.873>not <00:07:56.000>like <00:07:56.127>locked <00:07:56.255>in.

184
00:07:59.125 --> 00:08:01.065
<00:07:59.125>Um, <00:07:59.325>if <00:07:59.525>I <00:07:59.725>go <00:07:59.925>to <00:08:00.125>the <00:08:00.325>developer <00:08:00.525>tools,

185
00:08:01.165 --> 00:08:04.835
<00:08:01.165>and <00:08:01.292>I <00:08:01.419>should <00:08:01.546>have <00:08:01.674>zoomed <00:08:01.801>in <00:08:01.928>here <00:08:02.055>a <00:08:02.183>bit <00:08:02.310>more, <00:08:02.437>I <00:08:02.565>see

186
00:08:04.835 --> 00:08:09.015
<00:08:04.835>that <00:08:05.010>there's <00:08:05.185>the <00:08:05.359>info <00:08:05.534>endpoint <00:08:05.710>with <00:08:05.885>all <00:08:06.060>that <00:08:06.234>information.

187
00:08:09.015 --> 00:08:10.975
<00:08:09.015>And <00:08:09.215>at <00:08:09.414>the <00:08:09.615>moment <00:08:09.815>there's <00:08:10.015>no <00:08:10.215>registering <00:08:10.414>button.

188
00:08:11.885 --> 00:08:14.145
<00:08:11.885>Um, <00:08:12.118>because <00:08:12.351>when <00:08:12.585>I <00:08:12.818>scroll <00:08:13.051>down <00:08:13.284>here,

189
00:08:15.315 --> 00:08:17.955
<00:08:15.315>I <00:08:15.515>have <00:08:15.715>prompt <00:08:15.915>value <00:08:16.115>supported <00:08:16.315>non <00:08:16.515>logins <00:08:16.715>consent,

190
00:08:17.955 --> 00:08:19.235
<00:08:17.955>but <00:08:18.185>there's <00:08:18.415>no <00:08:18.646>create <00:08:18.876>in <00:08:19.107>here.

191
00:08:19.755 --> 00:08:22.655
<00:08:19.755>So <00:08:19.895>what <00:08:20.034>I <00:08:20.175>then <00:08:20.315>can <00:08:20.455>do <00:08:20.594>once <00:08:20.735>I <00:08:20.875>enable <00:08:21.015>user <00:08:21.155>registration

192
00:08:22.655 --> 00:08:25.255
<00:08:22.655>and <00:08:22.854>key <00:08:23.054>cloak, <00:08:23.255>which <00:08:23.455>is <00:08:23.655>now <00:08:23.854>changed <00:08:24.054>successfully,

193
00:08:25.775 --> 00:08:29.035
<00:08:25.775>I <00:08:26.008>refresh <00:08:26.241>my <00:08:26.474>application <00:08:26.708>now <00:08:26.941>it's, <00:08:27.174>uh,

194
00:08:29.055 --> 00:08:31.115
<00:08:29.055>it <00:08:29.255>should <00:08:29.455>have <00:08:29.655>create <00:08:29.855>in <00:08:30.055>here <00:08:30.255>as <00:08:30.455>well.

195
00:08:31.715 --> 00:08:33.475
<00:08:31.715>I <00:08:31.948>back <00:08:32.181>to <00:08:32.414>go <00:08:32.648>to <00:08:32.881>my <00:08:33.115>application

196
00:08:33.475 --> 00:08:35.935
<00:08:33.475>and <00:08:33.825>the <00:08:34.175>ation <00:08:34.525>will, <00:08:34.875>um,

197
00:08:37.535 --> 00:08:38.775
<00:08:37.534>reconfigure <00:08:37.813>it <00:08:38.092>itself <00:08:38.371>by <00:08:38.650>now.

198
00:08:38.775 --> 00:08:40.375
<00:08:38.775>Okay, <00:08:38.949>now <00:08:39.125>I <00:08:39.299>know <00:08:39.475>which <00:08:39.650>year <00:08:39.824>well <00:08:40.000>to <00:08:40.174>call

199
00:08:40.375 --> 00:08:42.015
<00:08:40.375>with <00:08:40.655>which <00:08:40.934>parameter <00:08:41.215>about <00:08:41.495>to <00:08:41.775>register

200
00:08:42.015 --> 00:08:43.295
<00:08:42.015>and <00:08:42.245>let's <00:08:42.475>register <00:08:42.706>a <00:08:42.936>new <00:08:43.166>user.

201
00:08:43.835 --> 00:08:46.865
<00:08:43.835>So <00:08:44.010>that's <00:08:44.185>all <00:08:44.360>fine. <00:08:44.535>Um, <00:08:44.710>which <00:08:44.885>works <00:08:45.060>for <00:08:45.235>me.

202
00:08:46.965 --> 00:08:49.185
<00:08:46.965>So <00:08:47.120>I <00:08:47.276>have <00:08:47.431>a <00:08:47.587>registration <00:08:47.742>form, <00:08:47.898>I <00:08:48.053>can <00:08:48.209>configure <00:08:48.365>it,

203
00:08:49.185 --> 00:08:51.385
<00:08:49.185>what <00:08:49.418>field <00:08:49.651>should <00:08:49.885>be <00:08:50.118>there, <00:08:50.351>uh, <00:08:50.584>any,

204
00:08:51.615 --> 00:08:53.785
<00:08:51.615>like <00:08:51.790>any <00:08:51.965>other <00:08:52.140>registration <00:08:52.315>form <00:08:52.490>that <00:08:52.665>you <00:08:52.840>have <00:08:53.015>here.

205
00:08:53.845 --> 00:08:56.485
<00:08:53.845>And <00:08:53.985>the <00:08:54.125>nice <00:08:54.265>thing <00:08:54.405>is <00:08:54.545>when <00:08:54.685>you <00:08:54.825>follow <00:08:54.965>this <00:08:55.105>flow <00:08:55.245>here,

206
00:08:57.235 --> 00:09:00.345
<00:08:57.235>it's <00:08:57.585>like <00:08:57.935>sometimes <00:08:58.285>you <00:08:58.635>register

207
00:09:01.125 --> 00:09:04.405
<00:09:01.125>and <00:09:01.325>then <00:09:01.525>you <00:09:01.725>need <00:09:01.925>to <00:09:02.125>re-log <00:09:02.325>in <00:09:02.525>again.

208
00:09:04.405 --> 00:09:07.125
<00:09:04.405>Maybe <00:09:04.512>you <00:09:04.620>come <00:09:04.728>across <00:09:04.835>on <00:09:04.943>the <00:09:05.051>internet <00:09:05.158>on <00:09:05.266>a, <00:09:05.374>on <00:09:05.481>a, <00:09:05.589>on <00:09:05.697>a <00:09:05.805>flow.

209
00:09:07.125 --> 00:09:09.525
<00:09:07.125>That's <00:09:07.358>very, <00:09:07.591>uh, <00:09:07.825>that's, <00:09:08.058>that's <00:09:08.291>really <00:09:08.525>breaking

210
00:09:09.585 --> 00:09:11.285
<00:09:09.585>and <00:09:09.818>people <00:09:10.051>probably <00:09:10.285>don't <00:09:10.518>want <00:09:10.751>to <00:09:10.985>continue.

211
00:09:11.425 --> 00:09:14.525
<00:09:11.425>Or <00:09:11.625>you <00:09:11.824>lose <00:09:12.025>applicants <00:09:12.224>when <00:09:12.425>they <00:09:12.625>just <00:09:12.824>register

212
00:09:14.705 --> 00:09:16.005
<00:09:14.705>and <00:09:14.872>then <00:09:15.039>they <00:09:15.206>need <00:09:15.373>to <00:09:15.540>log <00:09:15.707>in <00:09:15.875>again.

213
00:09:16.235 --> 00:09:17.965
<00:09:16.235>With <00:09:16.410>key <00:09:16.585>click, <00:09:16.760>you <00:09:16.935>can <00:09:17.110>make <00:09:17.285>it <00:09:17.460>so <00:09:17.635>seamless

214
00:09:17.965 --> 00:09:19.165
<00:09:17.965>that <00:09:18.325>you <00:09:18.685>register <00:09:19.045>and

215
00:09:19.165 --> 00:09:20.925
<00:09:19.165>after <00:09:19.398>you <00:09:19.631>registered, <00:09:19.865>you're <00:09:20.098>directly <00:09:20.331>logged <00:09:20.564>in.

216
00:09:21.995 --> 00:09:24.575
<00:09:21.995>If <00:09:22.122>you <00:09:22.249>say <00:09:22.376>you <00:09:22.504>want <00:09:22.631>to, <00:09:22.758>um, <00:09:22.885>verify <00:09:23.013>your <00:09:23.140>emails <00:09:23.267>in <00:09:23.395>between,

217
00:09:24.575 --> 00:09:26.935
<00:09:24.575>that's <00:09:24.715>also <00:09:24.855>fine, <00:09:24.995>but, <00:09:25.135>uh, <00:09:25.275>you <00:09:25.415>really <00:09:25.555>have <00:09:25.695>a <00:09:25.835>choice <00:09:25.975>there

218
00:09:27.355 --> 00:09:29.135
<00:09:27.355>how <00:09:27.588>your <00:09:27.821>user <00:09:28.055>journey <00:09:28.288>should <00:09:28.521>look <00:09:28.755>like.

219
00:09:31.385 --> 00:09:33.125
<00:09:31.385>Um, <00:09:31.735>yeah, <00:09:32.085>let's <00:09:32.435>go <00:09:32.785>back.

220
00:09:33.135 --> 00:09:35.565
<00:09:33.135>Let's <00:09:33.335>not, <00:09:33.535>um, <00:09:33.735>back <00:09:33.935>to <00:09:34.135>the <00:09:34.335>login <00:09:34.535>page.

221
00:09:35.725 --> 00:09:38.645
<00:09:35.725>I <00:09:35.880>wanted <00:09:36.036>login <00:09:36.191>and <00:09:36.347>I <00:09:36.502>have <00:09:36.658>chosen <00:09:36.813>to <00:09:36.969>log <00:09:37.125>in

222
00:09:38.645 --> 00:09:39.845
<00:09:38.645>with <00:09:38.861>the <00:09:39.077>user <00:09:39.293>test <00:09:39.509>and <00:09:39.725>test.

223
00:09:40.385 --> 00:09:44.645
<00:09:40.385>And <00:09:40.492>once <00:09:40.600>I <00:09:40.708>do <00:09:40.815>this, <00:09:40.923>um, <00:09:41.031>the <00:09:41.138>user <00:09:41.246>UI <00:09:41.354>changes, <00:09:41.461>I <00:09:41.569>will <00:09:41.677>see <00:09:41.785>here

224
00:09:45.515 --> 00:09:49.735
<00:09:45.515>the <00:09:45.715>different, <00:09:45.915>um, <00:09:46.115>flows <00:09:46.314>that <00:09:46.515>I <00:09:46.715>started <00:09:46.915>authentication.

225
00:09:50.195 --> 00:09:51.735
<00:09:50.195>Um, <00:09:50.541>that's <00:09:50.888>where <00:09:51.234>we <00:09:51.581>are.

226
00:09:54.545 --> 00:09:56.425
<00:09:54.545>I <00:09:54.778>see <00:09:55.011>the <00:09:55.245>URL <00:09:55.478>here <00:09:55.711>with <00:09:55.944>Authenticate.

227
00:09:56.805 --> 00:09:58.865
<00:09:56.805>Um, <00:09:57.038>I <00:09:57.271>have <00:09:57.505>the <00:09:57.738>query <00:09:57.971>parameters <00:09:58.204>here.

228
00:09:58.945 --> 00:10:00.665
<00:09:58.945>I <00:09:59.145>have <00:09:59.345>the <00:09:59.545>session <00:09:59.745>IDs <00:09:59.945>when <00:10:00.145>they're <00:10:00.345>exchanged.

229
00:10:00.845 --> 00:10:03.465
<00:10:00.845>And <00:10:00.961>now <00:10:01.078>I <00:10:01.195>can, <00:10:01.311>as <00:10:01.428>a <00:10:01.545>user <00:10:01.661>can <00:10:01.778>a <00:10:01.895>lot <00:10:02.011>of <00:10:02.128>other <00:10:02.245>things.

230
00:10:03.485 --> 00:10:05.105
<00:10:03.485>For <00:10:03.718>example, <00:10:03.951>I <00:10:04.185>can <00:10:04.418>verify <00:10:04.651>my <00:10:04.885>email

231
00:10:05.205 --> 00:10:08.485
<00:10:05.205>and <00:10:05.345>um, <00:10:05.485>I <00:10:05.625>can <00:10:05.765>see <00:10:05.905>my <00:10:06.045>user <00:10:06.185>information <00:10:06.325>that <00:10:06.465>are <00:10:06.605>here

232
00:10:08.995 --> 00:10:10.165
<00:10:08.995>with <00:10:09.346>a <00:10:09.697>preferred <00:10:10.048>username.

233
00:10:10.465 --> 00:10:13.805
<00:10:10.465>Um, <00:10:10.592>I <00:10:10.719>can, <00:10:10.846>the <00:10:10.974>ID <00:10:11.101>token <00:10:11.228>been <00:10:11.355>returned <00:10:11.483>by <00:10:11.610>Open <00:10:11.737>Mighty <00:10:11.865>Connect

234
00:10:13.805 --> 00:10:16.565
<00:10:13.805>that <00:10:13.960>contains <00:10:14.116>a <00:10:14.271>lot <00:10:14.427>of <00:10:14.582>information <00:10:14.738>who <00:10:14.893>that <00:10:15.049>user <00:10:15.204>is.

235
00:10:16.945 --> 00:10:20.325
<00:10:16.945>And <00:10:17.085>then <00:10:17.225>I <00:10:17.365>can, <00:10:17.505>um, <00:10:17.645>maybe <00:10:17.785>either <00:10:17.925>ask <00:10:18.065>key <00:10:18.205>to <00:10:18.345>about

236
00:10:20.855 --> 00:10:23.285
<00:10:20.855>additional <00:10:21.088>roles <00:10:21.321>or <00:10:21.555>I <00:10:21.788>have <00:10:22.021>other <00:10:22.255>services

237
00:10:23.355 --> 00:10:25.125
<00:10:23.355>that <00:10:23.705>do <00:10:24.055>authorization <00:10:24.405>for <00:10:24.755>me.

238
00:10:29.575 --> 00:10:30.995
<00:10:29.575>And <00:10:29.757>the <00:10:29.940>next <00:10:30.122>question <00:10:30.305>that <00:10:30.487>comes <00:10:30.670>up <00:10:30.853>is,

239
00:10:31.415 --> 00:10:33.235
<00:10:31.415>is <00:10:31.694>the <00:10:31.974>user <00:10:32.255>still <00:10:32.535>logged <00:10:32.814>in?

240
00:10:34.075 --> 00:10:35.295
<00:10:34.075>Um, <00:10:34.294>how <00:10:34.514>do <00:10:34.733>I <00:10:34.953>do <00:10:35.173>that?

241
00:10:35.675 --> 00:10:40.135
<00:10:35.675>Um, <00:10:35.830>actually <00:10:35.986>there's <00:10:36.141>an <00:10:36.297>RFC <00:10:36.452>that <00:10:36.608>describes <00:10:36.763>this <00:10:36.919>for, <00:10:37.074>um,

242
00:10:40.135 --> 00:10:41.335
<00:10:40.135>open-Mindedly <00:10:41.215>Connected.

243
00:10:41.335 --> 00:10:44.375
<00:10:41.335>He <00:10:41.510>can <00:10:41.685>use <00:10:41.860>an <00:10:42.035>iframe. <00:10:42.210>Iframes <00:10:42.385>are, <00:10:42.560>I <00:10:42.735>say,

244
00:10:44.375 --> 00:10:46.095
<00:10:44.375>from <00:10:44.608>the <00:10:44.841>stone <00:10:45.075>age <00:10:45.308>of <00:10:45.541>the <00:10:45.775>internet.

245
00:10:46.835 --> 00:10:48.975
<00:10:46.835>Um, <00:10:47.035>and <00:10:47.235>sometimes <00:10:47.435>you <00:10:47.635>have <00:10:47.835>cross <00:10:48.035>domain <00:10:48.235>problems,

246
00:10:48.995 --> 00:10:51.975
<00:10:48.995>but <00:10:49.170>especially <00:10:49.345>when <00:10:49.520>you <00:10:49.695>host <00:10:49.870>your <00:10:50.045>own <00:10:50.220>identity <00:10:50.395>provider,

247
00:10:52.165 --> 00:10:53.815
<00:10:52.165>like <00:10:52.444>Key <00:10:52.724>Cloak, <00:10:53.005>you <00:10:53.285>can <00:10:53.564>have

248
00:10:53.815 --> 00:10:55.215
<00:10:53.815>that <00:10:54.067>iframe <00:10:54.319>in <00:10:54.571>your <00:10:54.823>same <00:10:55.075>domain.

249
00:10:55.875 --> 00:10:57.415
<00:10:55.875>Um, <00:10:56.152>that <00:10:56.429>makes <00:10:56.706>sometimes <00:10:56.983>things <00:10:57.261>easier.

250
00:10:58.685 --> 00:11:02.425
<00:10:58.685>And <00:10:58.824>then <00:10:58.964>you <00:10:59.104>open <00:10:59.244>this <00:10:59.385>iframe, <00:10:59.525>um, <00:10:59.665>in <00:10:59.805>your <00:10:59.944>application, <00:11:00.084>um,

251
00:11:03.205 --> 00:11:05.425
<00:11:03.205>per <00:11:03.405>Invis <00:11:03.605>wise <00:11:03.805>frame <00:11:04.005>and <00:11:04.205>then <00:11:04.405>send <00:11:04.605>back

252
00:11:05.425 --> 00:11:06.865
<00:11:05.425>and <00:11:05.684>forth <00:11:05.943>a <00:11:06.202>JavaScript <00:11:06.461>message <00:11:06.721>here.

253
00:11:07.245 --> 00:11:08.545
<00:11:07.245>And <00:11:07.440>then <00:11:07.635>it <00:11:07.829>will <00:11:08.025>tell <00:11:08.220>you, <00:11:08.415>yes,

254
00:11:08.545 --> 00:11:10.185
<00:11:08.545>this <00:11:08.745>session <00:11:08.944>is <00:11:09.145>still <00:11:09.344>the <00:11:09.545>same <00:11:09.745>session <00:11:09.944>as

255
00:11:10.185 --> 00:11:12.945
<00:11:10.185>before, <00:11:10.359>users <00:11:10.535>still <00:11:10.709>logged <00:11:10.885>in <00:11:11.060>and <00:11:11.234>you <00:11:11.410>can <00:11:11.584>continue.

256
00:11:13.705 --> 00:11:16.885
<00:11:13.705>And <00:11:13.845>this <00:11:13.985>then <00:11:14.125>works <00:11:14.265>when <00:11:14.405>the <00:11:14.545>user <00:11:14.685>has <00:11:14.825>multiple <00:11:14.965>tabs <00:11:15.105>open.

257
00:11:17.035 --> 00:11:18.325
<00:11:17.035>They <00:11:17.267>log <00:11:17.499>out <00:11:17.731>in <00:11:17.963>one <00:11:18.196>tab,

258
00:11:18.585 --> 00:11:21.565
<00:11:18.585>and <00:11:18.712>the <00:11:18.839>other <00:11:18.966>tabs <00:11:19.094>will <00:11:19.221>know <00:11:19.348>about <00:11:19.475>that, <00:11:19.603>uh, <00:11:19.730>a <00:11:19.857>second <00:11:19.985>later

259
00:11:21.565 --> 00:11:22.685
<00:11:21.565>that <00:11:21.766>the <00:11:21.968>user <00:11:22.169>has <00:11:22.371>logged <00:11:22.573>in

260
00:11:22.685 --> 00:11:24.405
<00:11:22.685>and <00:11:22.859>you <00:11:23.035>can <00:11:23.209>redirect <00:11:23.385>them <00:11:23.560>to <00:11:23.734>the <00:11:23.910>login <00:11:24.084>page

261
00:11:24.465 --> 00:11:26.885
<00:11:24.465>or <00:11:24.620>you <00:11:24.776>can <00:11:24.931>reset <00:11:25.087>the <00:11:25.242>application <00:11:25.398>that <00:11:25.553>it <00:11:25.709>just <00:11:25.865>shows,

262
00:11:27.765 --> 00:11:29.305
<00:11:27.765>um, <00:11:28.227>the <00:11:28.689>welcome <00:11:29.151>page.

263
00:11:29.565 --> 00:11:31.705
<00:11:29.565>Um, <00:11:29.740>that's <00:11:29.915>your <00:11:30.090>choice, <00:11:30.265>how <00:11:30.440>you <00:11:30.615>want <00:11:30.790>to <00:11:30.965>implement

264
00:11:31.705 --> 00:11:34.345
<00:11:31.705>that <00:11:31.860>afterwards, <00:11:32.016>how <00:11:32.171>you <00:11:32.327>want <00:11:32.482>to <00:11:32.638>re <00:11:32.793>react <00:11:32.949>to <00:11:33.105>that

265
00:11:34.905 --> 00:11:36.105
<00:11:34.905>received <00:11:35.265>message <00:11:35.625>in <00:11:35.985>JavaScript.

266
00:11:37.655 --> 00:11:39.585
<00:11:37.655>Then <00:11:38.005>there's, <00:11:38.355>uh, <00:11:38.704>refreshing <00:11:39.055>tokens.

267
00:11:39.635 --> 00:11:43.025
<00:11:39.635>Again, <00:11:39.790>you <00:11:39.946>post <00:11:40.101>a <00:11:40.257>refresh <00:11:40.412>token <00:11:40.568>to <00:11:40.723>the <00:11:40.879>token <00:11:41.035>endpoint.

268
00:11:43.245 --> 00:11:45.865
<00:11:43.245>Um, <00:11:43.400>the <00:11:43.556>token <00:11:43.711>endpoint <00:11:43.867>is <00:11:44.022>again <00:11:44.178>given <00:11:44.333>in <00:11:44.489>this, <00:11:44.645>uh,

269
00:11:45.865 --> 00:11:48.265
<00:11:45.865>well <00:11:46.065>now <00:11:46.265>endpoint <00:11:46.465>Jason <00:11:46.665>that <00:11:46.865>we <00:11:47.065>shown <00:11:47.265>earlier.

270
00:11:48.365 --> 00:11:50.425
<00:11:48.365>We <00:11:48.565>receive <00:11:48.765>another <00:11:48.965>ID <00:11:49.165>to <00:11:49.365>token <00:11:49.565>access <00:11:49.765>token

271
00:11:50.425 --> 00:11:52.265
<00:11:50.425>and <00:11:50.658>refresh <00:11:50.891>token, <00:11:51.125>and <00:11:51.358>we <00:11:51.591>do <00:11:51.824>that

272
00:11:52.625 --> 00:11:54.725
<00:11:52.625>whenever <00:11:52.800>we <00:11:52.975>see <00:11:53.150>that <00:11:53.325>the <00:11:53.500>access <00:11:53.675>token <00:11:53.850>has <00:11:54.025>expired.

273
00:11:56.395 --> 00:12:00.325
<00:11:56.395>There's <00:11:56.550>the <00:11:56.706>user <00:11:56.861>info <00:11:57.017>endpoint <00:11:57.172>where <00:11:57.328>take <00:11:57.483>the <00:11:57.639>access <00:11:57.795>token

274
00:12:00.345 --> 00:12:03.405
<00:12:00.345>and <00:12:00.578>send <00:12:00.811>um, <00:12:01.045>it <00:12:01.278>as <00:12:01.511>a <00:12:01.745>header

275
00:12:03.705 --> 00:12:05.845
<00:12:03.705>and <00:12:03.880>then <00:12:04.055>in <00:12:04.230>return <00:12:04.405>I <00:12:04.580>get <00:12:04.755>some <00:12:04.930>user <00:12:05.105>information.

276
00:12:05.845 --> 00:12:07.445
<00:12:05.845>And <00:12:06.045>we've <00:12:06.245>seen <00:12:06.445>that <00:12:06.645>user <00:12:06.845>information <00:12:07.045>here <00:12:07.245>in

277
00:12:07.445 --> 00:12:08.485
<00:12:07.445>our <00:12:07.757>demo <00:12:08.069>application <00:12:08.381>here.

278
00:12:08.865 --> 00:12:12.365
<00:12:08.865>The <00:12:09.040>user <00:12:09.215>information <00:12:09.390>can <00:12:09.565>include <00:12:09.740>some <00:12:09.915>of <00:12:10.090>the, <00:12:10.265>um,

279
00:12:12.685 --> 00:12:15.125
<00:12:12.685>standard <00:12:13.035>co, <00:12:13.385>um, <00:12:13.734>claims <00:12:14.084>here.

280
00:12:15.665 --> 00:12:18.245
<00:12:15.665>And <00:12:15.839>these <00:12:16.015>standard <00:12:16.189>claims <00:12:16.365>are <00:12:16.540>defined <00:12:16.714>in <00:12:16.890>Open <00:12:17.064>Mighty

281
00:12:18.245 --> 00:12:19.325
<00:12:18.245>Connect, <00:12:18.488>but <00:12:18.731>with <00:12:18.974>Key <00:12:19.217>Log,

282
00:12:19.325 --> 00:12:20.805
<00:12:19.325>you <00:12:19.515>can <00:12:19.705>customize <00:12:19.895>it <00:12:20.086>the <00:12:20.276>way <00:12:20.466>you <00:12:20.656>want.

283
00:12:20.825 --> 00:12:23.605
<00:12:20.825>You <00:12:20.965>can <00:12:21.105>add <00:12:21.245>the, <00:12:21.385>add <00:12:21.525>the <00:12:21.665>claims <00:12:21.805>that <00:12:21.945>you <00:12:22.085>need <00:12:22.225>for

284
00:12:23.905 --> 00:12:25.365
<00:12:23.905>to <00:12:24.233>fulfill <00:12:24.562>the <00:12:24.890>business <00:12:25.219>needs.

285
00:12:25.385 --> 00:12:27.805
<00:12:25.385>So <00:12:25.560>basically <00:12:25.735>you <00:12:25.910>can <00:12:26.085>put <00:12:26.260>any <00:12:26.435>name, <00:12:26.610>any <00:12:26.785>data

286
00:12:27.805 --> 00:12:29.085
<00:12:27.805>that's <00:12:28.035>in <00:12:28.265>the <00:12:28.496>Key <00:12:28.726>Log <00:12:28.957>database

287
00:12:29.145 --> 00:12:32.445
<00:12:29.145>or <00:12:29.272>maybe, <00:12:29.399>um, <00:12:29.526>key <00:12:29.654>Log <00:12:29.781>can <00:12:29.908>look <00:12:30.035>it <00:12:30.163>up <00:12:30.290>in <00:12:30.417>another <00:12:30.545>database

288
00:12:32.445 --> 00:12:34.165
<00:12:32.445>and <00:12:32.678>put <00:12:32.911>it <00:12:33.145>in <00:12:33.378>its <00:12:33.611>user <00:12:33.845>info.

289
00:12:34.165 --> 00:12:36.085
<00:12:34.165>It <00:12:34.305>can <00:12:34.444>put <00:12:34.584>it <00:12:34.724>in <00:12:34.865>the <00:12:35.005>token, <00:12:35.145>in <00:12:35.285>the <00:12:35.425>access <00:12:35.564>token

290
00:12:36.085 --> 00:12:38.045
<00:12:36.085>or <00:12:36.318>the <00:12:36.551>ID <00:12:36.785>token <00:12:37.018>for <00:12:37.251>Key <00:12:37.485>Click.

291
00:12:38.045 --> 00:12:39.045
<00:12:38.045>It <00:12:38.344>doesn't <00:12:38.645>really <00:12:38.944>matter

292
00:12:39.815 --> 00:12:41.445
<00:12:39.815>where <00:12:40.048>you <00:12:40.281>want <00:12:40.515>this <00:12:40.748>information <00:12:40.981>to <00:12:41.215>be.

293
00:12:41.475 --> 00:12:44.525
<00:12:41.475>It's <00:12:41.650>you <00:12:41.825>that <00:12:42.000>chooses, <00:12:42.175>uh, <00:12:42.350>what <00:12:42.525>information <00:12:42.700>you <00:12:42.875>want

294
00:12:44.525 --> 00:12:45.805
<00:12:44.525>to <00:12:44.689>see <00:12:44.854>in, <00:12:45.018>in <00:12:45.183>each <00:12:45.347>of <00:12:45.512>these, <00:12:45.676>uh,

295
00:12:45.805 --> 00:12:49.285
<00:12:45.805>different <00:12:45.960>claims <00:12:46.116>in <00:12:46.271>the <00:12:46.427>user <00:12:46.582>info <00:12:46.738>or <00:12:46.893>in <00:12:47.049>the <00:12:47.204>tokens.

296
00:12:51.065 --> 00:12:54.435
<00:12:51.065>Logging <00:12:51.265>out <00:12:51.465>from <00:12:51.665>all <00:12:51.865>applications, <00:12:52.065>um, <00:12:52.265>is <00:12:52.465>another,

297
00:12:55.255 --> 00:12:56.555
<00:12:55.255>uh, <00:12:55.645>end <00:12:56.035>session <00:12:56.425>endpoint.

298
00:12:57.095 --> 00:12:59.635
<00:12:57.095>And <00:12:57.295>if <00:12:57.495>you've <00:12:57.695>been <00:12:57.895>using <00:12:58.095>OpenID <00:12:58.295>Connect, <00:12:58.495>uh,

299
00:12:59.755 --> 00:13:03.075
<00:12:59.755>a <00:12:59.862>long <00:12:59.970>time <00:13:00.078>ago, <00:13:00.185>you <00:13:00.293>did <00:13:00.401>not <00:13:00.508>need <00:13:00.616>to <00:13:00.724>pass <00:13:00.831>in <00:13:00.939>an <00:13:01.047>IDD <00:13:01.155>token

300
00:13:03.075 --> 00:13:05.555
<00:13:03.075>and <00:13:03.230>some <00:13:03.386>people <00:13:03.541>found <00:13:03.697>that <00:13:03.852>not <00:13:04.008>to <00:13:04.163>be <00:13:04.319>secure <00:13:04.475>enough.

301
00:13:06.055 --> 00:13:08.475
<00:13:06.055>So <00:13:06.255>in <00:13:06.454>the <00:13:06.655>very <00:13:06.854>latest <00:13:07.055>standard, <00:13:07.255>you, <00:13:07.454>um,

302
00:13:08.775 --> 00:13:10.715
<00:13:08.775>put <00:13:08.949>in <00:13:09.125>an <00:13:09.300>ID <00:13:09.475>token <00:13:09.650>hint <00:13:09.824>in <00:13:10.000>the <00:13:10.175>URL

303
00:13:11.215 --> 00:13:14.675
<00:13:11.215>and <00:13:11.415>then, <00:13:11.615>um, <00:13:11.815>K <00:13:12.015>log <00:13:12.215>trust <00:13:12.415>that <00:13:12.615>redirect

304
00:13:14.815 --> 00:13:19.155
<00:13:14.815>and <00:13:14.970>knows <00:13:15.126>okay, <00:13:15.281>the <00:13:15.437>user, <00:13:15.592>yeah, <00:13:15.748>it's <00:13:15.903>a <00:13:16.059>trustworthy <00:13:16.215>redirect

305
00:13:19.215 --> 00:13:21.235
<00:13:19.215>and <00:13:19.415>you're <00:13:19.615>following <00:13:19.815>it, <00:13:20.015>you're <00:13:20.215>directly <00:13:20.415>logged <00:13:20.615>out.

306
00:13:21.415 --> 00:13:23.035
<00:13:21.415>If <00:13:21.589>you <00:13:21.765>don't <00:13:21.939>put <00:13:22.115>in <00:13:22.290>this <00:13:22.464>ID <00:13:22.640>token <00:13:22.814>hint,

307
00:13:23.035 --> 00:13:24.515
<00:13:23.035>you <00:13:23.301>will <00:13:23.567>see <00:13:23.834>a <00:13:24.100>confirmation <00:13:24.367>dialogue

308
00:13:24.705 --> 00:13:28.515
<00:13:24.705>because <00:13:24.845>then <00:13:24.985>K <00:13:25.125>Log <00:13:25.265>thinks <00:13:25.405>may <00:13:25.545>be <00:13:25.685>somebody <00:13:25.825>tricked <00:13:25.965>the <00:13:26.105>user

309
00:13:28.655 --> 00:13:32.235
<00:13:28.655>to <00:13:28.771>click <00:13:28.888>on <00:13:29.005>that <00:13:29.121>button <00:13:29.238>to <00:13:29.355>log <00:13:29.471>out, <00:13:29.588>uh, <00:13:29.704>and <00:13:29.821>to <00:13:29.938>annoy <00:13:30.055>people.

310
00:13:32.295 --> 00:13:34.635
<00:13:32.295>So <00:13:32.469>every <00:13:32.645>time <00:13:32.819>put <00:13:32.995>in <00:13:33.170>this <00:13:33.344>ID <00:13:33.520>token <00:13:33.694>hint

311
00:13:34.635 --> 00:13:38.235
<00:13:34.635>or <00:13:34.762>teach <00:13:34.889>your <00:13:35.016>library <00:13:35.144>to <00:13:35.271>put <00:13:35.398>in <00:13:35.525>the, <00:13:35.653>um, <00:13:35.780>ID <00:13:35.907>token <00:13:36.035>hint.

312
00:13:38.235 --> 00:13:39.475
<00:13:38.235>And <00:13:38.421>then <00:13:38.607>the <00:13:38.793>user <00:13:38.979>is <00:13:39.165>logged <00:13:39.351>out

313
00:13:40.535 --> 00:13:43.435
<00:13:40.535>and <00:13:40.690>they're <00:13:40.846>logged <00:13:41.001>out <00:13:41.157>from <00:13:41.312>all <00:13:41.468>their <00:13:41.623>application <00:13:41.779>they <00:13:41.935>used

314
00:13:43.435 --> 00:13:46.195
<00:13:43.435>during <00:13:43.635>whatever <00:13:43.834>session <00:13:44.035>length <00:13:44.234>they <00:13:44.435>had <00:13:44.635>a <00:13:44.834>month,

315
00:13:46.315 --> 00:13:47.635
<00:13:46.315>a <00:13:46.552>year, <00:13:46.790>a <00:13:47.027>day <00:13:47.265>or <00:13:47.503>whatnot.

316
00:13:49.685 --> 00:13:51.665
<00:13:49.685>So <00:13:49.918>after <00:13:50.151>this <00:13:50.385>point, <00:13:50.618>I'd <00:13:50.851>say <00:13:51.084>this

317
00:13:51.665 --> 00:13:53.225
<00:13:51.665>was <00:13:52.015>standard <00:13:52.365>open, <00:13:52.714>mighty <00:13:53.064>Connect.

318
00:13:53.485 --> 00:13:56.745
<00:13:53.485>Uh, <00:13:53.660>I <00:13:53.835>hope <00:13:54.010>you <00:13:54.185>still, <00:13:54.360>um, <00:13:54.535>learned <00:13:54.710>one <00:13:54.885>thing

319
00:13:56.745 --> 00:13:59.825
<00:13:56.745>or <00:13:56.900>two <00:13:57.056>about <00:13:57.211>open <00:13:57.367>my <00:13:57.522>Connect, <00:13:57.678>maybe <00:13:57.833>about <00:13:57.989>registering, <00:13:58.145>maybe

320
00:13:59.885 --> 00:14:02.425
<00:13:59.885>how <00:14:00.040>to <00:14:00.196>figure <00:14:00.351>out <00:14:00.507>if <00:14:00.662>user <00:14:00.818>are <00:14:00.973>still <00:14:01.129>logged <00:14:01.285>in.

321
00:14:03.565 --> 00:14:05.105
<00:14:03.565>But <00:14:03.911>then <00:14:04.258>there <00:14:04.604>are <00:14:04.951>lots

322
00:14:05.105 --> 00:14:07.145
<00:14:05.105>of <00:14:05.280>other <00:14:05.455>things <00:14:05.630>you <00:14:05.805>need <00:14:05.980>when <00:14:06.155>you <00:14:06.330>manage <00:14:06.505>users.

323
00:14:08.085 --> 00:14:09.985
<00:14:08.085>So, <00:14:08.435>um, <00:14:08.785>so <00:14:09.135>for <00:14:09.485>example,

324
00:14:09.985 --> 00:14:11.945
<00:14:09.985>you <00:14:10.218>wanna <00:14:10.451>enforce <00:14:10.685>a <00:14:10.918>second <00:14:11.151>factor <00:14:11.385>authentication.

325
00:14:12.405 --> 00:14:15.905
<00:14:12.405>So <00:14:12.512>we <00:14:12.620>have <00:14:12.728>a, <00:14:12.835>it's <00:14:12.943>a <00:14:13.051>bit <00:14:13.158>too <00:14:13.266>much <00:14:13.374>for <00:14:13.481>the <00:14:13.589>demo <00:14:13.697>here <00:14:13.805>today.

326
00:14:16.085 --> 00:14:17.105
<00:14:16.085>So <00:14:16.238>we <00:14:16.391>have <00:14:16.544>it <00:14:16.697>in <00:14:16.850>the <00:14:17.003>docs

327
00:14:17.105 --> 00:14:18.705
<00:14:17.105>and <00:14:17.280>the <00:14:17.455>link <00:14:17.630>is <00:14:17.805>in, <00:14:17.980>in <00:14:18.155>on <00:14:18.330>the <00:14:18.505>slides.

328
00:14:19.205 --> 00:14:21.665
<00:14:19.205>So <00:14:19.380>you <00:14:19.555>have <00:14:19.730>the <00:14:19.905>same <00:14:20.080>authorization <00:14:20.255>endpoint <00:14:20.430>you <00:14:20.605>had

329
00:14:21.665 --> 00:14:23.465
<00:14:21.665>before <00:14:21.865>you <00:14:22.064>put <00:14:22.265>in <00:14:22.464>an <00:14:22.665>A <00:14:22.865>CR <00:14:23.064>value

330
00:14:23.885 --> 00:14:26.225
<00:14:23.885>and <00:14:24.085>say, <00:14:24.285>yes, <00:14:24.485>for <00:14:24.685>this <00:14:24.885>application, <00:14:25.085>I <00:14:25.285>want

331
00:14:26.225 --> 00:14:27.425
<00:14:26.225>to <00:14:26.441>have <00:14:26.657>a <00:14:26.872>step <00:14:27.089>up <00:14:27.305>authentication

332
00:14:27.425 --> 00:14:29.345
<00:14:27.425>because <00:14:27.599>maybe <00:14:27.775>I <00:14:27.949>want <00:14:28.125>to <00:14:28.300>change <00:14:28.474>a <00:14:28.650>bank <00:14:28.824>account.

333
00:14:29.925 --> 00:14:32.105
<00:14:29.925>Uh, <00:14:30.064>and <00:14:30.204>this <00:14:30.344>is <00:14:30.484>a <00:14:30.625>very <00:14:30.765>important <00:14:30.905>bit, <00:14:31.045>so <00:14:31.185>I <00:14:31.324>want

334
00:14:32.105 --> 00:14:34.105
<00:14:32.105>to <00:14:32.305>have <00:14:32.505>the <00:14:32.705>user <00:14:32.905>being <00:14:33.105>authenticated <00:14:33.305>with <00:14:33.505>a,

335
00:14:35.325 --> 00:14:36.825
<00:14:35.325>um, <00:14:35.662>with <00:14:36.000>a <00:14:36.337>second <00:14:36.675>factor.

336
00:14:38.985 --> 00:14:41.365
<00:14:38.985>Um, <00:14:39.265>sometimes <00:14:39.545>it's <00:14:39.825>difficult <00:14:40.105>to <00:14:40.385>configure

337
00:14:41.365 --> 00:14:44.805
<00:14:41.365>that <00:14:41.540>in <00:14:41.715>custom <00:14:41.890>application, <00:14:42.065>uh, <00:14:42.240>off <00:14:42.415>the <00:14:42.590>shelf <00:14:42.765>applications.

338
00:14:44.865 --> 00:14:47.485
<00:14:44.865>So <00:14:45.040>in <00:14:45.215>key <00:14:45.390>Cloud <00:14:45.565>26.1, <00:14:45.740>we <00:14:45.915>added <00:14:46.090>the <00:14:46.265>functionality.

339
00:14:48.065 --> 00:14:49.685
<00:14:48.065>So <00:14:48.345>we <00:14:48.625>can <00:14:48.905>configure <00:14:49.185>Key <00:14:49.465>Cloud

340
00:14:49.705 --> 00:14:52.165
<00:14:49.705>to <00:14:49.905>know <00:14:50.105>if <00:14:50.305>this <00:14:50.505>application <00:14:50.705>sends <00:14:50.905>a <00:14:51.105>requests.

341
00:14:52.545 --> 00:14:55.525
<00:14:52.545>You <00:14:52.685>always <00:14:52.824>want <00:14:52.964>to <00:14:53.104>have <00:14:53.245>the <00:14:53.385>user <00:14:53.525>apply <00:14:53.665>a <00:14:53.805>second <00:14:53.944>factor.

342
00:14:56.825 --> 00:14:58.525
<00:14:56.825>So <00:14:57.000>that <00:14:57.175>can <00:14:57.350>be <00:14:57.525>done <00:14:57.700>with <00:14:57.875>a <00:14:58.050>default <00:14:58.225>AC

343
00:14:58.585 --> 00:15:02.085
<00:14:58.585>or <00:14:58.740>minimum <00:14:58.896>a <00:14:59.051>CR <00:14:59.207>value <00:14:59.362>in <00:14:59.518>decline <00:14:59.673>configuration <00:14:59.829>since <00:14:59.985>kick

344
00:15:02.085 --> 00:15:06.115
<00:15:02.085>out <00:15:02.365>26.10 <00:15:02.645>yeah, <00:15:02.925>notion <00:15:03.205>of <00:15:03.485>cautions

345
00:15:06.245 --> 00:15:07.395
<00:15:06.245>after <00:15:06.590>this <00:15:06.935>flow <00:15:07.280>completed.

346
00:15:07.395 --> 00:15:09.635
<00:15:07.395>You <00:15:07.535>always <00:15:07.675>want <00:15:07.814>to <00:15:07.954>track <00:15:08.095>if <00:15:08.235>this <00:15:08.375>a <00:15:08.515>CR <00:15:08.655>is <00:15:08.795>really

347
00:15:09.635 --> 00:15:10.915
<00:15:09.635>present <00:15:09.923>in <00:15:10.211>the <00:15:10.499>ID <00:15:10.786>token.

348
00:15:13.545 --> 00:15:15.435
<00:15:13.545>Another <00:15:13.778>thing <00:15:14.011>is, <00:15:14.245>well, <00:15:14.478>you <00:15:14.711>have <00:15:14.944>users

349
00:15:15.775 --> 00:15:18.995
<00:15:15.775>and <00:15:15.930>eventually <00:15:16.086>they <00:15:16.241>want <00:15:16.397>to <00:15:16.552>make, <00:15:16.708>maybe <00:15:16.863>change <00:15:17.019>their <00:15:17.175>name,

350
00:15:19.045 --> 00:15:20.315
<00:15:19.045>maybe <00:15:19.425>change <00:15:19.807>their <00:15:20.188>address,

351
00:15:21.015 --> 00:15:23.555
<00:15:21.015>and <00:15:21.170>well, <00:15:21.326>you <00:15:21.481>also <00:15:21.637>don't <00:15:21.792>want <00:15:21.948>to <00:15:22.103>implement <00:15:22.259>that <00:15:22.415>yourself

352
00:15:23.555 --> 00:15:25.675
<00:15:23.555>because <00:15:23.755>it's <00:15:23.954>been <00:15:24.155>done <00:15:24.354>a <00:15:24.555>million <00:15:24.755>times <00:15:24.954>for.

353
00:15:26.415 --> 00:15:30.795
<00:15:26.415>And <00:15:26.555>so <00:15:26.694>Key <00:15:26.834>Cloud <00:15:26.974>comes <00:15:27.115>with <00:15:27.255>a <00:15:27.395>fully <00:15:27.535>fledged <00:15:27.675>account <00:15:27.814>console.

354
00:15:32.495 --> 00:15:36.315
<00:15:32.495>So <00:15:32.650>I <00:15:32.806>can, <00:15:32.961>and <00:15:33.117>that's <00:15:33.272>again, <00:15:33.428>only <00:15:33.583>one <00:15:33.739>redirect <00:15:33.895>away.

355
00:15:36.775 --> 00:15:39.435
<00:15:36.775>So <00:15:36.915>I <00:15:37.055>have <00:15:37.194>a <00:15:37.334>redirect. <00:15:37.475>I <00:15:37.615>can <00:15:37.755>change <00:15:37.895>my <00:15:38.035>data <00:15:38.175>here.

356
00:15:40.035 --> 00:15:42.395
<00:15:40.035>I <00:15:40.235>can <00:15:40.435>also <00:15:40.635>see, <00:15:40.834>uh, <00:15:41.035>change <00:15:41.235>my <00:15:41.435>password.

357
00:15:42.995 --> 00:15:45.715
<00:15:42.995>I <00:15:43.122>can <00:15:43.249>add <00:15:43.376>a <00:15:43.504>second <00:15:43.631>factor <00:15:43.758>here. <00:15:43.885>I <00:15:44.013>see <00:15:44.140>device <00:15:44.267>of <00:15:44.395>activities.

358
00:15:45.715 --> 00:15:47.675
<00:15:45.715>And <00:15:45.890>then <00:15:46.065>can <00:15:46.240>I <00:15:46.415>link <00:15:46.590>back <00:15:46.765>to <00:15:46.940>my <00:15:47.115>application?

359
00:15:48.625 --> 00:15:50.235
<00:15:48.625>This <00:15:48.975>UI <00:15:49.325>you've <00:15:49.675>seen <00:15:50.025>here

360
00:15:50.335 --> 00:15:52.595
<00:15:50.335>for <00:15:50.568>the <00:15:50.801>account <00:15:51.035>console <00:15:51.268>is <00:15:51.501>fully <00:15:51.735>teamable.

361
00:15:53.415 --> 00:15:56.675
<00:15:53.415>So <00:15:53.531>you <00:15:53.648>can, <00:15:53.765>uh, <00:15:53.881>put <00:15:53.998>it <00:15:54.115>in <00:15:54.231>with <00:15:54.348>the <00:15:54.464>colors <00:15:54.581>of <00:15:54.698>your, <00:15:54.814>uh,

362
00:15:56.675 --> 00:16:00.835
<00:15:56.675>company, <00:15:56.830>but <00:15:56.986>then <00:15:57.141>this <00:15:57.297>is <00:15:57.452>a <00:15:57.608>fully <00:15:57.763>fetched <00:15:57.919>account <00:15:58.074>console,

363
00:16:00.875 --> 00:16:01.915
<00:16:00.875>a <00:16:01.109>really <00:16:01.343>application <00:16:01.577>where <00:16:01.810>you

364
00:16:01.915 --> 00:16:02.995
<00:16:01.915>can <00:16:02.109>really <00:16:02.303>navigate <00:16:02.498>back <00:16:02.692>and <00:16:02.887>forth.

365
00:16:03.505 --> 00:16:06.755
<00:16:03.505>Sometimes <00:16:03.785>you <00:16:04.064>only <00:16:04.345>want <00:16:04.625>to <00:16:04.905>have,

366
00:16:08.395 --> 00:16:09.645
<00:16:08.395>like <00:16:08.770>I <00:16:09.145>say, <00:16:09.520>snippets

367
00:16:09.705 --> 00:16:12.205
<00:16:09.705>or <00:16:09.880>the <00:16:10.055>bricks <00:16:10.230>out <00:16:10.405>of <00:16:10.580>that <00:16:10.755>full <00:16:10.930>account <00:16:11.105>console.

368
00:16:12.545 --> 00:16:14.205
<00:16:12.545>And <00:16:12.719>what <00:16:12.895>you <00:16:13.069>can <00:16:13.245>then, <00:16:13.420>do <00:16:13.594>you <00:16:13.770>have, <00:16:13.944>again,

369
00:16:14.205 --> 00:16:16.805
<00:16:14.205>that <00:16:14.380>the <00:16:14.555>same <00:16:14.730>authorization <00:16:14.905>endpoint <00:16:15.080>that <00:16:15.255>we <00:16:15.430>saw <00:16:15.605>earlier

370
00:16:17.175 --> 00:16:19.845
<00:16:17.175>where <00:16:17.349>you <00:16:17.525>do <00:16:17.699>the <00:16:17.875>prompt <00:16:18.050>create <00:16:18.224>and <00:16:18.400>prompt <00:16:18.574>login

371
00:16:19.905 --> 00:16:23.005
<00:16:19.905>and <00:16:20.045>whatnot, <00:16:20.185>there's <00:16:20.324>a <00:16:20.464>kick <00:16:20.605>talk <00:16:20.745>specific <00:16:20.885>action <00:16:21.025>you <00:16:21.165>can <00:16:21.305>add

372
00:16:23.005 --> 00:16:24.165
<00:16:23.005>to <00:16:23.213>with <00:16:23.422>UR <00:16:23.631>L <00:16:23.840>for <00:16:24.049>example,

373
00:16:24.295 --> 00:16:27.445
<00:16:24.295>Casey <00:16:24.645>correction <00:16:24.995>equals <00:16:25.344>update <00:16:25.694>profile.

374
00:16:27.995 --> 00:16:31.845
<00:16:27.995>With <00:16:28.170>that, <00:16:28.345>you <00:16:28.520>can <00:16:28.695>redirect <00:16:28.870>a <00:16:29.045>user <00:16:29.220>to, <00:16:29.395>um,

375
00:16:32.355 --> 00:16:34.165
<00:16:32.355>just <00:16:32.588>a <00:16:32.821>screen <00:16:33.055>to <00:16:33.288>update <00:16:33.521>the <00:16:33.755>profile.

376
00:16:34.665 --> 00:16:36.725
<00:16:34.665>And <00:16:34.839>there <00:16:35.015>are <00:16:35.189>lots <00:16:35.365>of <00:16:35.540>more <00:16:35.714>custom <00:16:35.890>action <00:16:36.064>here.

377
00:16:36.785 --> 00:16:39.485
<00:16:36.785>You <00:16:36.925>can <00:16:37.064>always <00:16:37.204>have <00:16:37.344>a <00:16:37.485>button <00:16:37.625>to <00:16:37.765>just <00:16:37.905>update <00:16:38.045>the <00:16:38.185>password,

378
00:16:39.505 --> 00:16:42.325
<00:16:39.505>to <00:16:39.680>just <00:16:39.855>delete <00:16:40.030>the <00:16:40.205>account <00:16:40.380>to <00:16:40.555>just <00:16:40.730>configure <00:16:40.905>a,

379
00:16:42.445 --> 00:16:43.765
<00:16:42.445>a <00:16:42.841>one-time <00:16:43.237>password <00:16:43.633>token.

380
00:16:44.585 --> 00:16:47.365
<00:16:44.585>And <00:16:44.818>these <00:16:45.051>are <00:16:45.285>called <00:16:45.518>application <00:16:45.751>initiated <00:16:45.985>actions.

381
00:16:48.345 --> 00:16:50.245
<00:16:48.345>And <00:16:48.625>actually <00:16:48.905>it's <00:16:49.185>the <00:16:49.465>same <00:16:49.745>functionality

382
00:16:50.245 --> 00:16:51.925
<00:16:50.245>that <00:16:50.445>we <00:16:50.645>use <00:16:50.845>also <00:16:51.045>in <00:16:51.245>the <00:16:51.445>account <00:16:51.645>console.

383
00:16:52.625 --> 00:16:56.525
<00:16:52.625>But <00:16:52.752>yeah, <00:16:52.879>you <00:16:53.006>can <00:16:53.134>then <00:16:53.261>reuse <00:16:53.388>them <00:16:53.515>as <00:16:53.643>much <00:16:53.770>as <00:16:53.897>you <00:16:54.025>need

384
00:16:56.745 --> 00:16:58.925
<00:16:56.745>or <00:16:56.920>want <00:16:57.095>to <00:16:57.270>reuse <00:16:57.445>them <00:16:57.620>in <00:16:57.795>your <00:16:57.970>own <00:16:58.145>application.

385
00:16:58.925 --> 00:17:01.125
<00:16:58.925>So <00:16:59.158>it's, <00:16:59.391>again, <00:16:59.625>just <00:16:59.858>a <00:17:00.091>link <00:17:00.324>away.

386
00:17:01.805 --> 00:17:04.365
<00:17:01.805>I <00:17:01.979>have <00:17:02.155>an <00:17:02.329>update <00:17:02.505>profile, <00:17:02.680>I <00:17:02.854>click <00:17:03.030>here, <00:17:03.204>okay,

387
00:17:04.365 --> 00:17:06.565
<00:17:04.365>and <00:17:04.565>it <00:17:04.765>tells <00:17:04.964>me, <00:17:05.165>okay, <00:17:05.365>I <00:17:05.565>didn't <00:17:05.765>authenticate

388
00:17:06.565 --> 00:17:09.485
<00:17:06.565>for <00:17:06.705>the <00:17:06.845>last <00:17:06.985>30 <00:17:07.125>seconds, <00:17:07.265>so <00:17:07.405>it <00:17:07.545>wants <00:17:07.685>me <00:17:07.825>to <00:17:07.965>re-authenticate,

389
00:17:09.825 --> 00:17:12.085
<00:17:09.825>but <00:17:10.025>then <00:17:10.225>I <00:17:10.425>can <00:17:10.625>change <00:17:10.825>my <00:17:11.025>details <00:17:11.225>here.

390
00:17:12.785 --> 00:17:15.765
<00:17:12.785>Um, <00:17:12.960>I <00:17:13.135>can <00:17:13.310>update <00:17:13.485>my <00:17:13.660>password. <00:17:13.835>That's <00:17:14.010>the <00:17:14.185>same.

391
00:17:15.925 --> 00:17:17.245
<00:17:15.925>I <00:17:16.094>can <00:17:16.264>also <00:17:16.434>choose <00:17:16.603>to <00:17:16.773>sign <00:17:16.943>out <00:17:17.112>from

392
00:17:17.245 --> 00:17:18.365
<00:17:17.244>other <00:17:17.446>devices <00:17:17.648>if <00:17:17.849>I <00:17:18.051>choose <00:17:18.252>to.

393
00:17:19.065 --> 00:17:22.575
<00:17:19.065>And, <00:17:19.265>and <00:17:19.465>that's, <00:17:19.665>that's <00:17:19.865>really <00:17:20.065>a <00:17:20.265>nice <00:17:20.465>something.

394
00:17:23.235 --> 00:17:27.815
<00:17:23.234>Um, <00:17:23.435>that's <00:17:23.635>also, <00:17:23.834>um, <00:17:24.034>available <00:17:24.234>as, <00:17:24.435>as <00:17:24.635>some

395
00:17:27.815 --> 00:17:31.015
<00:17:27.815>of <00:17:28.015>these <00:17:28.215>application <00:17:28.415>initiated <00:17:28.615>actions <00:17:28.815>is <00:17:29.015>verify <00:17:29.215>email.

396
00:17:31.015 --> 00:17:34.535
<00:17:31.015>That's <00:17:31.142>a <00:17:31.269>new <00:17:31.396>feature <00:17:31.524>in <00:17:31.651>OC <00:17:31.778>26.2. <00:17:31.905>It's <00:17:32.033>the <00:17:32.160>same <00:17:32.287>as <00:17:32.415>syntax.

397
00:17:34.535 --> 00:17:35.535
<00:17:34.535>It <00:17:34.760>looks, <00:17:34.985>they're <00:17:35.210>very <00:17:35.435>similar.

398
00:17:36.315 --> 00:17:40.055
<00:17:36.315>And <00:17:36.442>what <00:17:36.569>then <00:17:36.696>happens <00:17:36.824>is <00:17:36.951>I <00:17:37.078>have <00:17:37.205>a <00:17:37.333>user <00:17:37.460>info <00:17:37.587>telling <00:17:37.715>me

399
00:17:40.435 --> 00:17:41.455
<00:17:40.435>that's <00:17:40.741>a <00:17:41.047>standard <00:17:41.352>claim.

400
00:17:41.585 --> 00:17:44.335
<00:17:41.585>Email <00:17:41.935>is, <00:17:42.285>uh, <00:17:42.635>verified <00:17:42.985>fault.

401
00:17:44.435 --> 00:17:45.655
<00:17:44.435>So <00:17:44.801>the <00:17:45.167>user <00:17:45.533>exists,

402
00:17:45.875 --> 00:17:47.695
<00:17:45.875>but <00:17:46.075>they <00:17:46.275>did <00:17:46.475>not <00:17:46.675>verify <00:17:46.875>their <00:17:47.075>email <00:17:47.275>address.

403
00:17:47.995 --> 00:17:49.565
<00:17:47.995>So <00:17:48.169>I <00:17:48.344>don't <00:17:48.520>trust <00:17:48.695>it, <00:17:48.870>I <00:17:49.044>don't <00:17:49.219>trust <00:17:49.395>it

404
00:17:49.565 --> 00:17:52.685
<00:17:49.565>to <00:17:49.720>send <00:17:49.876>it <00:17:50.031>any <00:17:50.187>conation, <00:17:50.342>uh, <00:17:50.498>con <00:17:50.653>yeah, <00:17:50.809>confidential <00:17:50.965>data.

405
00:17:53.305 --> 00:17:55.205
<00:17:53.305>But <00:17:53.505>I <00:17:53.705>then <00:17:53.905>say, <00:17:54.105>let's <00:17:54.305>do <00:17:54.505>verify <00:17:54.705>email.

406
00:17:55.255 --> 00:17:57.725
<00:17:55.255>Let's <00:17:55.605>call <00:17:55.955>this <00:17:56.305>application <00:17:56.655>initiated

407
00:17:57.725 --> 00:17:58.925
<00:17:57.725>action <00:17:57.995>to <00:17:58.264>verify <00:17:58.534>the <00:17:58.804>email.

408
00:17:59.565 --> 00:18:02.205
<00:17:59.565>I <00:17:59.740>click <00:17:59.915>here, <00:18:00.090>verify <00:18:00.265>email, <00:18:00.440>I <00:18:00.615>get <00:18:00.790>an <00:18:00.965>email.

409
00:18:03.225 --> 00:18:08.165
<00:18:03.225>Um, <00:18:03.380>yes, <00:18:03.536>someone <00:18:03.691>created <00:18:03.847>a <00:18:04.002>test <00:18:04.158>account <00:18:04.313>with <00:18:04.469>the <00:18:04.625>DMed.

410
00:18:08.825 --> 00:18:11.125
<00:18:08.825>Do <00:18:08.952>you <00:18:09.079>want <00:18:09.206>to <00:18:09.334>click <00:18:09.461>on <00:18:09.588>this <00:18:09.715>link <00:18:09.843>expires <00:18:09.970>in <00:18:10.097>five <00:18:10.225>minutes?

411
00:18:11.185 --> 00:18:12.405
<00:18:11.185>Yes, <00:18:11.341>I <00:18:11.498>want <00:18:11.655>to <00:18:11.812>click <00:18:11.969>on <00:18:12.126>this <00:18:12.283>link.

412
00:18:13.025 --> 00:18:15.285
<00:18:13.025>And <00:18:13.258>then <00:18:13.491>the, <00:18:13.725>um, <00:18:13.958>email <00:18:14.191>is <00:18:14.425>verified

413
00:18:15.705 --> 00:18:19.085
<00:18:15.705>and <00:18:15.860>the <00:18:16.016>user <00:18:16.171>info <00:18:16.327>shows <00:18:16.482>me <00:18:16.638>yes, <00:18:16.793>email <00:18:16.949>verified <00:18:17.105>true.

414
00:18:19.625 --> 00:18:22.765
<00:18:19.625>So <00:18:19.858>that's <00:18:20.091>another, <00:18:20.325>um, <00:18:20.558>application <00:18:20.791>initiated <00:18:21.025>action

415
00:18:22.765 --> 00:18:25.285
<00:18:22.765>that <00:18:23.115>really <00:18:23.465>solves <00:18:23.815>one <00:18:24.165>more

416
00:18:25.305 --> 00:18:27.685
<00:18:25.305>of <00:18:25.460>the <00:18:25.616>many <00:18:25.771>things <00:18:25.927>you <00:18:26.082>have <00:18:26.238>when <00:18:26.393>you <00:18:26.549>have <00:18:26.705>users.

417
00:18:31.525 --> 00:18:33.385
<00:18:31.525>Um, <00:18:31.805>you <00:18:32.085>can <00:18:32.365>also <00:18:32.645>go <00:18:32.925>further

418
00:18:33.605 --> 00:18:36.705
<00:18:33.605>and <00:18:33.760>really <00:18:33.916>configure <00:18:34.071>in <00:18:34.227>OG <00:18:34.382>how <00:18:34.538>you <00:18:34.693>want <00:18:34.849>to, <00:18:35.005>um,

419
00:18:37.005 --> 00:18:39.185
<00:18:37.005>manage <00:18:37.180>all <00:18:37.355>the <00:18:37.530>different <00:18:37.705>fields <00:18:37.880>that <00:18:38.055>the <00:18:38.230>user <00:18:38.405>have.

420
00:18:39.805 --> 00:18:44.625
<00:18:39.805>So, <00:18:39.960>um, <00:18:40.116>Basically <00:18:40.271>in <00:18:40.427>in <00:18:40.582>one <00:18:40.738>of <00:18:40.893>the <00:18:41.049>recent <00:18:41.205>versions,

421
00:18:44.625 --> 00:18:46.985
<00:18:44.625>we <00:18:44.825>added <00:18:45.025>a <00:18:45.225>fully <00:18:45.425>fledged, <00:18:45.625>uh, <00:18:45.825>form <00:18:46.025>editor.

422
00:18:47.085 --> 00:18:50.545
<00:18:47.085>You <00:18:47.260>can <00:18:47.435>really <00:18:47.610>choose, <00:18:47.785>uh, <00:18:47.960>that's <00:18:48.135>called <00:18:48.310>user <00:18:48.485>profile.

423
00:18:50.575 --> 00:18:53.065
<00:18:50.575>Here <00:18:50.775>I <00:18:50.975>have <00:18:51.175>email, <00:18:51.375>first <00:18:51.575>name, <00:18:51.775>last <00:18:51.975>name.

424
00:18:53.465 --> 00:18:56.545
<00:18:53.465>I <00:18:53.620>can <00:18:53.776>create <00:18:53.931>new <00:18:54.087>attributes <00:18:54.242>that <00:18:54.398>are <00:18:54.553>then <00:18:54.709>either <00:18:54.865>mapped

425
00:18:56.545 --> 00:18:59.185
<00:18:56.545>to <00:18:56.700>LD <00:18:56.856>a <00:18:57.011>or <00:18:57.167>map <00:18:57.322>to <00:18:57.478>a <00:18:57.633>custom <00:18:57.789>database <00:18:57.945>that

426
00:18:59.185 --> 00:19:00.265
<00:18:59.185>that's <00:18:59.428>really <00:18:59.671>my <00:18:59.914>choice <00:19:00.157>here.

427
00:19:01.325 --> 00:19:03.825
<00:19:01.325>And <00:19:01.525>I <00:19:01.725>want <00:19:01.925>to <00:19:02.125>show <00:19:02.325>an <00:19:02.525>address <00:19:02.725>here.

428
00:19:04.065 --> 00:19:05.585
<00:19:04.065>I <00:19:04.293>can <00:19:04.521>say <00:19:04.749>if <00:19:04.977>it's <00:19:05.205>multiple <00:19:05.433>yes

429
00:19:05.585 --> 00:19:08.785
<00:19:05.585>or <00:19:05.740>no, <00:19:05.896>I <00:19:06.051>want <00:19:06.207>to <00:19:06.362>show <00:19:06.518>that <00:19:06.673>it's <00:19:06.829>always <00:19:06.985>enabled.

430
00:19:09.065 --> 00:19:10.985
<00:19:09.065>I <00:19:09.298>can <00:19:09.531>show <00:19:09.765>that <00:19:09.998>it's <00:19:10.231>sometimes <00:19:10.465>required.

431
00:19:11.885 --> 00:19:16.025
<00:19:11.885>Um, <00:19:12.085>it's <00:19:12.285>required <00:19:12.485>for <00:19:12.685>both <00:19:12.885>use <00:19:13.085>and <00:19:13.285>admins.

432
00:19:16.405 --> 00:19:18.905
<00:19:16.405>And <00:19:16.560>maybe <00:19:16.716>when <00:19:16.871>an <00:19:17.027>only <00:19:17.182>a <00:19:17.338>specific <00:19:17.493>scope <00:19:17.649>is, <00:19:17.805>um,

433
00:19:19.285 --> 00:19:22.345
<00:19:19.285>is <00:19:19.635>requested, <00:19:19.985>and <00:19:20.335>I <00:19:20.685>can

434
00:19:22.525 --> 00:19:24.025
<00:19:22.525>who <00:19:22.750>understand <00:19:22.975>the <00:19:23.200>permission <00:19:23.425>to <00:19:23.650>edit <00:19:23.875>it.

435
00:19:24.025 --> 00:19:26.105
<00:19:24.025>So <00:19:24.200>it's, <00:19:24.375>I'd <00:19:24.550>say <00:19:24.725>a <00:19:24.900>fully <00:19:25.075>fledged <00:19:25.250>form <00:19:25.425>editor

436
00:19:26.175 --> 00:19:27.585
<00:19:26.175>with <00:19:26.492>valid <00:19:26.809>data <00:19:27.126>and <00:19:27.444>whatnot.

437
00:19:27.675 --> 00:19:32.305
<00:19:27.675>Everything <00:19:27.815>is <00:19:27.955>in <00:19:28.095>here. <00:19:28.235>And <00:19:28.375>so <00:19:28.514>this <00:19:28.655>field <00:19:28.794>was <00:19:28.935>not <00:19:29.075>required.

438
00:19:32.645 --> 00:19:34.545
<00:19:32.645>So <00:19:32.845>if <00:19:33.045>I <00:19:33.245>go <00:19:33.445>back <00:19:33.645>to <00:19:33.845>my <00:19:34.045>application

439
00:19:35.405 --> 00:19:37.585
<00:19:35.405>and, <00:19:35.754>uh, <00:19:36.105>say <00:19:36.455>update <00:19:36.805>profile,

440
00:19:37.605 --> 00:19:39.385
<00:19:37.605>the <00:19:37.805>address <00:19:38.005>is <00:19:38.205>there <00:19:38.405>but <00:19:38.605>is <00:19:38.805>not <00:19:39.005>required.

441
00:19:39.925 --> 00:19:44.265
<00:19:39.925>But <00:19:40.080>if <00:19:40.236>I <00:19:40.391>would <00:19:40.547>then <00:19:40.702>request <00:19:40.858>this <00:19:41.013>extra <00:19:41.169>scope <00:19:41.325>here,

442
00:19:45.085 --> 00:19:49.665
<00:19:45.085>it, <00:19:45.260>um, <00:19:45.435>it'll <00:19:45.610>trigger <00:19:45.785>that <00:19:45.960>as <00:19:46.135>a <00:19:46.310>enforced <00:19:46.485>field

443
00:19:49.725 --> 00:19:52.425
<00:19:49.725>and <00:19:49.899>the <00:19:50.074>user <00:19:50.250>has <00:19:50.425>to <00:19:50.600>speci <00:19:50.774>specify <00:19:50.949>the <00:19:51.125>address

444
00:19:52.425 --> 00:19:55.105
<00:19:52.425>before <00:19:52.658>they're <00:19:52.891>allowed <00:19:53.125>to, <00:19:53.358>uh, <00:19:53.591>proceed <00:19:53.825>here.

445
00:19:55.205 --> 00:19:56.345
<00:19:55.205>So <00:19:55.376>what <00:19:55.547>you <00:19:55.718>can <00:19:55.889>do <00:19:56.060>with <00:19:56.231>that,

446
00:19:56.345 --> 00:19:58.065
<00:19:56.345>you <00:19:56.695>can <00:19:57.045>do <00:19:57.395>incremental <00:19:57.745>profiling.

447
00:19:58.485 --> 00:20:01.385
<00:19:58.485>So <00:19:58.718>only <00:19:58.951>the <00:19:59.185>data, <00:19:59.418>uh, <00:19:59.651>is <00:19:59.885>collected

448
00:20:01.925 --> 00:20:03.625
<00:20:01.925>or <00:20:02.125>the <00:20:02.325>data <00:20:02.524>is <00:20:02.725>collected <00:20:02.925>at <00:20:03.125>the <00:20:03.325>moment,

449
00:20:03.735 --> 00:20:05.105
<00:20:03.735>it's <00:20:03.981>really <00:20:04.228>needed <00:20:04.474>by <00:20:04.721>an <00:20:04.968>application.

450
00:20:05.105 --> 00:20:08.745
<00:20:05.105>And <00:20:05.280>an <00:20:05.455>application <00:20:05.630>can <00:20:05.805>decide <00:20:05.980>actually <00:20:06.155>when <00:20:06.330>it's <00:20:06.505>needed.

451
00:20:09.125 --> 00:20:12.105
<00:20:09.125>So <00:20:09.280>it <00:20:09.436>can <00:20:09.591>request <00:20:09.747>this <00:20:09.902>one <00:20:10.058>scope <00:20:10.213>that's <00:20:10.369>connected <00:20:10.525>to

452
00:20:12.105 --> 00:20:14.135
<00:20:12.105>that <00:20:12.805>data <00:20:13.505>sometime

453
00:20:14.155 --> 00:20:16.815
<00:20:14.155>during <00:20:14.330>the <00:20:14.504>user <00:20:14.680>journey <00:20:14.855>when <00:20:15.030>it's <00:20:15.205>really, <00:20:15.379>really <00:20:15.555>needed.

454
00:20:19.345 --> 00:20:22.635
<00:20:19.345>Yeah, <00:20:19.452>and <00:20:19.560>this <00:20:19.668>is <00:20:19.775>was <00:20:19.883>the <00:20:19.991>scope <00:20:20.098>that <00:20:20.206>I <00:20:20.314>added <00:20:20.421>to <00:20:20.529>the <00:20:20.637>URL, <00:20:20.745>um,

455
00:20:22.725 --> 00:20:25.835
<00:20:22.725>again, <00:20:22.899>this <00:20:23.074>authorization <00:20:23.250>endpoint <00:20:23.425>that <00:20:23.600>we, <00:20:23.774>that <00:20:23.949>is, <00:20:24.125>um,

456
00:20:25.985 --> 00:20:27.875
<00:20:25.985>like <00:20:26.218>continuing <00:20:26.451>our <00:20:26.685>journey <00:20:26.918>from <00:20:27.151>the <00:20:27.385>beginning

457
00:20:27.875 --> 00:20:29.795
<00:20:27.875>of <00:20:28.225>the <00:20:28.575>talk <00:20:28.925>already, <00:20:29.275>right?

458
00:20:30.215 --> 00:20:34.425
<00:20:30.215>And, <00:20:30.448>um, <00:20:30.681>There's <00:20:30.915>other <00:20:31.148>functionality, <00:20:31.381>for <00:20:31.615>example,

459
00:20:34.425 --> 00:20:37.585
<00:20:34.425>the <00:20:34.658>restricting <00:20:34.891>user <00:20:35.125>authentic <00:20:35.358>authorization <00:20:35.591>on <00:20:35.825>clients.

460
00:20:37.765 --> 00:20:40.745
<00:20:37.765>So <00:20:37.940>we <00:20:38.115>can <00:20:38.290>also <00:20:38.465>customize <00:20:38.640>all <00:20:38.815>the <00:20:38.990>login <00:20:39.165>flows.

461
00:20:40.765 --> 00:20:43.465
<00:20:40.765>So <00:20:40.965>there's <00:20:41.165>a <00:20:41.365>great <00:20:41.565>extension <00:20:41.765>for <00:20:41.965>that, <00:20:42.165>uh,

462
00:20:43.495 --> 00:20:46.065
<00:20:43.495>that <00:20:43.650>you <00:20:43.806>can <00:20:43.961>add <00:20:44.117>from <00:20:44.272>the <00:20:44.428>Kick <00:20:44.583>Talk <00:20:44.739>extension <00:20:44.895>page.

463
00:20:47.025 --> 00:20:51.045
<00:20:47.025>So <00:20:47.165>you, <00:20:47.305>and <00:20:47.445>when <00:20:47.585>a <00:20:47.725>user <00:20:47.865>registers, <00:20:48.005>oh, <00:20:48.145>sorry, <00:20:48.285>logs <00:20:48.425>in

464
00:20:51.045 --> 00:20:53.365
<00:20:51.045>and <00:20:51.220>tries <00:20:51.395>to <00:20:51.570>access <00:20:51.745>an <00:20:51.920>application, <00:20:52.095>they're <00:20:52.270>not <00:20:52.445>allowed

465
00:20:53.365 --> 00:20:56.645
<00:20:53.365>to <00:20:53.481>access, <00:20:53.598>you <00:20:53.715>can <00:20:53.831>stop <00:20:53.948>the <00:20:54.065>journey <00:20:54.181>of <00:20:54.298>the <00:20:54.415>user <00:20:54.531>in <00:20:54.648>key <00:20:54.765>log

466
00:20:56.865 --> 00:20:59.445
<00:20:56.865>and <00:20:57.005>you <00:20:57.145>not <00:20:57.285>need <00:20:57.425>to <00:20:57.565>configure <00:20:57.705>the <00:20:57.845>application <00:20:57.985>in <00:20:58.125>a <00:20:58.265>way

467
00:20:59.445 --> 00:21:00.805
<00:20:59.445>that <00:20:59.649>you <00:20:59.853>show <00:21:00.057>an <00:21:00.261>error <00:21:00.465>message <00:21:00.669>there.

468
00:21:00.945 --> 00:21:04.085
<00:21:00.945>It <00:21:01.072>can <00:21:01.199>be <00:21:01.326>done <00:21:01.454>very <00:21:01.581>early <00:21:01.708>in <00:21:01.835>key <00:21:01.963>log <00:21:02.090>already <00:21:02.217>during <00:21:02.345>the

469
00:21:04.725 --> 00:21:06.365
<00:21:04.725>au <00:21:05.191>uh, <00:21:05.658>authentication <00:21:06.125>flow.

470
00:21:06.905 --> 00:21:08.925
<00:21:06.905>So <00:21:07.138>we <00:21:07.371>are <00:21:07.605>adding <00:21:07.838>a <00:21:08.071>bit <00:21:08.305>authorization

471
00:21:08.925 --> 00:21:10.005
<00:21:08.925>to <00:21:09.249>the <00:21:09.573>authentication <00:21:09.897>flow.

472
00:21:10.005 --> 00:21:11.445
<00:21:10.005>It's <00:21:10.167>a <00:21:10.329>bit <00:21:10.491>of <00:21:10.653>a <00:21:10.815>mix, <00:21:10.977>but <00:21:11.139>it's <00:21:11.301>very,

473
00:21:11.445 --> 00:21:13.525
<00:21:11.445>very <00:21:11.725>useful <00:21:12.004>in <00:21:12.284>in <00:21:12.564>practical <00:21:12.845>applications.

474
00:21:15.625 --> 00:21:20.205
<00:21:15.625>So <00:21:15.765>we've <00:21:15.905>seen, <00:21:16.045>um, <00:21:16.185>yeah, <00:21:16.325>all <00:21:16.465>the <00:21:16.605>other <00:21:16.745>things <00:21:16.885>that <00:21:17.025>you

475
00:21:20.765 --> 00:21:22.725
<00:21:20.765>probably <00:21:20.965>also <00:21:21.165>need <00:21:21.365>when <00:21:21.565>you're <00:21:21.765>doing <00:21:21.965>with <00:21:22.165>users.

476
00:21:23.275 --> 00:21:25.205
<00:21:23.275>What <00:21:23.555>we've <00:21:23.835>not <00:21:24.115>seen <00:21:24.395>today <00:21:24.675>is

477
00:21:25.205 --> 00:21:27.205
<00:21:25.205>that <00:21:25.485>you <00:21:25.764>can <00:21:26.044>do <00:21:26.324>password <00:21:26.605>resets,

478
00:21:27.205 --> 00:21:30.565
<00:21:27.205>but <00:21:27.379>again, <00:21:27.554>all <00:21:27.730>of <00:21:27.905>that <00:21:28.080>is <00:21:28.254>part <00:21:28.429>of, <00:21:28.605>uh,

479
00:21:30.565 --> 00:21:31.725
<00:21:30.565>the <00:21:31.087>realm <00:21:31.609>configuration.

480
00:21:31.865 --> 00:21:35.805
<00:21:31.865>So <00:21:32.020>forgot <00:21:32.176>password <00:21:32.331>is <00:21:32.487>just <00:21:32.642>one <00:21:32.798>radio <00:21:32.953>button <00:21:33.109>switch <00:21:33.265>away.

481
00:21:36.315 --> 00:21:38.725
<00:21:36.315>Also <00:21:36.490>remember <00:21:36.665>me. <00:21:36.840>Um, <00:21:37.015>all <00:21:37.190>these <00:21:37.365>things <00:21:37.540>are <00:21:37.715>there.

482
00:21:40.195 --> 00:21:41.925
<00:21:40.195>This <00:21:40.428>is <00:21:40.661>all <00:21:40.895>here <00:21:41.128>in <00:21:41.361>key <00:21:41.595>log.

483
00:21:42.105 --> 00:21:44.885
<00:21:42.105>And <00:21:42.338>once <00:21:42.571>I <00:21:42.805>do <00:21:43.038>these <00:21:43.271>changes, <00:21:43.505>I,

484
00:21:46.445 --> 00:21:49.465
<00:21:46.445>The <00:21:46.620>login <00:21:46.794>screen <00:21:46.970>changes, <00:21:47.145>let's <00:21:47.320>do <00:21:47.495>a <00:21:47.669>re <00:21:47.845>authenticate

485
00:21:49.465 --> 00:21:52.305
<00:21:49.465>and <00:21:49.620>then <00:21:49.776>I, <00:21:49.931>for <00:21:50.087>example, <00:21:50.242>this <00:21:50.398>forgot <00:21:50.553>pair <00:21:50.709>would <00:21:50.865>appear

486
00:21:52.305 --> 00:21:54.945
<00:21:52.305>because <00:21:52.480>I <00:21:52.655>switched <00:21:52.830>this, <00:21:53.005>this <00:21:53.180>toggle <00:21:53.355>at <00:21:53.530>some <00:21:53.705>point.

487
00:21:56.885 --> 00:21:58.105
<00:21:56.885>So <00:21:57.434>standard <00:21:57.983>everywhere.

488
00:21:58.325 --> 00:22:00.265
<00:21:58.325>Um, <00:21:58.558>there's <00:21:58.791>a <00:21:59.025>lot <00:21:59.258>of, <00:21:59.491>uh, <00:21:59.725>authentication

489
00:22:00.265 --> 00:22:04.105
<00:22:00.265>and <00:22:00.440>user <00:22:00.615>management <00:22:00.790>functionality, <00:22:00.965>just, <00:22:01.140>uh, <00:22:01.315>a <00:22:01.490>redirect <00:22:01.665>way,

490
00:22:04.325 --> 00:22:05.385
<00:22:04.325>uh, <00:22:04.643>in <00:22:04.961>key <00:22:05.279>log.

491
00:22:06.165 --> 00:22:09.465
<00:22:06.165>And <00:22:06.281>even <00:22:06.398>if <00:22:06.514>you're <00:22:06.631>not <00:22:06.748>using <00:22:06.865>key <00:22:06.981>log, <00:22:07.098>I, <00:22:07.215>I <00:22:07.331>hope <00:22:07.448>you, <00:22:07.565>um,

492
00:22:09.955 --> 00:22:12.105
<00:22:09.955>found <00:22:10.188>some <00:22:10.421>of <00:22:10.655>the <00:22:10.888>ways <00:22:11.121>very <00:22:11.355>interesting

493
00:22:12.195 --> 00:22:13.425
<00:22:12.195>about <00:22:12.748>openly <00:22:13.302>connect.

494
00:22:14.085 --> 00:22:16.145
<00:22:14.085>Openly <00:22:14.285>Connect <00:22:14.485>is <00:22:14.685>usually <00:22:14.885>wrapped <00:22:15.085>in <00:22:15.285>a <00:22:15.485>library

495
00:22:16.145 --> 00:22:19.185
<00:22:16.145>that <00:22:16.300>you <00:22:16.456>apply <00:22:16.611>in <00:22:16.767>your <00:22:16.922>frameworks <00:22:17.078>in <00:22:17.233>your <00:22:17.389>day-to-day, <00:22:17.545>um,

496
00:22:19.335 --> 00:22:21.865
<00:22:19.335>developer <00:22:19.685>work, <00:22:20.035>but <00:22:20.385>then <00:22:20.735>understanding

497
00:22:21.975 --> 00:22:23.305
<00:22:21.975>what <00:22:22.374>parameters <00:22:22.773>are <00:22:23.172>there,

498
00:22:23.335 --> 00:22:25.665
<00:22:23.335>what <00:22:23.615>functionality <00:22:23.895>there <00:22:24.175>is <00:22:24.455>to <00:22:24.735>offer.

499
00:22:26.285 --> 00:22:29.305
<00:22:26.285>Uh, <00:22:26.425>I <00:22:26.565>hope <00:22:26.705>this <00:22:26.845>application <00:22:26.985>library <00:22:27.125>will <00:22:27.265>not <00:22:27.405>hide <00:22:27.545>it <00:22:27.685>from

500
00:22:29.305 --> 00:22:31.105
<00:22:29.305>you, <00:22:29.460>but <00:22:29.616>expose <00:22:29.771>it <00:22:29.927>in <00:22:30.082>a <00:22:30.238>safe <00:22:30.393>way <00:22:30.549>to <00:22:30.705>you.

501
00:22:34.085 --> 00:22:36.515
<00:22:34.085>Again, <00:22:34.285>um, <00:22:34.485>if <00:22:34.685>you're <00:22:34.885>interested <00:22:35.085>in <00:22:35.285>this <00:22:35.485>prompt,

502
00:22:36.585 --> 00:22:39.835
<00:22:36.585>they're <00:22:36.725>all <00:22:36.865>part <00:22:37.005>of <00:22:37.145>the <00:22:37.285>specs, <00:22:37.425>uh, <00:22:37.565>of <00:22:37.705>Open <00:22:37.845>Mighty <00:22:37.985>Connect.

503
00:22:40.055 --> 00:22:42.115
<00:22:40.055>Um, <00:22:40.230>and <00:22:40.405>also <00:22:40.580>this <00:22:40.755>case, <00:22:40.930>the <00:22:41.105>action <00:22:41.280>as <00:22:41.455>part

504
00:22:42.115 --> 00:22:43.675
<00:22:42.115>of <00:22:42.465>the <00:22:42.815>application <00:22:43.165>initiated <00:22:43.515>action,

505
00:22:43.675 --> 00:22:45.235
<00:22:43.675>which <00:22:44.024>is <00:22:44.375>key <00:22:44.725>log <00:22:45.075>specific.

506
00:22:45.975 --> 00:22:50.075
<00:22:45.975>And <00:22:46.130>these <00:22:46.286>scopes <00:22:46.441>and <00:22:46.597>user <00:22:46.752>profiles <00:22:46.908>are <00:22:47.063>very, <00:22:47.219>uh, <00:22:47.375>interesting

507
00:22:50.075 --> 00:22:52.275
<00:22:50.075>to <00:22:50.355>do <00:22:50.635>incremental <00:22:50.915>acquiring <00:22:51.195>of <00:22:51.475>data.

508
00:22:53.315 --> 00:22:55.215
<00:22:53.315>So <00:22:53.548>please <00:22:53.781>try <00:22:54.015>out <00:22:54.248>key <00:22:54.481>logs, <00:22:54.715>features

509
00:22:55.215 --> 00:22:58.055
<00:22:55.215>and <00:22:55.564>preview <00:22:55.915>features, <00:22:56.264>uh, <00:22:56.615>feedback.

510
00:22:58.275 --> 00:23:00.215
<00:22:58.275>So <00:22:58.508>we <00:22:58.741>have, <00:22:58.975>uh, <00:22:59.208>the <00:22:59.441>regular <00:22:59.675>builds.

511
00:23:00.215 --> 00:23:03.855
<00:23:00.215>We <00:23:00.342>have <00:23:00.469>a <00:23:00.596>it <00:23:00.724>build, <00:23:00.851>so <00:23:00.978>that <00:23:01.105>has <00:23:01.233>even <00:23:01.360>more <00:23:01.487>features, <00:23:01.615>um,

512
00:23:04.075 --> 00:23:06.855
<00:23:04.075>so <00:23:04.215>we <00:23:04.355>can <00:23:04.495>play <00:23:04.635>with <00:23:04.775>them <00:23:04.915>before <00:23:05.055>when <00:23:05.195>they <00:23:05.335>made <00:23:05.475>sure

513
00:23:07.395 --> 00:23:09.615
<00:23:07.395>and <00:23:07.628>even <00:23:07.861>raise <00:23:08.095>bugs <00:23:08.328>against <00:23:08.561>preview <00:23:08.795>features.

514
00:23:09.635 --> 00:23:11.095
<00:23:09.635>So, <00:23:09.897>um, <00:23:10.160>these <00:23:10.423>sparks <00:23:10.686>are <00:23:10.949>fixed

515
00:23:11.095 --> 00:23:12.215
<00:23:11.095>when <00:23:11.296>the <00:23:11.498>final <00:23:11.699>version <00:23:11.901>comes <00:23:12.102>out.

516
00:23:13.235 --> 00:23:15.135
<00:23:13.235>So <00:23:13.584>this <00:23:13.935>is <00:23:14.284>kick <00:23:14.635>log.

517
00:23:15.515 --> 00:23:19.455
<00:23:15.515>Um, <00:23:15.655>also <00:23:15.795>this <00:23:15.935>is <00:23:16.075>the <00:23:16.215>homepage, <00:23:16.355>um, <00:23:16.495>open <00:23:16.635>Myy <00:23:16.775>connect <00:23:16.915>core,

518
00:23:19.455 --> 00:23:20.655
<00:23:19.455>something <00:23:19.725>we <00:23:19.995>talked <00:23:20.264>about <00:23:20.534>earlier.

519
00:23:20.755 --> 00:23:21.895
<00:23:20.755>The <00:23:21.011>demo <00:23:21.268>code <00:23:21.524>is <00:23:21.781>online.

520
00:23:22.565 --> 00:23:25.375
<00:23:22.565>Also, <00:23:22.740>the <00:23:22.915>JavaScript <00:23:23.090>library <00:23:23.265>I <00:23:23.440>used <00:23:23.615>for <00:23:23.790>Open <00:23:23.965>Con,

521
00:23:25.685 --> 00:23:28.455
<00:23:25.685>open <00:23:25.840>Myy <00:23:25.996>Connect <00:23:26.151>was <00:23:26.307>the <00:23:26.462>pun <00:23:26.618>by <00:23:26.773>open <00:23:26.929>JavaScript <00:23:27.085>lines.

522
00:23:29.115 --> 00:23:31.215
<00:23:29.115>Slides <00:23:29.348>are <00:23:29.581>online, <00:23:29.815>and <00:23:30.048>if <00:23:30.281>you <00:23:30.515>want,

523
00:23:31.595 --> 00:23:34.175
<00:23:31.595>and <00:23:31.750>I <00:23:31.906>would <00:23:32.061>love <00:23:32.217>to <00:23:32.372>see <00:23:32.528>you <00:23:32.683>all <00:23:32.839>in <00:23:32.995>Amsterdam

524
00:23:34.195 --> 00:23:35.415
<00:23:34.195>on <00:23:34.469>the <00:23:34.744>28th <00:23:35.018>of <00:23:35.293>August.

525
00:23:35.545 --> 00:23:36.295
<00:23:35.545>Thank <00:23:35.770>you <00:23:35.995>very <00:23:36.220>much.