|
1 | 1 | # Claiming Digital Identities |
2 | 2 |
|
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. |
4 | 4 |
|
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. |
6 | 6 |
|
7 | 7 | ## Step 1: Authenticate with GitHub |
8 | 8 |
|
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 | + |
| 12 | + |
| 13 | +_This image provides a demo example of the GitHub authentication process._ |
10 | 14 |
|
11 | 15 | ### Command Usage |
12 | 16 |
|
| 17 | +:::info |
| 18 | + |
13 | 19 | ```bash |
14 | 20 | polykey identities authenticate <providerId> |
15 | 21 | ``` |
16 | 22 |
|
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 | +::: |
18 | 25 |
|
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. |
20 | 28 |
|
21 | 29 | ```bash |
22 | 30 | polykey identities authenticate github |
23 | 31 | ``` |
24 | 32 |
|
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. |
26 | 46 |
|
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. |
28 | 48 |
|
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). |
30 | 54 |
|
31 | 55 | ## Step 2: Claim Your Identity |
32 | 56 |
|
33 | 57 | 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. |
34 | 58 |
|
| 59 | +<img src="/images/cryptolink.png" alt="Cryptolink" style={{ width: '70%', height: 'auto' }} /> |
| 60 | + |
35 | 61 | ### Command Usage |
36 | 62 |
|
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 |
40 | 66 |
|
41 | 67 | - `<providerIdentityId>`: The specific identity identifier from the provider you authenticated with, which you will claim. |
42 | 68 |
|
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. |
44 | 74 |
|
45 | 75 | ```bash |
46 | | -polykey identities claim my-github-username |
| 76 | +polykey identities claim github.com:my-gh-username |
47 | 77 | ``` |
48 | 78 |
|
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 |
50 | 80 |
|
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. |
52 | 82 |
|
53 | | -## Step 3: Verify Your Claim |
| 83 | + |
54 | 84 |
|
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._ |
56 | 86 |
|
57 | | -### Via GitHub |
| 87 | +### Primary Verification Method |
| 88 | + |
| 89 | +Navigate directly to the provided gist link: |
58 | 90 |
|
59 | 91 | ```bash |
60 | | -gist.github.com/my-github-username |
| 92 | +https://gist.github.com/my-github-username |
61 | 93 | ``` |
62 | 94 |
|
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. |
64 | 96 |
|
65 | | -### Via Polykey |
| 97 | +### Additional Verification Options |
66 | 98 |
|
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: |
68 | 100 |
|
69 | | -#### Command Usage |
| 101 | +- **Polykey Gestalt List:** You can list all gestalts, including your own, to see the internal record of your claim. |
70 | 102 |
|
71 | 103 | ```bash |
72 | 104 | polykey identities list |
73 | 105 | ``` |
74 | 106 |
|
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 |
76 | 110 |
|
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. |
78 | 112 |
|
79 | | -```bash |
80 | | -gestalt |
81 | | - actionsList |
82 | | - identities |
83 | | - github.com:CryptoTotalWar |
84 | | - nodeIds |
85 | | - vgijtpv0h8m1eajeir77g73muq88n5kj0413t6fjdqsv9kt8dq4pg |
86 | | -``` |
| 113 | + |
87 | 114 |
|
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._ |
89 | 116 |
|
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: |
91 | 135 |
|
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. |
93 | 139 |
|
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. |
95 | 141 |
|
96 | 142 | ## Conclusion |
97 | 143 |
|
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. |
99 | 145 |
|
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. |
0 commit comments