Skip to content

Commit 3c39181

Browse files
authored
Merge branch 'main' into Broken-link-fix-erd
2 parents f0f188a + 532e4c1 commit 3c39181

File tree

112 files changed

+459
-352
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+459
-352
lines changed

articles/active-directory/verifiable-credentials/TOC.yml

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,31 +52,33 @@
5252
href: how-use-vcnetwork.md
5353
- name: Using the Request Service REST API
5454
href: get-started-request-api.md
55-
- name: Link your domain to your DID
56-
href: how-to-dnsbind.md
57-
- name: Register your website ID
55+
- name: Register decentralized ID
5856
href: how-to-register-didwebsite.md
57+
- name: Verify domain ownership
58+
href: how-to-dnsbind.md
5959
- name: Revoke a verifiable credential
6060
href: how-to-issuer-revoke.md
6161
- name: Opt out of Verified ID service
6262
href: how-to-opt-out.md
63-
- name: Partner integration
63+
- name: Partner gallery
6464
items:
65-
- name: Partner gallery
66-
href: partner-gallery.md
67-
- name: Au10tix
68-
href: howto-verifiable-credentials-partner-au10tix.md
69-
- name: LexisNexis
70-
href: howto-verifiable-credentials-partner-lexisnexis.md
71-
- name: Vu
72-
href: partner-vu.md
65+
- name: IDV partners
66+
items:
67+
- name: IDV partner network
68+
href: partner-gallery.md
69+
- name: Au10tix
70+
href: howto-verifiable-credentials-partner-au10tix.md
71+
- name: LexisNexis
72+
href: howto-verifiable-credentials-partner-lexisnexis.md
73+
- name: Vu
74+
href: partner-vu.md
75+
- name: Services partners
76+
href: services-partners.md
7377
- name: Samples
7478
expanded: true
7579
items:
7680
- name: Sample Applications
7781
href: https://github.com/Azure-Samples/active-directory-verifiable-credentials
78-
# - name: Sample Issuer
79-
# href:
8082
- name: End to End Demo
8183
href: https://woodgroveemployee.azurewebsites.net/
8284
- name: Reference

articles/active-directory/verifiable-credentials/admin-api.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ This method can be used to update the display name of this specific instance of
408408

409409
#### HTTP request
410410

411-
`POST /v1.0/verifiableCredentials/authorities/:authorityId`
411+
`PATCH /v1.0/verifiableCredentials/authorities/:authorityId`
412412

413413
Replace the value of `:authorityId` with the value of the authority ID you want to update.
414414

@@ -545,7 +545,7 @@ Although it is technically possible to publish multiple domains, we currently on
545545

546546
### Well-known DID configuration
547547

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).
549549

550550
#### HTTP request
551551

@@ -829,7 +829,7 @@ The response contains the following properties
829829

830830
| Property | Type | Description |
831831
| -------- | -------- | -------- |
832-
|`attestations`| [attestions](#attestations-type)| describing supported inputs for the rules |
832+
|`attestations`| [attestations](#attestations-type)| describing supported inputs for the rules |
833833
|`validityInterval` | number | this value shows the lifespan of the credential |
834834
|`vc`| vcType array | types for this contract |
835835
|`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
840840

841841
| Property | Type | Description |
842842
| -------- | -------- | -------- |
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 |
845845
|`presentations`| [verifiablePresentationAttestation](#verifiablepresentationattestation-type) (array) (optional) | describes verifiable presentations inputs |
846846
|`selfIssued`| [selfIssuedAttestation](#selfissuedattestation-type) (array) (optional) | describes self issued inputs |
847847
|`accessTokens`| [accessTokenAttestation](#accesstokenattestation-type) (array) (optional) | describes access token inputs |

articles/active-directory/verifiable-credentials/get-started-request-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ To issue or verify a verifiable credential, follow these steps:
285285
286286
1. Submit the request to the Request Service REST API.
287287
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).
289289
290290
## Issuance request example
291291

articles/active-directory/verifiable-credentials/how-to-dnsbind.md

Lines changed: 41 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,59 @@ ms.author: barclayn
1313
#Customer intent: Why are we doing this?
1414
---
1515

16-
# Link your domain to your Decentralized Identifier (DID)
16+
# Verify domain ownership to your Decentralized Identifier (DID)
1717

1818
[!INCLUDE [Verifiable Credentials announcement](../../../includes/verifiable-credentials-brand.md)]
1919

2020

2121
## Prerequisites
2222

23-
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.
2424

2525
- Complete the [Getting Started](get-started-verifiable-credentials.md) and subsequent [tutorial set](enable-your-tenant-verifiable-credentials.md).
2626

27-
## Why do we need to link our DID to our domain?
27+
## Verify domain ownership and distribute did-configuration.json file
2828

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.
3030

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+
![Screenshot of download well-known config.](media/how-to-dnsbind/verify-download.png)
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+
![Screenshot of verified well-known config.](media/how-to-dnsbind/verify-download-verified.png)
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.
3254

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.
3457
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?
3659

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.
3863

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?
4065

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.
4269

4370
```json
4471
"service": [
@@ -54,7 +81,7 @@ We follow the [Well-Known DID configuration](https://identity.foundation/.well-k
5481
]
5582
```
5683

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.
5885

5986

6087
```json
@@ -66,15 +93,6 @@ We follow the [Well-Known DID configuration](https://identity.foundation/.well-k
6693
}
6794
```
6895

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-
7896
## User experience in the wallet
7997

8098
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
90108

91109
If all of the previously mentioned are true, then Microsoft Authenticator displays a verified page and includes the domain that was validated.
92110

93-
![new permission request](media/how-to-dnsbind/new-permission-request.png)
111+
![Screenshot of new permission request.](media/how-to-dnsbind/new-permission-request.png)
94112

95113
## Unverified domain
96114

@@ -102,28 +120,11 @@ If any of the above aren't true, Microsoft Authenticator displays a full page wa
102120

103121
It is of high importance that you link your DID to a domain recognizable to the user.
104122

105-
![unverified domain warning in the add credential screen](media/how-to-dnsbind/add-credential-not-verified-authenticated.png)
123+
![Screenshot of unverified domain warning in the add credential screen.](media/how-to-dnsbind/add-credential-not-verified-authenticated.png)
106124

107125
## How do you update the linked domain on your DID?
108126

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.
127128

128129
### How do I know when the linked domain update has successfully completed?
129130

@@ -132,34 +133,6 @@ If the trust system is ION, once the domain changes are published to ION, the do
132133
>[!IMPORTANT]
133134
> No changes to your domain are possible while publishing is in progress.
134135

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-
![Download well known config](media/how-to-dnsbind/verify-download.png)
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-
163136
## Linked Domain domain made easy for developers
164137

165138
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

Comments
 (0)