aboutsummaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
Diffstat (limited to 'template')
-rw-r--r--template/applications.html.j22
-rw-r--r--template/install.html.j24
-rw-r--r--template/reclaim/faq.html.j226
-rw-r--r--template/reclaim/idps.html.j230
-rw-r--r--template/reclaim/index.html.j2102
-rw-r--r--template/reclaim/motivation.html.j234
-rw-r--r--template/reclaim/tech.html.j2115
-rw-r--r--template/reclaim/users.html.j240
-rw-r--r--template/reclaim/websites.html.j245
9 files changed, 394 insertions, 4 deletions
diff --git a/template/applications.html.j2 b/template/applications.html.j2
index 1b47258a..f1f0e30f 100644
--- a/template/applications.html.j2
+++ b/template/applications.html.j2
@@ -37,8 +37,8 @@
37 <section> 37 <section>
38 <h3>{{ _("Self-sovereign, decentralized identity provider") }}</h3> 38 <h3>{{ _("Self-sovereign, decentralized identity provider") }}</h3>
39 <p> 39 <p>
40 <a href="{{ url_localized('reclaim/index.html') }}">re:claimID</a>
40 {% trans %} 41 {% trans %}
41 <a href="https://reclaim.gnunet.org/">re:claimID</a>
42 is a decentralized Identity Provider (IdP) service built in top of the 42 is a decentralized Identity Provider (IdP) service built in top of the
43 GNU Name System. It allows users to securely share personal information 43 GNU Name System. It allows users to securely share personal information
44 with websites using standardized protocols (OpenID Connect). 44 with websites using standardized protocols (OpenID Connect).
diff --git a/template/install.html.j2 b/template/install.html.j2
index 87f80ead..1c63b0c0 100644
--- a/template/install.html.j2
+++ b/template/install.html.j2
@@ -7,13 +7,11 @@
7 </header> 7 </header>
8 8
9 <div class="row container justify-content-center"> 9 <div class="row container justify-content-center">
10 <div class="alert" style="background-color: #419edb;"> 10 <div class="alert alert-info">
11 <div class="alert-content">
12{% trans %} 11{% trans %}
13 Notice: GNUnet is still undergoing major development. It is 12 Notice: GNUnet is still undergoing major development. It is
14 largely <i>not yet ready</i> for usage beyond developers. 13 largely <i>not yet ready</i> for usage beyond developers.
15{% endtrans %} 14{% endtrans %}
16 </div>
17 </div> 15 </div>
18{% trans %} 16{% trans %}
19<p>Please be aware that this project is still in an early alpha 17<p>Please be aware that this project is still in an early alpha
diff --git a/template/reclaim/faq.html.j2 b/template/reclaim/faq.html.j2
new file mode 100644
index 00000000..b49b8f6c
--- /dev/null
+++ b/template/reclaim/faq.html.j2
@@ -0,0 +1,26 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / FAQ
5</div>
6<h2 class="text-center">{{ _("Frequently asked questions") }}</h2>
7<br/>
8<div class="container">
9 <ul class="fa-ul">
10 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How is re:claimID different from</b> <i>&lt;insert other identity provider service here&gt; ?</i></li>
11 <li><i class="fa-li fas fa-comment"></i> Unlike most other identity provider services, re:claimID is not operated by a single service provider or even a federated consortium of service providers. Instead, it is a fully decentralised service operated implicitly by its users. Consequently, large-scale data monetisation, mass-surveillance and other (ab)use of personal data is inherently mitigated.</li>
12 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How much does re:claimID cost?</b></li>
13 <li><i class="fa-li fas fa-comment"></i> re:claimID is Free Software. We argue that in order for an identity system to be a credible solution for self-sovereign citizens to exercise their right to digital self determination, open and free software as well as services are indispensible.</li>
14 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How does re:claimID work?</b></li>
15 <li><i class="fa-li fas fa-comment"></i> re:claimID uses the GNU Name System as identity and attribute directory service. In order to allow the user to enforce access control decisions, we use a cryptographic access control layer. However, the user is not required to manage any cryptographic keys or manage zones in a namespace. This is done under the hood by re:claimID.</li>
16 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How does a website know the attribute data share via re:claimID is correct?</b></li>
17 <li><i class="fa-li fas fa-comment"></i> Short answer: It doesn't.
18 Long answer: Identities are initially self-asserted by the user. re:claimID could, however, also be used to share third party attested attributes (e.g. X.509 certificates). Further, have integrated <a href="https://github.com/Fraunhofer-AISEC/libpabc">Privacy-ABCs</a> for <a href="{{ url_localized('news/2021-05-DISSENS.html') }}">this use case</a>.</li>
19 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>Who is behind re:claimID?</b></li>
20 <li><i class="fa-li fas fa-comment"></i> re:claimID was initially developed at <a href="https://aisec.fraunhofer.de">Fraunhofer AISEC</a> and is part of GNUnet.</li>
21 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>I found a bug!</b></li>
22 <li><i class="fa-li fas fa-comment"></i> We aim to continuously develop and improve re:claimID. Help us by <a href="https://bugs.gnunet.org">reporting any issues you encounter</a>.</li>
23 </ul>
24
25</div>
26{% endblock body_content %}
diff --git a/template/reclaim/idps.html.j2 b/template/reclaim/idps.html.j2
new file mode 100644
index 00000000..5101b0d7
--- /dev/null
+++ b/template/reclaim/idps.html.j2
@@ -0,0 +1,30 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / IdPs
5</div>
6<h2 class="text-center">{{ _("For IdPs") }}</h2>
7<br/>
8<div class="container">
9 <h2><b>Step 1:</b> OpenID Service</h2>
10 As an identity provider and credential issuer, you need to setup an OpenID Connect server. There are many servers out there. For a list of servers, check out the <a href="https://openid.net/developers/certified/">OpenID website</a>.
11 One important caveat is that the server should allow you to issue user information inside the signed "ID Token".
12 The configuration regarding what user information goes into the token is of course completely under your discretion.
13
14 <h2 class="mt-5"><b>Step 2:</b> Configuring the reclaimID client</h2>
15 reclaimID uses special client values which must be registered at the OpenID server. The values are:
16 <ul>
17 <li><b>Client ID</b>: reclaimid</li>
18 <li><b>Client secret</b>: none (public client)</li>
19 <li><b>Redirect URI</b>: https://ui.reclaim</li>
20 <li><b>Grant type</b>: Authorization code</li>
21 <li><b>PKCE</b>: enabled (Optional but highly recommended)</li>
22 </ul>
23
24 <h2 class="mt-5"><b>Step 3:</b> Configuring a webfinger</h2>
25 You must support the webfinger-based <a href="https://openid.net/specs/openid-connect-discovery-1_0.html">OpenID Connect service discovery</a>.
26 Whenever the user configures an email address for an identity, reclaimID will try to discover the issuing identity provider through the OIDC Discovery protocol. This includes a <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#EmailSyntax">request to the authority part of the email address</a>.
27
28 The response should point reclaimID to the actual OpenID Connect service <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata">serving the issuer medatata</a>. reclaimID will try to request all scopes which are listed in the metadata, but does not expect all of them to be granted.
29</div>
30{% endblock body_content %}
diff --git a/template/reclaim/index.html.j2 b/template/reclaim/index.html.j2
new file mode 100644
index 00000000..c52b9ad6
--- /dev/null
+++ b/template/reclaim/index.html.j2
@@ -0,0 +1,102 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="container">
4 <div class="row">
5 <div class="container text-center">
6 <img style="width:50%" src="{{ url_static('images/reclaim_logo.png') }}" alt="reclaimID" />
7 <br/>
8 <p class="mt-4">{{ _("Self-sovereign, Decentralised Identity Management and Personal Data Sharing") }}</p>
9 </div>
10 </div>
11</div>
12<div class="container-fluid greybox">
13 <div class="container">
14 <div class="row">
15 <div class="col-lg-2"></div>
16 <div class="col-lg-6">
17 <section>
18 <h2>{{ _("Self-sovereign") }}</h2>
19 <p>
20 {% trans %}
21 You manage your identities and attributes locally on your computer. No need to trust a third party service with your data.
22 {% endtrans %}
23 </p>
24 </section>
25 </div>
26 <div class="col-lg-3 homepageicon">
27 <span class="fas fa-fist-raised"></span>
28 </div>
29 </div>
30 </div>
31</div>
32<div class="container-fluid">
33 <div class="container">
34 <div class="row">
35 <div class="col-lg-2 homepageicon">
36 <span class="fas fa-project-diagram"></span>
37 </div>
38 <div class="col-lg-6">
39 <section>
40 <h2>{{ _("Decentralized") }}</h2>
41 <p>
42 {% trans %}
43 You can share your identity attributes securely over a decentralized name system. This allows your friends to access your shared data without the need of a trusted third party.
44 {% endtrans %}
45 </p>
46 </section>
47 </div>
48 </div>
49 </div>
50</div>
51
52<div class="container-fluid greybox">
53 <div class="container">
54 <div class="row">
55 <div class="col-lg-2"></div>
56 <div class="col-lg-6">
57 <section>
58 <h2>{{ _("Standard-compliant") }}</h2>
59 <p>
60 {% trans %}
61 You can use OpenID Connect to integrate reclaim in your web sites.
62 {% endtrans %}
63 </p>
64 </section>
65 </div>
66 <div class="col-lg-3 homepageicon">
67 <span class="fab fa-openid"></span>
68 </div>
69 </div>
70 </div>
71</div>
72<hr/>
73<div class="container-fluid">
74 <div class="container">
75 <div class="row">
76 <div class="col-md-4 mt-1">
77 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/tech.html') }}"><i class="fas fa-cubes"></i><br/>{{ _("Technology") }}</a>
78 </div>
79 <div class="col-md-4 mt-1">
80 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/motivation.html') }}"><i class="fas fa-fire"></i><br/>{{ _("Motivation") }}</a>
81 </div>
82 <div class="col-md-4 mt-1">
83 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/faq.html') }}"><i class="fas fa-question"></i><br/>{{ _("FAQ") }}</a>
84 </div>
85
86 </div>
87 <div class="row">
88 <div class="col-md-4 mt-1">
89 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/users.html') }}"><i class="fas fa-user"></i><br/>{{ _("For users") }}</a>
90 </div>
91 <div class="col-md-4 mt-1">
92 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/websites.html') }}"><i class="fas fa-globe"></i><br/>{{ _("For websites") }}</a>
93 </div>
94 <div class="col-md-4 mt-1">
95 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/idps.html') }}"><i class="fas fa-users"></i><br/>{{ _("For IdPs") }}</a>
96 </div>
97 </div>
98 </div>
99</div>
100
101
102{% endblock body_content %}
diff --git a/template/reclaim/motivation.html.j2 b/template/reclaim/motivation.html.j2
new file mode 100644
index 00000000..973fbddf
--- /dev/null
+++ b/template/reclaim/motivation.html.j2
@@ -0,0 +1,34 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Motivation
5</div>
6<h2 class="text-center">{{ _("Motivation") }}</h2>
7<br/>
8<div class="container">
9<p>
10Today, users are often required to share personal data, like email addresses, to use services on the web. As part of normal service operation, such as notifications or billing, services require access to -- ideally fresh and correct -- user data.
11Sharing attributes in the Web today is often done via centralized service providers to reduce data redundancy and to give services access to current, up-to-date information even if the user is currently offline.
12Abuse of this power is theoretically limited by local laws and regulations.
13But, the past has shown that even well-meaning identity providers struggle to keep user data safe as they become major targets for hackers and nation state actors while striving for monetizing anonymized statistics from these data.
14We advocate for a new, decentralized way for users to manage their identities for the following reasons:
15</p>
16<ul class="fa-ul">
17 <li><i class="fa-li fas fa-caret-right"></i> The current state of omniscient identity providers is a significant threat to the users' privacy.</li>
18 <li><i class="fa-li fas fa-caret-right"></i> Users must completely trust the service provider with respect to protecting the integrity and confidentiality of their identity in their interest.</li>
19 <li><i class="fa-li fas fa-caret-right"></i> The service provider itself is facing substantial liability risks given the responsibility of securely managing potentially sensitive personal data of millions of users.</li>
20</ul>
21
22<p>re:claimID is built as a service on top of the peer-to-peer framework <a href="https://gnunet.org">GNUnet</a>.<br/>
23It emerged from research conducted by the research group "Secure
24Applications and Services" at the <a href="https://www.aisec.fraunhofer.de/de/fields-of-expertise/projekte/reclaim.html">Fraunhofer AISEC</a> research institute.<br/>
25A scientific, peer-reviewed paper on the theoretical foundations of re:claimID
26was published at <a href="https://ieeexplore.ieee.org/document/8456003">TrustCom 2018</a>
27(<a href="https://arxiv.org/abs/1805.06253v1">Arxiv</a>).<br/> re:claimID is
28primarily developed in the
29<a href="https://git.gnunet.org/gnunet.git/tree/src/reclaim">GNUnet source tree</a>.
30Accompanying tools and sources can be found in the
31<a href="https://gitlab.com/reclaimid">Gitlab project</a>.
32</p>
33</div>
34{% endblock body_content %}
diff --git a/template/reclaim/tech.html.j2 b/template/reclaim/tech.html.j2
new file mode 100644
index 00000000..41894e91
--- /dev/null
+++ b/template/reclaim/tech.html.j2
@@ -0,0 +1,115 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Technology
5</div>
6<h2 class="text-center">{{ _("Overview") }}</h2>
7<div style="text-align:center">
8 <img style="width:75%" src="{{ url_static('images/reclaim/reclaim_eq.png') }}"/>
9</div>
10<br/>
11<div class="container">
12 <div class="row">
13 <div class="col-lg-6">
14 <h3>
15 {{ _("Decentralised identity directory") }}
16 </h3>
17 <p>
18 {% trans %}
19 The decentralised GNU Name System (GNS) gives users full and exclusive authority over their attributes by sharing them over user-owned namespaces.
20 {% endtrans %}
21 </p>
22 </div>
23 <div class="col-lg-6">
24 <div>
25 <h3>
26 {{ _("Cryptographic access control") }}
27 </h3>
28 </div>
29 <p>
30 {% trans %}
31Users regularly publish fresh, up-to-date attributes which can be retrieved and
32read only by authorized relying parties parties without direct user interaction -- even if the user is offline!
33 {% endtrans %}
34 </p>
35 </div>
36 </div>
37</div>
38<hr/>
39<h2 class="text-center">{{ _("Principles") }}</h2>
40<div class="container-fluid greybox">
41 <div class="container">
42 <div class="row">
43 <div class="col-lg-1"></div>
44 <div class="col-lg-6">
45 <section>
46 <h2>{{ _("Identity and attribute management") }}</h2>
47 <p>
48 {% trans %}
49 Users regularly publish fresh, up-to-date attributes which can be retrieved by requesting parties without direct user interaction -- even if the user is offline!
50 Access to attributes is controlled through an ecryption based access
51 control layer.
52 {% endtrans %}
53 </p>
54 </section>
55 </div>
56 <div class="col-lg-5 homepageicon">
57 <a href="{{ url_static('images/reclaim/Reclaim-2.png') }}"><img style="width:100%" src="{{ url_static('images/reclaim/Reclaim-2.png') }}"/></a>
58 </div>
59 </div>
60 </div>
61</div>
62<div class="container-fluid">
63 <div class="container">
64 <div class="row">
65 <div class="col-lg-5 homepageicon">
66 <a href="{{ url_static('images/reclaim/Reclaim-3.png') }}"><img style="width:100%" src="{{ url_static('images/reclaim/Reclaim-3.png') }}"/></a>
67
68 </div>
69 <div class="col-lg-6">
70 <section>
71 <h2>{{ _("Authorization") }}</h2>
72 <p>
73 {% trans %}
74 To access attributes, requesting parties request authorization from the
75 user thrugh the use of OpenID Connect.
76 If access is granted, the relying party is given the necessary decryption
77 key material.
78 The user may at any time revoke this access or modify the authorization decision.
79 {% endtrans %}
80 </p>
81 </section>
82 </div>
83 </div>
84</div>
85
86<div class="container-fluid greybox">
87 <div class="container">
88 <div class="row">
89 <div class="col-lg-1"></div>
90 <div class="col-lg-6">
91 <section>
92 <h2>{{ _("Attribute retrieval") }}</h2>
93 <p>
94 {% trans %}
95 Relying parties retrieve encrypted identity data from the decentralised
96 directory.
97 It is able to decrypt all those attributes that the user has authorized
98 it to access using the respective key.
99 {% endtrans %}
100 </p>
101 </section>
102 </div>
103 <div class="col-lg-5 homepageicon">
104 <a href="{{ url_static('images/reclaim/Reclaim-4.png') }}"><img style="width:100%" src="{{ url_static('images/reclaim/Reclaim-4.png') }}"/></a>
105 </div>
106 </div>
107 </div>
108</div>
109<hr/>
110<h2 style="text-align:center" class="mt-2">Videos and Talks</h2>
111<ul class="fa-ul">
112 <li><i class="fa-li fas fa-caret-right"></i> <a href="https://youtu.be/PlSX-o36Wus?t=5371">IETF Meeting #104; Privacy Enhancements and Assessments Research Group - March 2019</a> (<a href="https://git.gnunet.org/presentations.git/plain/IETF104/slides-104-pearg-reclaim-00.pdf">Slides</a>)</li>
113 <li><i class="fa-li fas fa-caret-right"></i> <a href="https://media.ccc.de/v/ds19-10383-re_claimid">Datenspuren 2019 - September 2019 (German)</a> (<a href="https://git.gnunet.org/presentations.git/plain/datenspuren2019/datenspuren2019.pdf">Slides</a>, English)</li>
114</ul>
115{% endblock body_content %}
diff --git a/template/reclaim/users.html.j2 b/template/reclaim/users.html.j2
new file mode 100644
index 00000000..8b78dc11
--- /dev/null
+++ b/template/reclaim/users.html.j2
@@ -0,0 +1,40 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Users
5</div>
6<h2 class="text-center">{{ _("For users") }}</h2>
7<br/>
8<div class="container">
9 <h2><b>Step 1:</b> Installation</h2>
10 <p>
11 Please use the <a href="{{ url_localized('install.html') }}">GNUnet installation guides</a>.
12 </p>
13 <h2 class="mt-5"><b>Step 2:</b> Browser plugin</h2>
14
15 <p>You also need to install a browser plugin:</p>
16 <div class="centering">
17 <a class="btn btn-primary" target="_blank" rel="noopener noreferrer"
18 href="https://addons.mozilla.org/addon/reclaimid/"><i class="fab fa-firefox"></i> Mozilla Firefox</a>
19 <a class="btn btn-primary" target="_blank" rel="noopener noreferrer"
20 href="https://chrome.google.com/webstore/detail/reclaimid/jiogompmdejcnacmlnjhnaicgkefcfll"><i class="fab fa-chrome"></i> Chrome / Chromium</a>
21 </div>
22 <br/>
23 <h2 class="mt-5"><b>Step 3:</b> Creating your first identity</h2>
24 <p>Almost there. Now try adding a new identity at <a href="https://ui.reclaim">your local re:claimID instance</a> and add some attributes to it.
25 <br/>
26
27 <h2 class="mt-5">Websites supporting re:claimID</h2>
28 <p>To test a login with one of your re:claimID identities, you can go to one of the websites supporting it:</p>
29 <ul>
30 <li><a href="https://demo.reclaim-identity.io">Our demo messaging board</a> (<a href="https://gitlab.com/reclaimid/demo">Source</a>)</li>
31 <li><a href="https://eusec.clouditor.io">Clouditor EUSEC project page</a></li>
32 </ul>
33
34
35 <h2 class="mt-5">Troubleshooting</h2>
36 In case you encounter any problems, please check for <a href="https://bugs.gnunet.org">known issues and report bugs to help us improve re:claimID!</a>
37
38
39</div>
40{% endblock body_content %}
diff --git a/template/reclaim/websites.html.j2 b/template/reclaim/websites.html.j2
new file mode 100644
index 00000000..f4e7fec9
--- /dev/null
+++ b/template/reclaim/websites.html.j2
@@ -0,0 +1,45 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Websites
5</div>
6<h2 class="text-center">{{ _("For websites") }}</h2>
7<div class="container">
8 <h2><b>Step 1:</b> Installation</h2>
9 <p>
10 Please use the <a href="{{ url_localized('install.html') }}">GNUnet installation guides</a>.
11 </p>
12 <h2 class="mt-5"><b>Step 2:</b> Registering an OpenID Connect client</h2>
13 <p>The easiest way to manage OpenID Connect client is through our CLI tool:</p>
14 <code class="block">$ gem install reclaim-oidc</code>
15 <p>To register an OpenID Connect client, execute:</p>
16 <code class="block">$ reclaim-oidc --add --client-name myclient --redirect-uri https://mywebsite.com/oidc_cb --description "My Client"</code>
17 <p>You can list all registered clients and your local OpenID Connect metadata required to initiate an authorization code flow by executing:</p>
18 <code class="block">$ reclaim-oidc --list </code>
19 <p>The response will look like this</p>
20 <code class="block">OpenID Connect Provider Information:<br/>
21 ------------------------------------<br/>
22 Authorize Endpoint: http://localhost:7776/openid/authorize<br/>
23 Token Endpoint: http://localhost:7776/openid/token<br/>
24 JSON-Web-Token Algorithm: HS512<br/>
25 JSON-Web-Token key: secret<br/>
26 Example Authorization Redirect:<br/>
27 https://api.reclaim/openid/authorize?client_id=&lt;client_id&gt;&amp;redirect_uri=&lt;redirect_uri&gt;&amp;response_type=code&amp;scope=email%20full_name&amp;nonce=1234<br/>
28 <br/>
29 Registered Clients:<br/>
30 -------------------<br/>
31 name: myclient<br/>
32 client_id: &lt;client_id&gt;<br/>
33 client_secret: &lt;client_secret&gt;<br/>
34 description: My Client<br/>
35 redirect_uri: https://mywebsite.com/oidc_cb<br/>
36 ...
37 </code>
38 <div class="alert alert-info"><b>NOTE</b>: The client secrets and JWT token signing keys can be configured. However, due to the fact that re:claimID endpoint are running on your local machine, they are not critical.</div>
39
40 <h2 class="mt-5"><b>Step 3:</b> Website integration</h2>
41 <p>You can use the information above to integrate re:claimID as a generic <a href="https://openid.net/specs/openid-connect-core-1_0.html">OpenID Connect Identity Provider</a> into the web application of your choice. The integration steps for this part depend on the application you use. Hence, please refer to your respective documentation or the OpenID Connect specifications.
42 </p>
43 <p>The sources of our <a href="https://demo.reclaim-identity.io">demo website</a> can be found in our <a href="https://gitlab.com/reclaimid/demo">gitlab project</a>.</p>
44</div>
45{% endblock body_content %}