Skip to content

Commit b066c8e

Browse files
docs: update digital identity claiming tutorial and add related images
- Revise the entire tutorial for claiming digital identities to enhance clarity and user guidance. - Add images to demonstrate key steps in the GitHub authentication process and illustrate the concept of gestalt graphs. - Include detailed explanations of permissions used during the GitHub authentication. - Improve the verification steps to ensure users can confidently verify their identity claims. - Expand the discussion on gestalt graphs, including their operational dynamics and the benefits of federated identities.
1 parent bc30ca4 commit b066c8e

File tree

5 files changed

+97
-39
lines changed

5 files changed

+97
-39
lines changed
Lines changed: 85 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,146 @@
11
# Claiming Digital Identities
22

3-
In Polykey, claiming a digital identity is a critical step that allows users to establish their identity across various platforms and link these identities to their cryptographic keys. This process involves authenticating with external services, such as GitHub, and claiming ownership of an identity by posting a cryptographic link to a publicly verifiable location.
3+
In Polykey, claiming a digital identity is a crucial step that allows users to establish their identity across various platforms and link these identities to their cryptographic keys. This process involves authenticating with external services, such as GitHub, and claiming ownership of an identity by posting a cryptographic link to a publicly verifiable location.
44

5-
This tutorial will guide you through the steps to authenticate with GitHub and claim an identity using Polykey. This process enhances security and streamlines identity verification, making it easier for other users to discover and trust your nodes.
5+
This tutorial will guide you through the steps to authenticate with GitHub and claim an identity using Polykey, enhancing security and streamlining identity verification, making it easier for other users to discover and trust your nodes.
66

77
## Step 1: Authenticate with GitHub
88

9-
Authentication with a service provider like GitHub is the first step towards claiming your digital identity. It allows Polykey to access necessary information to claim your identity and to interact on your behalf.
9+
Authentication with a service provider like GitHub is the first step toward claiming your digital identity. This process allows Polykey to interact with GitHub on your behalf and access necessary information to claim your identity.
10+
11+
![GitHub Authentication](/images/github-authentication.png)
12+
13+
_This image provides a demo example of the GitHub authentication process._
1014

1115
### Command Usage
1216

17+
:::info
18+
1319
```bash
1420
polykey identities authenticate <providerId>
1521
```
1622

17-
- `<providerId>`: The identifier for the digital identity provider, such as "github".
23+
`<providerId>`: The identifier for the digital identity provider, such as "github".
24+
:::
1825

19-
#### Example
26+
:::note
27+
Since Polykey currently only supports GitHub as an IdP, this is the command that you will use to start the authentication process.
2028

2129
```bash
2230
polykey identities authenticate github
2331
```
2432

25-
This command initiates the authentication process with GitHub. Follow the prompts in your terminal to complete the authentication, which may involve logging into your GitHub account and authorizing Polykey to access your GitHub information. The code prompted by the browser is outputed on your terminal as the user Code.
33+
:::
34+
35+
This command begins the authentication process with GitHub. Follow the prompts in your terminal to complete the authentication, which may involve logging into your GitHub account and authorizing Polykey to access your GitHub information via a popup window.
36+
37+
:::tip
38+
The code prompted by the browser will be displayed in your terminal as the user code.
39+
:::
40+
41+
### Technical Use of Permissions
42+
43+
During the authentication process, here's what Polykey requests access to and why:
44+
45+
- **Create Gists:** Polykey creates a gist under your GitHub account containing a cryptographic link. This link is a verifiable method that proves the ownership of your GitHub identity to anyone checking your Polykey gestalt graph.
2646

27-
<!-- paste image from demo -->
47+
- **Read All User Profile Data:** This enables Polykey to access your profile details, including your username, followers, and public repository data. This information is used to ensure that the identity you claim corresponds accurately to your public digital footprint, enhancing trust and verification.
2848

