You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace the value of `:authorityId` with the value of the authority ID you want to update.
414
414
@@ -545,7 +545,7 @@ Although it is technically possible to publish multiple domains, we currently on
545
545
546
546
### Well-known DID configuration
547
547
548
-
The `generateWellknownDidConfiguration` method generates the signed did-configuration.json file. The file must be uploaded to the `.well-known` folder in the root of the website hosted for the domain in the linked domain of this verifiable credential instance. Instructions can be found [here](how-to-dnsbind.md#distribute-well-known-config).
548
+
The `generateWellknownDidConfiguration` method generates the signed did-configuration.json file. The file must be uploaded to the `.well-known` folder in the root of the website hosted for the domain in the linked domain of this verifiable credential instance. Instructions can be found [here](how-to-dnsbind.md#verify-domain-ownership-and-distribute-did-configurationjson-file).
549
549
550
550
#### HTTP request
551
551
@@ -829,7 +829,7 @@ The response contains the following properties
829
829
830
830
| Property | Type | Description |
831
831
| -------- | -------- | -------- |
832
-
|`attestations`|[attestions](#attestations-type)| describing supported inputs for the rules |
832
+
|`attestations`|[attestations](#attestations-type)| describing supported inputs for the rules |
833
833
|`validityInterval`| number | this value shows the lifespan of the credential |
834
834
|`vc`| vcType array | types for this contract |
835
835
|`customStatusEndpoint`|[customStatusEndpoint] (#customstatusendpoint-type) (optional) | status endpoint to include in the verifiable credential for this contract |
@@ -840,8 +840,8 @@ If the property `customStatusEndpoint` property isn't specified then the `anonym
840
840
841
841
| Property | Type | Description |
842
842
| -------- | -------- | -------- |
843
-
|`idTokens`|[idTokenAttestation](#idtokenattestation-type) (array) (optional) | describes id token inputs|
844
-
|`idTokenHints`|[idTokenHintAttestation](#idtokenhintattestation-type) (array) (optional) | describes id token hint inputs |
843
+
|`idTokens`|[idTokenAttestation](#idtokenattestation-type) (array) (optional) | describes ID token inputs|
844
+
|`idTokenHints`|[idTokenHintAttestation](#idtokenhintattestation-type) (array) (optional) | describes ID token hint inputs |
Copy file name to clipboardExpand all lines: articles/active-directory/verifiable-credentials/get-started-request-api.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -285,7 +285,7 @@ To issue or verify a verifiable credential, follow these steps:
285
285
286
286
1. Submit the request to the Request Service REST API.
287
287
288
-
The Request Service API returns an HTTP Status Code `201 Created` on a successful call. If the API call returns an error, please check the [error reference documentation](error-codes.md). //TODO
288
+
The Request Service API returns an HTTP Status Code `201 Created` on a successful call. If the API call returns an error, please check the [error reference documentation](error-codes.md).
To link your DID to your domain, you need to have completed the following.
23
+
To verify domain ownership to your DID, you need to have completed the following.
24
24
25
25
- Complete the [Getting Started](get-started-verifiable-credentials.md) and subsequent [tutorial set](enable-your-tenant-verifiable-credentials.md).
26
26
27
-
## Why do we need to link our DID to our domain?
27
+
## Verify domain ownership and distribute did-configuration.json file
28
28
29
-
A DID starts out as an identifier that isn't anchored to existing systems. A DID is useful because a user or organization can own it and control it. If an entity interacting with the organization doesn't know 'who' the DID belongs to, then the DID isn't as useful.
29
+
The domain you will verify ownership of to your DID is defined in the organizational settings.
30
30
31
-
Linking a DID to a domain solves the initial trust problem by allowing any entity to cryptographically verify the relationship between a DID and a Domain.
31
+
1. From the Azure portal, navigate to the VerifiedID page.
32
+
33
+
1. Select **Setup**, then **Verify domain ownership** and choose **Verify** for the domain
34
+
35
+
1. Copy or download the `did-configuration.json` file shown in the image below.
36
+
37
+

38
+
39
+
1. Host the `did-configuration.json` file at the location specified. Example: `https://www.example.com/.well-known/did-configuration.json`
40
+
There can be no additional path in the URL other than the .well-known path name.
41
+
42
+
1. When the `did-configuration.json` is publicly available at the .well-known/did-configuration.json URL, verify it by pressing the **Refresh verification status** button.
43
+
44
+

45
+
46
+
1. Test out issuing or presenting with Microsoft Authenticator to validate. Make sure the setting in Authenticator 'Warn about unsafe apps' is toggled on.
47
+
48
+
>[!NOTE]
49
+
>By default, 'Warn about unsafe apps' is turned on.
50
+
51
+
## How can I verify that the verification is working?
52
+
53
+
The portal verifies that the `did-configuration.json` is reachable over public internet and valid when you click the **Refresh verification status** button. Microsoft Authenticator do not honor http redirects. You should also consider verifying that you can request that URL in a browser to avoid errors like not using https, a bad SSL certificate or the URL not being public. If the `did-configuration.json` file cannot be requested anonymously in a browser or via tools such as `curl`, without warnings or errors, the portal will not be able to complete the **Refresh verification status** step either.
32
54
33
-
## When do you need to update the domain in your DID?
55
+
>[!NOTE]
56
+
> If you are experiencing problems refreshing your verification status, you can troubleshoot it via running `curl -Iv https://yourdomain.com/.well-known/did-configuration.json` on an machine with Ubuntu OS. Windows Subsystem for Linux with Ubuntu will work too. If curl fails, refreshing the verification status will not work.
34
57
35
-
In the event where the domain associated with your company changes, you would also need to change the domain in your DID document. You can update the domain in your DID directly from the [Microsoft Entra Verified ID blade in the Azure portal](https://portal.azure.com/#view/Microsoft_AAD_DecentralizedIdentity/InitialMenuBlade/~/domainUpdateBlade).
58
+
## Why do we need to verify domain ownership of our DID?
36
59
37
-
## How do we link DIDs and domains?
60
+
A DID starts out as an identifier that isn't anchored to existing systems. A DID is useful because a user or organization can own it and control it. If an entity interacting with the organization doesn't know 'who' the DID belongs to, then the DID isn't as useful.
61
+
62
+
Linking a DID to a domain solves the initial trust problem by allowing any entity to cryptographically verify the relationship between a DID and a Domain.
38
63
39
-
We follow the [Well-Known DID configuration](https://identity.foundation/.well-known/resources/did-configuration/) specification when creating the link. The verifiable credentials service links your DID and domain. The service includes the domain information that you provided in your DID, and generates the well-known config file:
64
+
## How does VerifiedID link DIDs and domains?
40
65
41
-
1. Azure AD uses the domain information you provide during organization setup to write a Service Endpoint within the DID Document. All parties who interact with your DID can see the domain your DID proclaims to be associated with.
66
+
VerifiedID follows the [Well-Known DID configuration](https://identity.foundation/.well-known/resources/did-configuration/) specification when creating the link. The verifiable credentials service links your DID and domain. The service includes the domain information that you provided in your DID, and generates the well-known config file:
67
+
68
+
1. VerifiedID uses the domain information you provide during organization setup to write a Service Endpoint within the DID Document. All parties who interact with your DID can see the domain your DID proclaims to be associated with.
42
69
43
70
```json
44
71
"service": [
@@ -54,7 +81,7 @@ We follow the [Well-Known DID configuration](https://identity.foundation/.well-k
54
81
]
55
82
```
56
83
57
-
2. The verifiable credential service in Azure AD generates a compliant well-known configuration resource that you can host on your domain. The configuration file includes a self-issued verifiable credential of credentialType 'DomainLinkageCredential' signed with your DID that has an origin of your domain. Here's an example of the config doc that is stored at the root domain URL.
84
+
2. The verifiable credential service in VerifiedID generates a compliant well-known configuration resource that you must host on your domain. The configuration file includes a self-issued verifiable credential of credentialType `DomainLinkageCredential`, signed with your DID, that has an origin of your domain. Here's an example of the config doc that is stored at the root domain URL.
58
85
59
86
60
87
```json
@@ -66,15 +93,6 @@ We follow the [Well-Known DID configuration](https://identity.foundation/.well-k
66
93
}
67
94
```
68
95
69
-
After you have the well-known configuration file, you need to make the file available using the domain name you specified when you enabled your Azure AD for verifiable credentials.
70
-
71
-
- Host the well-known DID configuration file at the root of the domain.
72
-
- Don't use redirects.
73
-
- Use https to distribute the configuration file.
74
-
75
-
>[!IMPORTANT]
76
-
>Microsoft Authenticator does not honor redirects, the URL specified must be the final destination URL.
77
-
78
96
## User experience in the wallet
79
97
80
98
When a user is going through an issuance flow or presenting a verifiable credential, they should know something about the organization and its DID. Microsoft Authenticator, validates a DID's relationship with the domain in the DID document and presents users with two different experiences depending on the outcome.
@@ -90,7 +108,7 @@ Before Microsoft Authenticator displays a **Verified** icon, a few things need t
90
108
91
109
If all of the previously mentioned are true, then Microsoft Authenticator displays a verified page and includes the domain that was validated.

94
112
95
113
## Unverified domain
96
114
@@ -102,28 +120,11 @@ If any of the above aren't true, Microsoft Authenticator displays a full page wa
102
120
103
121
It is of high importance that you link your DID to a domain recognizable to the user.
104
122
105
-

123
+

106
124
107
125
## How do you update the linked domain on your DID?
108
126
109
-
1. Navigate to the Verified ID in the Azure portal.
110
-
1. On the left side of the page, select **Registration**.
111
-
1. In the Domain box, enter your new domain name.
112
-
1. Select **Publish**.
113
-
114
-
:::image type="content" source="media/how-to-dnsbind/publish-update-domain.png" alt-text="Choose the publish button so your changes become":::
115
-
116
-
If the trust system is ION, it might take up to two hours for your DID document to be updated in the [ION network](https://identity.foundation/ion) with the new domain information. No other changes to the domain are possible before the changes are published. If the trust system is Web, the changes are public as soon as you replace the did-configuration.json file on your web server.
117
-
118
-
>[!NOTE]
119
-
>If your changes are successful you will need to [verify](#verified-domain) your newly added domain.
120
-
121
-
122
-
:::image type="content" source="media/how-to-dnsbind/verification.png" alt-text="You need to verify your domain once that the publishing process completes":::
123
-
124
-
### Do I need to wait for my DID Doc to be updated to verify my newly added domains?
125
-
126
-
Yes. You need to wait until the config.json file gets updated before you publish it using your domain's hosting location.
127
+
If your trust system is Web, then updating your linked domain is not supported. You have to opt-out and re-onboard. If your trust system is ION, you can update the linked domain via redoing the **Verify domain ownership** step. It might take up to two hours for your DID document to be updated in the [ION network](https://identity.foundation/ion) with the new domain information. No other changes to the domain are possible before the changes are published.
127
128
128
129
### How do I know when the linked domain update has successfully completed?
129
130
@@ -132,34 +133,6 @@ If the trust system is ION, once the domain changes are published to ION, the do
132
133
>[!IMPORTANT]
133
134
> No changes to your domain are possible while publishing is in progress.
134
135
135
-
## Distribute well-known config
136
-
137
-
1. From the Azure portal, navigate to the Verified ID page. Select **Registration** and choose **Verify** for the domain
138
-
139
-
2. Download the did-configuration.json file shown in the image below.
140
-
141
-

142
-
143
-
3. Copy the linked_did value (JWT), open [https://jwt.ms/](https://www.jwt.ms), paste the JWT, and validate the domain is correct.
144
-
145
-
4. Copy your DID and open the [ION Network Explorer](https://identity.foundation/ion/explorer) to verify the same domain is included in the DID Document.
146
-
147
-
5. Host the well-known config resource at the location specified. Example: `https://www.example.com/.well-known/did-configuration.json`
148
-
149
-
6. Test out issuing or presenting with Microsoft Authenticator to validate. Make sure the setting in Authenticator 'Warn about unsafe apps' is toggled on.
150
-
151
-
>[!NOTE]
152
-
>By default, 'Warn about unsafe apps' is turned on.
153
-
154
-
Congratulations, you now have bootstrapped the web of trust with your DID!
155
-
156
-
## How can I verify that the verification is working?
157
-
158
-
The portal verifies that the `did-configuration.json` is reachable and correct when you click the **Refresh verification status** button. You should also consider verifying that you can request that URL in a browser to avoid errors like not using https, a bad SSL certificate or the URL not being public. If the `did-configuration.json` file cannot be requested anonymously in a browser or via tools such as `curl`, without warnings or errors, the portal will not be able to complete the **Refresh verification status** step either.
159
-
160
-
>[!NOTE]
161
-
> If you are experiencing problems refreshing your verification status, you can troubleshoot it via running `curl -Iv https://yourdomain.com/.well-known/did-configuration.json` on an machine with Ubuntu OS. Windows Subsystem for Linux with Ubuntu will work too. If curl fails, refreshing the verification status will not work.
162
-
163
136
## Linked Domain domain made easy for developers
164
137
165
138
The easiest way for a developer to get a domain to use for linked domain is to use Azure Storage's static website feature. You can't control what the domain name will be, other than it will contain your storage account name as part of it's hostname.
0 commit comments