Claiming Digital Identities: Establishing Identity Linkages in Polykey
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.
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.
Step 1: Authenticate with GitHub
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.
This image provides a demo example of the GitHub authentication process.
Command Usage
polykey identities authenticate <providerId>
<providerId>
: The identifier for the digital identity provider, such as "github".
Since Polykey currently only supports GitHub as an IdP, this is the command that you will use to start the authentication process.
polykey identities authenticate github
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.
The code prompted by the browser will be displayed in your terminal as the user code.
Lists all authenticated identities across all providers
polykey identities authenticated
command will output the providerID and corresponding identityID of the authenticated IdP. This is a way to check that you completed the authentication process correctly.
Example Usage
polykey identities authenticated
Example Output
providerId github.com
identityId maverick
Technical Use of Permissions
During the authentication process, here's what Polykey requests access to and why:
-
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.
-
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.
-
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.
Security and Privacy Considerations
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.
Step 2: Claim Your Identity
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.
Command Usage
This image provides a demo example of the cryptographic link that is generated.
-
<providerIdentityId>
: The specific identity identifier from the provider you authenticated with, which you will claim. -
polykey identities claim
argument for<providerIdentityID>
=github.com
+:
+GH username
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.
polykey identities claim github.com:my-gh-username
Step 3: Verify Your Claim
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.
This image shows a demo example of the link to the gist that was created when claiming the identity which forms a gestalt.
Primary Verification Method
Check your GH gists. Replace my-github-username
with your actual gh username and navigate to the url.
https://gist.github.com/my-github-username
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.
Understanding Gestalt Graphs
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.
This image shows a federated gestalt graph example concept map.
How Gestalt Graphs Work
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.
Claiming Multiple Identities
Polykey enables you to manage your digital presence flexibly by supporting the claiming of multiple identities across different scenarios. Specifically, you can:
-
Link one node to several identity providers (IdPs), broadening your digital footprint and verification avenues as more IdPs are supported.
-
Claim the same identity provider, such as a GitHub username, across multiple unique nodes you control, consolidating your digital identity while expanding your network's reach.
Future Plans and IdP Support
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.
Benefits of Federated Identities
Using a federated identity model through gestalt graphs offers several benefits:
- Enhanced Security: By linking various identity proofs, it strengthens the authenticity and credibility of your digital identity.
- Simplified Management: Manage multiple identities through a single interface, reducing complexity and improving user experience.
- Interoperability: Easily interact across different platforms and services using a unified identity framework.
Understanding and utilizing gestalt graphs in Polykey not only secures your operations but also significantly simplifies the process of digital identity management.
Conclusion
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.
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.