# sgID

## Overview

sgID is an OpenID Connect (OIDC) [identity provider](https://www.cloudflare.com/en-gb/learning/access-management/what-is-an-identity-provider/) by the Singapore government. sgID uses a privacy-preserving version of the OIDC protocol. This allows applications to integrate with sgID based on familiar industry standards, while providing privacy guarantees for end users.

{% hint style="info" %}
sgID's implementation of OpenID Connect (OIDC) supports the standard [authorization code grant type](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1). This means that integration steps are based on the familiar OAuth 2.0 authorization code flow.&#x20;
{% endhint %}

## Government-verified data

As a government identity provider, sgID distinguishes itself from private sector identity providers because it provides Singapore resident data that is verified by the government to be true. Because the data is both signed and separately encrypted with an end user-specific key pair, this allows sgID to verify that the data is not tampered with when the sgID relying party receives it.&#x20;

## Privacy

One of the key features of the sgID protocol is its privacy-preserving approach. End user data is encrypted with keys held on their device, so the sgID server handling the transaction cannot read the data that is being transmitted. This means that only the end user knows who they've been transacting with, and what information has been transacted.

sgID enforces client-specific identifiers. This means that different sgID relying parties receive different identifiers for the same end user. For example, if Xiao Ming logs into McDonald's with sgID, McDonald's might receive Xiao Ming's data, identifying him with a system ID of `abcde`. But if Xiao Ming logs into KFC, with sgID, KFC will receive a different system ID, such as `12345`.

## White Paper

If you're interested in learning more about the design of the sgID protocol, you can refer to the sgID [White Paper](#white-paper).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.id.gov.sg/learn-the-basics/protocols/sgid.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
