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
Copy file name to clipboardExpand all lines: articles/active-directory/authentication/howto-authentication-temporary-access-pass.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,8 @@ Users can bootstrap Passwordless methods in one of two ways:
23
23
- Using existing Azure AD Multi-Factor Authentication methods
24
24
- Using a Temporary Access Pass (TAP)
25
25
26
-
A Temporary Access Pass is a time-limited passcode issued by an admin that satisfies strong authentication requirements and can be used to onboard other authentication methods, including Passwordless ones such as Microsoft Authenticator or even Windows Hello.
26
+
A Temporary Access Pass is a time-limited passcode that can be configured for multi or single use to allow users to onboard other authentication methods including passwordless methods such as Microsoft Authenticator, FIDO2 or Windows Hello for Business.
27
+
27
28
A Temporary Access Pass also makes recovery easier when a user has lost or forgotten their strong authentication factor like a FIDO2 security key or Microsoft Authenticator app, but needs to sign in to register new strong authentication methods.
28
29
29
30
This article shows you how to enable and use a Temporary Access Pass in Azure AD using the Azure portal.
Copy file name to clipboardExpand all lines: articles/active-directory/develop/tutorial-v2-javascript-spa.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -159,7 +159,7 @@ sampleApp/
159
159
In the next steps you'll create a new folder for the JavaScript SPA, and set up the user interface (UI).
160
160
161
161
> [!TIP]
162
-
> When you set up an Azure Active Directory (Azure AD) account, you create a tenant. This is a digital representation of your organization, and is primarily associated with a domain, like Microsoft.com. If you wish to learn how applications can work with multiple tenants, refer to the [application model](https://docs.microsoft.com/azure/active-directory/develop/application-model).
162
+
> When you set up an Azure Active Directory (Azure AD) account, you create a tenant. This is a digital representation of your organization, and is primarily associated with a domain, like Microsoft.com. If you wish to learn how applications can work with multiple tenants, refer to the [application model](/articles/active-directory/develop/application-model.md).
163
163
164
164
## Create the SPA UI
165
165
@@ -178,13 +178,12 @@ In the next steps you'll create a new folder for the JavaScript SPA, and set up
@@ -488,7 +487,7 @@ The `acquireTokenSilent` method handles token acquisition and renewal without an
488
487
489
488
## Call the Microsoft Graph API using the acquired token
490
489
491
-
1. In the *JavaScriptSPA* folder create a *.js* file named *graphConfig.js*, which stores the Representational State Transfer ([REST](https://docs.microsoft.com/rest/api/azure/)) endpoints. Add the following code:
490
+
1. In the *JavaScriptSPA* folder create a *.js* file named *graphConfig.js*, which stores the Representational State Transfer ([REST](/rest/api/azure/)) endpoints. Add the following code:
Copy file name to clipboardExpand all lines: articles/active-directory/develop/tutorial-v2-react.md
+49-42Lines changed: 49 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -133,26 +133,24 @@ In the [Redirect URI: MSAL.js 2.0 with auth code flow](scenario-spa-app-registra
133
133
import { msalConfig } from "./authConfig";
134
134
```
135
135
136
-
1. Underneath the imports in*src/index.js* create a `PublicClientApplication` instance using the configuration from step 1.
136
+
2. Underneath the imports in*src/index.js* create a `PublicClientApplication` instance using the configuration from step 1.
137
137
138
138
```javascript
139
139
const msalInstance = new PublicClientApplication(msalConfig);
140
140
```
141
141
142
-
1. Find the `<App />` component in*src/index.js* and wrap it in the `MsalProvider`component. Your render function should look like this:
142
+
3. Find the `<App />` component in*src/index.js* and wrap it in the `MsalProvider`component. Your render function should look like this:
143
143
144
144
```jsx
145
-
ReactDOM.render(
145
+
root.render(
146
146
<React.StrictMode>
147
147
<MsalProviderinstance={msalInstance}>
148
148
<App/>
149
149
</MsalProvider>
150
-
</React.StrictMode>,
151
-
document.getElementById("root")
150
+
</React.StrictMode>
152
151
);
153
152
```
154
153
155
-
156
154
## Sign in users
157
155
158
156
Create a folder in *src* called *components* and create a file inside this folder named *SignInButton.jsx*. Add the code from either of the following sections to invoke login using a pop-up window or a full-frame redirect:
@@ -167,20 +165,22 @@ import { useMsal } from "@azure/msal-react";
167
165
import { loginRequest } from"../authConfig";
168
166
importButtonfrom"react-bootstrap/Button";
169
167
170
-
functionhandleLogin(instance) {
171
-
instance.loginPopup(loginRequest).catch(e=> {
172
-
console.error(e);
173
-
});
174
-
}
175
168
176
169
/**
177
170
* Renders a button which, when selected, will open a popup for login
178
171
*/
179
172
exportconstSignInButton= () => {
180
173
const { instance } =useMsal();
181
174
175
+
consthandleLogin= (loginType) => {
176
+
if (loginType ==="popup") {
177
+
instance.loginPopup(loginRequest).catch(e=> {
178
+
console.log(e);
179
+
});
180
+
}
181
+
}
182
182
return (
183
-
<Button variant="secondary" className="ml-auto" onClick={() =>handleLogin(instance)}>Sign in using Popup</Button>
183
+
<Button variant="secondary" className="ml-auto" onClick={() =>handleLogin("popup")}>Sign in using Popup</Button>
184
184
);
185
185
}
186
186
```
@@ -195,20 +195,22 @@ import { useMsal } from "@azure/msal-react";
195
195
import { loginRequest } from"../authConfig";
196
196
importButtonfrom"react-bootstrap/Button";
197
197
198
-
functionhandleLogin(instance) {
199
-
instance.loginRedirect(loginRequest).catch(e=> {
200
-
console.error(e);
201
-
});
202
-
}
203
198
204
199
/**
205
200
* Renders a button which, when selected, will redirect the page to the login prompt
206
201
*/
207
202
exportconstSignInButton= () => {
208
203
const { instance } =useMsal();
209
204
205
+
consthandleLogin= (loginType) => {
206
+
if (loginType ==="redirect") {
207
+
instance.loginRedirect(loginRequest).catch(e=> {
208
+
console.log(e);
209
+
});
210
+
}
211
+
}
210
212
return (
211
-
<Button variant="secondary" className="ml-auto" onClick={() =>handleLogin(instance)}>Sign in using Redirect</Button>
213
+
<Button variant="secondary" className="ml-auto" onClick={() =>handleLogin("redirect")}>Sign in using Redirect</Button>
@@ -424,7 +431,7 @@ In order to render certain components only for authenticated or unauthenticated
424
431
});
425
432
});
426
433
}
427
-
434
+
428
435
return (
429
436
<>
430
437
<h5 className="card-title">Welcome {name}</h5>
@@ -450,7 +457,7 @@ In order to render certain components only for authenticated or unauthenticated
450
457
451
458
1. Finally, add your new`ProfileContent` component as a child of the `AuthenticatedTemplate`in your `App` component in*src/App.js*. Your`App` component should look like this:
452
459
453
-
```javascript
460
+
```jsx
454
461
function App() {
455
462
return (
456
463
<PageLayout>
@@ -538,15 +545,15 @@ If you're using Internet Explorer, we recommend that you use the `loginRedirect`
538
545
function ProfileContent() {
539
546
const { instance, accounts } = useMsal();
540
547
const [graphData, setGraphData] = useState(null);
541
-
548
+
542
549
const name = accounts[0] && accounts[0].name;
543
-
550
+
544
551
function RequestProfileData() {
545
552
const request = {
546
553
...loginRequest,
547
554
account: accounts[0]
548
555
};
549
-
556
+
550
557
// Silently acquires an access token which is then attached to a request for Microsoft Graph data
Copy file name to clipboardExpand all lines: articles/active-directory/managed-identities-azure-resources/howto-assign-access-portal.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,9 @@ After you've configured an Azure resource with a managed identity, you can give
31
31
32
32
## Use Azure RBAC to assign a managed identity access to another resource
33
33
34
+
>[!IMPORTANT]
35
+
> The steps outlined below show is how you grant access to a service using Azure RBAC. Check specific service documentation on how to grant access - for example check Azure Data Explorer for instructions. Some Azure services are in the process of adopting Azure RBAC on the data plane
36
+
34
37
After you've enabled managed identity on an Azure resource, such as an [Azure VM](qs-configure-portal-windows-vm.md) or [Azure virtual machine scale set](qs-configure-portal-windows-vmss.md):
35
38
36
39
1. Sign in to the [Azure portal](https://portal.azure.com) using an account associated with the Azure subscription under which you have configured the managed identity.

47
50
48
51
2. Navigate to **Manage** in the top-right corner of the page.
49
52
50
-

53
+

51
54
52
55
3. Navigate to your created Azure AD app.
53
56
54
57

55
58
59
+
> [!NOTE]
60
+
> If you don't have an Azure AD app already created, then have a [JWT type Azure AD app](https://marketplace.zoom.us/docs/guides/build/jwt-app) created.
61
+
56
62
4. Select **App Credentials** in the left navigation pane.
57
63
58
64

@@ -147,7 +153,7 @@ Once you've configured provisioning, use the following resources to monitor your
147
153
148
154
## Change log
149
155
* 05/14/2020 - Support for UPDATE operations added for emails[type eq "work"] attribute.
150
-
* 10/20/2020 - Added support for two new roles "Licensed" and "On-Prem" to replace existing roles "Pro" and "Corp". Support for roles "Pro" and "Corp" will be removed in the future.
156
+
* 10/20/2020 - Added support for two new roles "Licensed" and "on-premises" to replace existing roles "Pro" and "Corp". Support for roles "Pro" and "Corp" will be removed in the future.
Copy file name to clipboardExpand all lines: articles/azure-functions/functions-dotnet-class-library.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: Understand how to use C# to develop and publish code as class libra
5
5
ms.topic: conceptual
6
6
ms.devlang: csharp
7
7
ms.custom: devx-track-csharp
8
-
ms.date: 05/12/2022
8
+
ms.date: 10/12/2022
9
9
10
10
---
11
11
# Develop C# class library functions using Azure Functions
@@ -67,7 +67,7 @@ This directory is what gets deployed to your function app in Azure. The binding
67
67
68
68
## Methods recognized as functions
69
69
70
-
In a class library, a function is a static method with a `FunctionName` and a trigger attribute, as shown in the following example:
70
+
In a class library, a function is a method with a `FunctionName` and a trigger attribute, as shown in the following example:
71
71
72
72
```csharp
73
73
publicstaticclassSimpleExample
@@ -82,7 +82,7 @@ public static class SimpleExample
82
82
}
83
83
```
84
84
85
-
The `FunctionName` attribute marks the method as a function entry point. The name must be unique within a project, start with a letter and only contain letters, numbers, `_`, and `-`, up to 127 characters in length. Project templates often create a method named `Run`, but the method name can be any valid C# method name.
85
+
The `FunctionName` attribute marks the method as a function entry point. The name must be unique within a project, start with a letter and only contain letters, numbers, `_`, and `-`, up to 127 characters in length. Project templates often create a method named `Run`, but the method name can be any valid C# method name. The above example shows a static method being used, but functions aren't required to be static.
86
86
87
87
The trigger attribute specifies the trigger type and binds input data to a method parameter. The example function is triggered by a queue message, and the queue message is passed to the method in the `myQueueItem` parameter.
0 commit comments