Skip to content

Commit f053707

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into digital-twins-tutorials
2 parents 597e974 + 683a49b commit f053707

File tree

2,185 files changed

+13965
-16107
lines changed

Some content is hidden

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

2,185 files changed

+13965
-16107
lines changed

.github/CODEOWNERS

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ articles/ @apex-docs-pr-reviewers
1111

1212
# Cognitive Services
1313
articles/cognitive-services/ @nitinme @tchristiani @cjgronlund
14-
articles/cognitive-services/luis/ @cjgronlund @nitinme @diberry
15-
articles/cognitive-services/speaker-recognition/ @cjgronlund @nitinme @erhopf
16-
articles/cognitive-services/speech-service/ @cjgronlund @nitinme @erhopf
17-
articles/cognitive-services/translator/ @cjgronlund @nitinme @erhopf
18-
articles/cognitive-services/qnamaker/ @cjgronlund @nitinme @diberry
14+
articles/cognitive-services/LUIS/ @cjgronlund @nitinme @diberry
15+
articles/cognitive-services/Speaker-recognition/ @cjgronlund @nitinme @erhopf
16+
articles/cognitive-services/Speech-Service/ @cjgronlund @nitinme @erhopf
17+
articles/cognitive-services/Translator/ @cjgronlund @nitinme @erhopf
18+
articles/cognitive-services/QnAMaker/ @cjgronlund @nitinme @diberry
1919

2020
# DevOps
2121