29-
<!-- what info do they collect, what is the user authorizing? -->
49+
- **Access User Email Addresses (read-only):** By accessing the email addresses associated with your account, Polykey can better manage notifications related to your secrets operations.
50+
51+
#### Security and Privacy Considerations
52+
53+
Polykey is committed to maintaining the highest standards of security and privacy. All data accessed is used strictly for the operations mentioned and is not shared with any third parties. Our privacy practices are designed to protect your information and ensure its confidentiality. For more details, please refer to our [privacy policy](https://polykey.com/privacy-policy).
3054

3155
## Step 2: Claim Your Identity
3256

3357
After successfully authenticating with GitHub, you can claim your identity. This involves posting a cryptographic link to a publicly verifiable location, such as a GitHub gist. This link serves as proof of ownership of the identity.
3458

59+
<img src="/images/cryptolink.png" alt="Cryptolink" style={{ width: '70%', height: 'auto' }} />
60+
3561
### Command Usage
3662

37-
```bash
38-
polykey identities claim <providerIdentityId>
39-
```
63+
_This image provides a demo example of the cryptographic link that is generated._
64+
65+
:::info
4066

4167
- `<providerIdentityId>`: The specific identity identifier from the provider you authenticated with, which you will claim.
4268

43-
#### Example
69+
- `polykey identities claim` argument for `<providerIdentityID>` = `github.com`+ `:` + `GH username`
70+
71+
:::
72+
73+
Replace `my-gh-username` with your actual GitHub username. This command claims your GitHub identity by posting a cryptographic link to a gist under your GitHub profile.
4474

4575
```bash
46-
polykey identities claim my-github-username
76+
polykey identities claim github.com:my-gh-username
4777
```
4878

49-
Replace my-github-username with your actual GitHub username. This command claims your GitHub identity by posting a cryptographic link to a gist under your GitHub profile.
79+
## Step 3: Verify Your Claim
5080

51-
<!-- post image from demo -->
81+
After claiming your identity, Polykey provides a link to a GitHub gist in your terminal. This is your primary method to verify that your identity has been correctly claimed.
5282

53-
## Step 3: Verify Your Claim
83+
![Claim Id](/images/claim-id.png)
5484

55-
Verification ensures that your identity claim is publicly visible and correctly linked to your Polykey identity.
85+
_This image shows a demo example of the link to the gist that was created when claiming the identity which forms a gestalt._
5686

57-
### Via GitHub
87+
### Primary Verification Method
88+
89+
Navigate directly to the provided gist link:
5890

5991
```bash
60-
gist.github.com/my-github-username
92+
https://gist.github.com/my-github-username
6193
```
6294

63-
The gist should contain the cryptographic link that connects your Polykey identity to your GitHub profile.
95+
This gist contains the cryptographic link confirming that your Polykey identity is correctly linked to your GitHub profile. Viewing this gist ensures your claim was successful and publicly verifiable.
6496

65-
### Via Polykey
97+
### Additional Verification Options
6698

67-
Verify the gestalt graph creation within Polykey:
99+
While navigating to the gist is sufficient for most users, Polykey also offers ways to internally verify the identity claim:
68100

69-
#### Command Usage
101+
- **Polykey Gestalt List:** You can list all gestalts, including your own, to see the internal record of your claim.
70102

71103
```bash
72104
polykey identities list
73105
```
74106

75-
This lists all gestalts known to your node, including your own.
107+
This command shows details about your claimed identities and connected nodes, providing an extra layer of verification.
108+
109+
## Understanding Gestalt Graphs
76110

77-
#### Example Output
111+
In Polykey, claiming identities creates a **gestalt graph**—a dynamic, interconnected network of your digital identities across various platforms. This graph facilitates the federated identity model, allowing for more robust and streamlined identity verification and management.
78112

79-
```bash
80-
gestalt
81-
actionsList
82-
identities
83-
github.com:CryptoTotalWar
84-
nodeIds
85-
vgijtpv0h8m1eajeir77g73muq88n5kj0413t6fjdqsv9kt8dq4pg
86-
```
113+
![gestalts](/images/gestalts.png)
87114

88-
Seeing your node ID and GitHub username confirms the successful creation of your cryptographic link.
115+
_This image shows a federated gestalt graph example concept map._
89116

90-
## Understanding Gestalt Graphs
117+
### How Gestalt Graphs Work
118+
119+
Each node within the graph represents an identity or a claim, and edges represent trust relationships or cryptographic verifications. As you claim more identities or add nodes, the graph expands, enhancing its utility by making identity verification straightforward and trust relationships more transparent.
120+
121+
### Claiming Multiple Identities
122+
123+
Polykey enables you to claim multiple identities, providing flexibility in how you manage your digital presence. For example, you can:
124+
125+
- Claim a separate GitHub identity for each node you control.
126+
- Link one node to multiple identity providers, thus broadening your digital footprint and verification avenues.
127+
128+
### Future Plans and IdP Support
129+
130+
Currently, Polykey supports GitHub as an identity provider (IdP). However, we are actively working to expand our support to include a wider range of major IdPs. This expansion will enhance Polykey's accessibility and versatility, accommodating a broader user base. Additionally, organizations will have the option to maintain their own IdPs, allowing for even greater customization and control over identity management within Polykey.
131+
132+
### Benefits of Federated Identities
133+
134+
Using a federated identity model through gestalt graphs offers several benefits:
91135

92-
Claiming identities forms a gestalt graph, a network of your federated digital identities. As you claim more identities or nodes, this graph grows, making it easier for others to discover and verify your identity.
136+
- **Enhanced Security**: By linking various identity proofs, it strengthens the authenticity and credibility of your digital identity.
137+
- **Simplified Management**: Manage multiple identities through a single interface, reducing complexity and improving user experience.
138+
- **Interoperability:** Easily interact across different platforms and services using a unified identity framework.
93139

94-
It's possible to claim multiple identities. For instance, you can authenticate and claim a GitHub identity for each node you control.
140+
Understanding and utilizing gestalt graphs in Polykey not only secures your operations but also significantly simplifies the process of digital identity management.
95141

96142
## Conclusion
97143

98-
Claiming your digital identity in Polykey links your cryptographic operations to external accounts like GitHub, securing your operations and facilitating identity verification by others. This guide has detailed the essential steps to authenticate, claim, and verify your identity in Polykey.
144+
Claiming your digital identity in Polykey links your cryptographic operations to external accounts like GitHub, securing your operations and facilitating identity verification by others. This guide details the essential steps for authenticating, claiming, and verifying your identity in Polykey.
99145

100-
In the next section, we will explore additional operations related to digital identity management in Polykey, including trust management and permissions handling.
146+
In the next section, we will explore additional operations related to digital identity management in Polykey, including discovery of other users, trust management and permissions handling.

images/claim-id.png

Lines changed: 3 additions & 0 deletions
Loading

images/cryptolink.png

Lines changed: 3 additions & 0 deletions
Loading

images/gestalts.png

Lines changed: 3 additions & 0 deletions
Loading

images/github-authentication.png

Lines changed: 3 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)