.openpublishing.publish.config.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,29 @@
224224
"branch": "master",
225225
"branch_mapping": {}
226226
},
227+
{
228+
"path_to_root": "samples-qnamaker-go",
229+
"url": "https://github.com/Azure-Samples/cognitive-services-qnamaker-go",
230+
"branch": "master",
231+
"branch_mapping": {}
232+
},
227233
{
228234
"path_to_root": "samples-qnamaker-csharp",
229235
"url": "https://github.com/Azure-Samples/cognitive-services-qnamaker-csharp",
230236
"branch": "master",
231237
"branch_mapping": {}
238+
},
239+
{
240+
"path_to_root": "samples-qnamaker-java",
241+
"url": "https://github.com/Azure-Samples/cognitive-services-qnamaker-java",
242+
"branch": "master",
243+
"branch_mapping": {}
244+
},
245+
{
246+
"path_to_root": "samples-qnamaker-python",
247+
"url": "https://github.com/Azure-Samples/cognitive-services-qnamaker-python",
248+
"branch": "master",
249+
"branch_mapping": {}
232250
}
233251
],
234252
"branch_target_mapping": {

.openpublishing.redirection.json

Lines changed: 252 additions & 27 deletions
Large diffs are not rendered by default.

articles/active-directory-b2c/active-directory-b2c-access-tokens.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ms.component: B2C
1515
---
1616
# Azure AD B2C: Requesting access tokens
1717

18-
An access token (denoted as **access\_token** in the responses from Azure AD B2C) is a form of security token that a client can use to access resources that are secured by an [authorization server](https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-reference-protocols#the-basics), such as a web API. Access tokens are represented as [JWTs](https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-reference-tokens#types-of-tokens) and contain information about the intended resource server and the granted permissions to the server. When calling the resource server, the access token must be present in the HTTP request.
18+
An access token (denoted as **access\_token** in the responses from Azure AD B2C) is a form of security token that a client can use to access resources that are secured by an [authorization server](active-directory-b2c-reference-protocols.md), such as a web API. Access tokens are represented as [JWTs](active-directory-b2c-reference-tokens.md) and contain information about the intended resource server and the granted permissions to the server. When calling the resource server, the access token must be present in the HTTP request.
1919

2020
This article discusses how to configure a client application and web API in order to obtain an **access\_token**.
2121

@@ -33,22 +33,22 @@ Before requesting an access token, you first need to register a web API and publ
3333
### Register a web API
3434

3535
1. On the Azure AD B2C features menu on the Azure portal, click **Applications**.
36-
1. Click **+Add** at the top of the menu.
37-
1. Enter a **Name** for the application that will describe your application to consumers. For example, you could enter "Contoso API".
38-
1. Toggle the **Include web app / web API** switch to **Yes**.
39-
1. Enter an arbitrary value for the **Reply URLs**. For example, enter `https://localhost:44316/`. The value does not matter since an API should not be receiving the token directly from Azure AD B2C.
40-
1. Enter an **App ID URI**. This is the identifier used for your web API. For example, enter 'notes' in the box. The **App ID URI** would then be `https://{tenantName}.onmicrosoft.com/notes`.
41-
1. Click **Create** to register your application.
42-
1. Click the application that you just created and copy down the globally unique **Application Client ID** that you'll use later in your code.
36+
2. Click **+Add** at the top of the menu.
37+
3. Enter a **Name** for the application that will describe your application to consumers. For example, you could enter "Contoso API".
38+
4. Toggle the **Include web app / web API** switch to **Yes**.
39+
5. Enter an arbitrary value for the **Reply URLs**. For example, enter `https://localhost:44316/`. The value does not matter since an API should not be receiving the token directly from Azure AD B2C.
40+
6. Enter an **App ID URI**. This is the identifier used for your web API. For example, enter 'notes' in the box. The **App ID URI** would then be `https://{tenantName}.onmicrosoft.com/notes`.
41+
7. Click **Create** to register your application.
42+
8. Click the application that you just created and copy down the globally unique **Application Client ID** that you'll use later in your code.
4343

4444
### Publishing permissions
4545

4646
Scopes, which are analogous to permissions, are necessary when your app is calling an API. Some examples of scopes are "read" or "write". Suppose you want your web or native app to "read" from an API. Your app would call Azure AD B2C and request an access token that gives access to the scope "read". In order for Azure AD B2C to emit such an access token, the app needs to be granted permission to "read" from the specific API. To do this, your API first needs to publish the "read" scope.
4747

4848
1. Within the Azure AD B2C **Applications** menu, open the web API application ("Contoso API").
49-
1. Click on **Published scopes**. This is where you define the permissions (scopes) that can be granted to other applications.
50-
1. Add **Scope Values** as necessary (for example, "read"). By default, the "user_impersonation" scope will be defined. You can ignore this if you wish. Enter a description of the scope in the **Scope Name** column.
51-
1. Click **Save**.
49+
2. Click on **Published scopes**. This is where you define the permissions (scopes) that can be granted to other applications.
50+
3. Add **Scope Values** as necessary (for example, "read"). By default, the "user_impersonation" scope will be defined. You can ignore this if you wish. Enter a description of the scope in the **Scope Name** column.
51+
4. Click **Save**.
5252

5353
> [!IMPORTANT]
5454
> The **Scope Name** is the description of the **Scope Value**. When using the scope, make sure to use the **Scope Value**.
@@ -58,11 +58,11 @@ Scopes, which are analogous to permissions, are necessary when your app is calli
5858
Once an API is configured to publish scopes, the client application needs to be granted those scopes via the Azure portal.
5959

6060
1. Navigate to the **Applications** menu in the Azure AD B2C features menu.
61-
1. Register a client application ([web app](active-directory-b2c-app-registration.md#register-a-web-app) or [native client](active-directory-b2c-app-registration.md#register-a-mobile-or-native-app)) if you don’t have one already. If you are following this guide as your starting point, you'll need to register a client application.
62-
1. Click on **API access**.
63-
1. Click on **Add**.
64-
1. Select your web API and the scopes (permissions) you would like to grant.
65-
1. Click **OK**.
61+
2. Register a client application ([web app](active-directory-b2c-app-registration.md) or [native client](active-directory-b2c-app-registration.md)) if you don’t have one already. If you are following this guide as your starting point, you'll need to register a client application.
62+
3. Click on **API access**.
63+
4. Click on **Add**.
64+
5. Select your web API and the scopes (permissions) you would like to grant.
65+
6. Click **OK**.
6666

6767
> [!NOTE]
6868
> Azure AD B2C does not ask your client application users for their consent. Instead, all consent is provided by the admin, based on the permissions configured between the applications described above. If a permission grant for an application is revoked, all users who were previously able to acquire that permission will no longer be able to do so.

articles/active-directory-b2c/active-directory-b2c-app-registration.md

Lines changed: 47 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,80 @@
11
---
2-
title: Application registration in Azure Active Directory B2C | Microsoft Docs
3-
description: How to register your application with Azure Active Directory B2C
2+
title: Register an application in Azure Active Directory B2C | Microsoft Docs
3+
description: Learn how to register your application with Azure Active Directory B2C.
44
services: active-directory-b2c
55
author: davidmu1
66
manager: mtillman
77

88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: conceptual
11-
ms.date: 6/13/2017
11+
ms.date: 11/01/2018
1212
ms.author: davidmu
1313
ms.component: B2C
1414
---
1515

16-
# Azure Active Directory B2C: Register your application
16+
# Register an application in Azure Active Directory B2C
1717

18-
This Quickstart helps you register an application in a Microsoft Azure Active Directory (Azure AD) B2C tenant in a few minutes. When you're finished, your application is registered for use in the Azure AD B2C tenant.
18+
To build an [application](active-directory-b2c-apps.md) that accepts consumer sign-up and sign-in, you first need to register the application with an Azure AD B2C tenant. This article helps you register an application in an Azure Active Directory (Azure AD) B2C tenant in a few minutes. When you're finished, your application is registered for use in the Azure AD B2C tenant.
1919

2020
## Prerequisites
2121

22-
To build an application that accepts consumer sign-up and sign-in, you first need to register the application with an Azure Active Directory B2C tenant. Get your own tenant by using the steps outlined in [Create an Azure AD B2C tenant](active-directory-b2c-get-started.md).
22+
Get your own tenant by using the steps in [Create an Azure Active Directory B2C tenant](tutorial-create-tenant.md).
2323

24-
Applications created in the Azure portal must be managed from the same location. If you edit the Azure AD B2C applications using PowerShell or another portal, they become unsupported and do not work with Azure AD B2C. See details in the [faulted apps](#faulted-apps) section.
24+
Choose next steps based on your application type:
2525

26-
This article uses examples that will help you get started with our samples. You can learn more about these samples in the subsequent articles.
26+
- [Register a web application](#register-a-web-application)
27+
- [Register a web API](#register-a-web-api)
28+
- [Register a mobile or native application](#register-a-mobile-or-native-application)
2729

28-
## Navigate to B2C settings
30+
## Register a web application
2931

30-
Log in to the [Azure portal](https://portal.azure.com/) as the Global Administrator of the B2C tenant.
32+
1. Make sure you're using the directory that contains your Azure AD B2C tenant by clicking the **Directory and subscription filter** in the top menu and choosing the directory that contains your tenant.
33+
2. Choose **All services** in the top-left corner of the Azure portal, and then search for and select **Azure AD B2C**.
34+
3. Select **Applications**, and then select **Add**.
35+
4. Enter a name for the application. For example *testapp1*.
36+
5. For **Include web app/ web API** and **Allow implicit flow**, select **Yes**.
37+
6. For **Reply URL**, enter endpoint where Azure AD B2C should return any tokens that your app requests. For example, you can set it to listen locally at `https://localhost:44316`. If you don't yet know the port number, you can enter a placeholder value and change it later.
38+
7. Click **Create**.
3139

32-
[!INCLUDE [active-directory-b2c-switch-b2c-tenant](../../includes/active-directory-b2c-switch-b2c-tenant.md)]
40+
### Create a client secret
3341

34-
[!INCLUDE [active-directory-b2c-portal-navigate-b2c-service](../../includes/active-directory-b2c-portal-navigate-b2c-service.md)]
42+
If your application calls a web API secured by Azure AD B2C, you need to create an application secret.
3543

36-
## Choose next steps based on your application type
44+
1. Select **Keys** and then click **Generate key**.
45+
2. Select **Save** to view the key. Make note of the **App key** value. You use the value as the application secret in your application's code.
46+
3. Select **API Access**, click **Add**, and select your web API and scopes (permissions).
3747

38-
* [Register a web application](#register-a-web-app)
39-
* [Register a web API](#register-a-web-api)
40-
* [Register a mobile or native application](#register-a-mobile-or-native-app)
41-
42-
### Register a web app
48+
## Register a web API
4349

44-
[!INCLUDE [active-directory-b2c-register-web-app](../../includes/active-directory-b2c-register-web-app.md)]
50+
1. Make sure you're using the directory that contains your Azure AD B2C tenant by clicking the **Directory and subscription filter** in the top menu and choosing the directory that contains your tenant.
51+
2. Choose **All services** in the top-left corner of the Azure portal, and then search for and select **Azure AD B2C**.
52+
3. Select **Applications**, and then select **Add**.
53+
4. Enter a name for the application. For example *testapp2*.
54+
5. For **Include web app/ web API** and **Allow implicit flow**, select **Yes**.
55+
6. For **Reply URL**, enter endpoint where Azure AD B2C should return any tokens that your app requests. For example, you can set it to listen locally at `https://localhost:44316`. If you don't yet know the port number, you can enter a placeholder value and change it later.
56+
7. For **App ID URI**, enter the identifier used for your web API. The full identifier URI including the domain is generated for you. For example, `https://contosotenant.onmicrosoft.com/api`.
57+
8. Click **Create**.
58+
9. Select **Published scopes** to add more scopes as necessary. By default, the `user_impersonation` scope is defined. The `user_impersonation` scope gives other applications the ability to access this API on behalf of the signed-in user. If you wish, the `user_impersonation` scope can be removed.
4559

46-
### Create a web app client secret
60+
## Register a mobile or native application
4761

48-
If your web application calls a web API secured by Azure AD B2C, perform these steps:
49-
1. Create an application secret by going to the **Keys** blade and clicking the **Generate Key** button. Make note of the **App key** value. You use the value as the application secret in your application's code.
50-
2. Click **API Access**, click **Add**, and select your web API and scopes (permissions).
62+
1. Make sure you're using the directory that contains your Azure AD B2C tenant by clicking the **Directory and subscription filter** in the top menu and choosing the directory that contains your tenant.
63+
2. Choose **All services** in the top-left corner of the Azure portal, and then search for and select **Azure AD B2C**.
64+
3. Select **Applications**, and then select **Add**.
65+
4. Enter a name for the application. For example *testapp3*.
66+
5. For **Include web app/ web API**, select **No**.
67+
6. For **Include native client**, select **Yes**.
68+
7. For **Redirect URI**, enter a [redirect URI with a custom scheme](active-directory-b2c-apps.md). Make sure you choose a good redirect URI and do not include special characters such as underscores.
69+
8. Click **Create**.
5170

52-
> [!NOTE]
53-
> An **Application Secret** is an important security credential, and should be secured appropriately.
54-
>
71+
### Create a client secret
5572

56-
[Jump to **next steps**](#next-steps)
73+
If your application calls a web API secured by Azure AD B2C, you need to create an application secret.
5774

58-
### Register a web API
59-
60-
[!INCLUDE [active-directory-b2c-register-web-api](../../includes/active-directory-b2c-register-web-api.md)]
61-
62-
Click **Published scopes** to add more scopes as necessary. By default, the "user_impersonation" scope is defined. The user_impersonation scope gives other applications the ability to access this api on behalf of the signed-in user. If you wish, the user_impersonation scope can be removed.
63-
64-
[Jump to **next steps**](#next-steps)
65-
66-
### Register a mobile or native app
67-
68-
[!INCLUDE [active-directory-b2c-register-mobile-native-app](../../includes/active-directory-b2c-register-mobile-native-app.md)]
69-
70-
[Jump to **next steps**](#next-steps)
71-
72-
## Limitations
73-
74-
### Choosing a web app or api reply URL
75-
76-
Currently, apps that are registered with Azure AD B2C are restricted to a limited set of reply URL values. The reply URL for web apps and services must begin with the scheme `https`, and all reply URL values must share a single DNS domain. For example, you cannot register a web app that has one of these reply URLs:
77-
78-
`https://login-east.contoso.com`
79-
80-
`https://login-west.contoso.com`
81-
82-
The registration system compares the whole DNS name of the existing reply URL to the DNS name of the reply URL that you are adding. The request to add the DNS name fails if either of the following conditions is true:
83-
84-
* The whole DNS name of the new reply URL does not match the DNS name of the existing reply URL.
85-
* The whole DNS name of the new reply URL is not a subdomain of the existing reply URL.
86-
87-
For example, if the app has this reply URL:
88-
89-
`https://login.contoso.com`
90-
91-
You can add to it, like this:
92-
93-
`https://login.contoso.com/new`
94-
95-
In this case, the DNS name matches exactly. Or, you can do this:
96-
97-
`https://new.login.contoso.com`
98-
99-
In this case, you're referring to a DNS subdomain of login.contoso.com. If you want to have an app that has login-east.contoso.com and login-west.contoso.com as reply URLs, you must add those reply URLs in this order:
100-
101-
`https://contoso.com`
102-
103-
`https://login-east.contoso.com`
104-
105-
`https://login-west.contoso.com`
106-
107-
You can add the latter two because they are subdomains of the first reply URL, contoso.com.
108-
109-
### Choosing a native app redirect URI
110-
111-
There are two important considerations when choosing a redirect URI for mobile/native applications:
112-
113-
* **Unique**: The scheme of the redirect URI should be unique for every application. In the example (com.onmicrosoft.contoso.appname://redirect/path), com.onmicrosoft.contoso.appname is the scheme. We recommend following this pattern. If two applications share the same scheme, the user sees a "choose app" dialog. If the user makes an incorrect choice, the login fails.
114-
* **Complete**: Redirect URI must have a scheme and a path. The path must contain at least one forward slash after the domain (for example, //contoso/ works and //contoso fails).
115-
116-
Ensure there are no special characters like underscores in the redirect uri.
117-
118-
### Faulted apps
119-
120-
B2C applications should NOT be edited:
121-
122-
* On other application management portals such as the [Application Registration Portal](https://apps.dev.microsoft.com/).
123-
* Using Graph API or PowerShell
124-
125-
If you edit the Azure AD B2C application as described and try to edit it again in Azure AD B2C features on the Azure portal, it becomes a faulted app, and your application is no longer usable with Azure AD B2C. You need to delete the application and create it again.
126-
127-
To delete the app, go to the [Application Registration Portal](https://apps.dev.microsoft.com/) and delete the application there. In order for the application to be visible, you need to be the owner of the application (and not just an admin of the tenant).
75+
1. Select **Keys** and then click **Generate key**.
76+
2. Select **Save** to view the key. Make note of the **App key** value. You use the value as the application secret in your application's code.
77+
3. Select **API Access**, click **Add**, and select your web API and scopes (permissions).
12878

12979
## Next steps
13080

0 commit comments

Comments
 (0)