Skip to content

Commit 615f1ec

Browse files
authored
Merge pull request #263403 from MicrosoftDocs/repo_sync_working_branch
Confirm merge from repo_sync_working_branch to main to sync with https://github.com/MicrosoftDocs/azure-docs (branch main)
2 parents 214a7a5 + 3a03e48 commit 615f1ec

File tree

9 files changed

+108
-40
lines changed

9 files changed

+108
-40
lines changed

articles/active-directory-b2c/openid-connect.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ Error responses can also be sent to the `redirect_uri` parameter so that the app
9494
```http
9595
GET https://jwt.ms/#
9696
error=access_denied
97-
&error_description=the+user+canceled+the+authentication
97+
&error_description=AADB2C90091%3a+The+user+has+cancelled+entering+self-asserted+information.%0d%0aCorrelation+ID%3a+xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%0d%0aTimestamp%3a+xxxx-xx-xx+xx%3a23%3a27Z%0d%0a
9898
&state=arbitrary_data_you_can_receive_in_the_response
9999
```
100100

@@ -202,8 +202,8 @@ Error responses look like:
202202

203203
```json
204204
{
205-
"error": "access_denied",
206-
"error_description": "The user revoked access to the app."
205+
"error": "invalid_grant",
206+
"error_description": "AADB2C90080: The provided grant has expired. Please re-authenticate and try again. Current time: xxxxxxxxxx, Grant issued time: xxxxxxxxxx, Grant expiration time: xxxxxxxxxx\r\nCorrelation ID: xxxxxxxx-xxxx-xxxX-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-16 xx:10:52Z\r\n"
207207
}
208208
```
209209

@@ -279,8 +279,8 @@ Error responses look like:
279279

280280
```json
281281
{
282-
"error": "access_denied",
283-
"error_description": "The user revoked access to the app.",
282+
"error": "invalid_grant",
283+
"error_description": "AADB2C90129: The provided grant has been revoked. Please reauthenticate and try again.\r\nCorrelation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-xx xx:xx:xxZ\r\n",
284284
}
285285
```
286286

@@ -318,4 +318,4 @@ To set the required ID Token in logout requests, see [Configure session behavior
318318

319319
## Next steps
320320

321-
- Learn more about [Azure AD B2C session](session-behavior.md).
321+
- Learn more about [Azure AD B2C session](session-behavior.md).

articles/aks/workload-identity-deploy-cluster.md

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ az aks update -g "${RESOURCE_GROUP}" -n myAKSCluster --enable-oidc-issuer --enab
6666
To get the OIDC Issuer URL and save it to an environmental variable, run the following command. Replace the default value for the arguments `-n`, which is the name of the cluster:
6767

6868
```bash
69-
export AKS_OIDC_ISSUER="$(az aks show -n myAKSCluster -g "${RESOURCE_GROUP}" --query "oidcIssuerProfile.issuerUrl" -otsv)"
69+
export AKS_OIDC_ISSUER="$(az aks show -n myAKSCluster -g "${RESOURCE_GROUP}" --query "oidcIssuerProfile.issuerUrl" -o tsv)"
7070
```
7171

7272
The variable should contain the Issuer URL similar to the following example:
7373

7474
```output
75-
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/
75+
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/
7676
```
7777

78-
By default, the Issuer is set to use the base URL `https://{region}.oic.prod-aks.azure.com/{uuid}`, where the value for `{region}` matches the location the AKS cluster is deployed in. The value `{uuid}` represents the OIDC key.
78+
By default, the Issuer is set to use the base URL `https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}`, where the value for `{region}` matches the location the AKS cluster is deployed in. The value `{uuid}` represents the OIDC key.
7979

8080
## Create a managed identity
8181

@@ -88,7 +88,7 @@ az identity create --name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${R
8888
Next, let's create a variable for the managed identity ID.
8989

9090
```bash
91-
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RESOURCE_GROUP}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -otsv)"
91+
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RESOURCE_GROUP}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -o tsv)"
9292
```
9393

9494
## Create Kubernetes service account
@@ -116,7 +116,7 @@ EOF
116116
The following output resembles successful creation of the identity:
117117

118118
```output
119-
Serviceaccount/workload-identity-sa created
119+
serviceaccount/workload-identity-sa created
120120
```
121121

122122
## Establish federated identity credential
@@ -139,33 +139,21 @@ cat <<EOF | kubectl apply -f -
139139
apiVersion: v1
140140
kind: Pod
141141
metadata:
142-
name: quick-start
142+
name: your-pod
143143
namespace: "${SERVICE_ACCOUNT_NAMESPACE}"
144144
labels:
145145
azure.workload.identity/use: "true"
146146
spec:
147147
serviceAccountName: "${SERVICE_ACCOUNT_NAME}"
148+
containers:
149+
- image: <your image>
150+
name: <containerName>
148151
EOF
149152
```
150153

151154
> [!IMPORTANT]
152155
> Ensure your application pods using workload identity have added the following label `azure.workload.identity/use: "true"` to your pod spec, otherwise the pods fail after their restarted.
153156
154-
```bash
155-
kubectl apply -f <your application>
156-
```
157-
158-
To check whether all properties are injected properly by the webhook, use the [kubectl describe][kubectl-describe] command:
159-
160-
```bash
161-
kubectl describe pod containerName
162-
```
163-
164-
To verify that pod is able to get a token and access the resource, use the kubectl logs command:
165-
166-
```bash
167-
kubectl logs containerName
168-
```
169157

170158
## Optional - Grant permissions to access Azure Key Vault
171159

@@ -181,20 +169,82 @@ You can retrieve this information using the Azure CLI command: [az keyvault list
181169
1. Set an access policy for the managed identity to access secrets in your Key Vault by running the following commands:
182170

183171
```azurecli-interactive
184-
export RESOURCE_GROUP="myResourceGroup"
185-
export USER_ASSIGNED_IDENTITY_NAME="myIdentity"
172+
export KEYVAULT_RESOURCE_GROUP="myResourceGroup"
186173
export KEYVAULT_NAME="myKeyVault"
187-
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RESOURCE_GROUP}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -otsv)"
174+
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RESOURCE_GROUP}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -o tsv)"
188175
189176
az keyvault set-policy --name "${KEYVAULT_NAME}" --secret-permissions get --spn "${USER_ASSIGNED_CLIENT_ID}"
190177
```
191178
179+
2. Create a secret in Key Vault:
180+
181+
```azurecli-interactive
182+
export KEYVAULT_SECRET_NAME="my-secret"
183+
184+
az keyvault secret set --vault-name "${KEYVAULT_NAME}" \
185+
--name "${KEYVAULT_SECRET_NAME}" \
186+
--value "Hello\!"
187+
```
188+
189+
3. Export Key Vault URL:
190+
```azurecli-interactive
191+
export KEYVAULT_URL="$(az keyvault show -g ${KEYVAULT_RESOURCE_GROUP} -n ${KEYVAULT_NAME} --query properties.vaultUri -o tsv)"
192+
```
193+
194+
4. Deploy a pod that references the service account and Key Vault URL above:
195+
196+
```yml
197+
cat <<EOF | kubectl apply -f -
198+
apiVersion: v1
199+
kind: Pod
200+
metadata:
201+
name: quick-start
202+
namespace: ${SERVICE_ACCOUNT_NAMESPACE}
203+
labels:
204+
azure.workload.identity/use: "true"
205+
spec:
206+
serviceAccountName: ${SERVICE_ACCOUNT_NAME}
207+
containers:
208+
- image: ghcr.io/azure/azure-workload-identity/msal-go
209+
name: oidc
210+
env:
211+
- name: KEYVAULT_URL
212+
value: ${KEYVAULT_URL}
213+
- name: SECRET_NAME
214+
value: ${KEYVAULT_SECRET_NAME}
215+
nodeSelector:
216+
kubernetes.io/os: linux
217+
EOF
218+
```
219+
220+
To check whether all properties are injected properly by the webhook, use the [kubectl describe][kubectl-describe] command:
221+
222+
```bash
223+
kubectl describe pod quick-start | grep "SECRET_NAME:"
224+
```
225+
226+
If successful, the output should be similar to the following:
227+
```bash
228+
SECRET_NAME: ${KEYVAULT_SECRET_NAME}
229+
```
230+
231+
To verify that pod is able to get a token and access the resource, use the kubectl logs command:
232+
233+
```bash
234+
kubectl logs quick-start
235+
```
236+
237+
If successful, the output should be similar to the following:
238+
```bash
239+
I0114 10:35:09.795900 1 main.go:63] "successfully got secret" secret="Hello\\!"
240+
```
241+
192242
## Disable workload identity
193243

194244
To disable the Microsoft Entra Workload ID on the AKS cluster where it's been enabled and configured, you can run the following command:
195245

196246
```azurecli-interactive
197-
az aks update --resource-group myResourceGroup --name myAKSCluster --disable-workload-identity
247+
az aks update --resource-group "${RESOURCE_GROUP}" --name myAKSCluster --disable-workload-identity
198248
```
199249

200250
## Next steps

articles/azure-monitor/app/convert-classic-resource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Use the following script to identify your Application Insights resources by inge
130130
#### Example
131131

132132
```azurecli
133-
Get-AzApplicationInsights -SubscriptionId '1234abcd-5678-efgh-9012-ijklmnopqrst' | Format-Table -Property Name, IngestionMode, Id, @{label='Type';expression={
133+
Get-AzApplicationInsights -SubscriptionId 'Your Subscription ID' | Format-Table -Property Name, IngestionMode, Id, @{label='Type';expression={
134134
if ([string]::IsNullOrEmpty($_.IngestionMode)) {
135135
'Unknown'
136136
} elseif ($_.IngestionMode -eq 'LogAnalytics') {

articles/communication-services/concepts/service-limits.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,18 @@ The following timeouts apply to the Communication Services Calling SDKs:
193193

194194
For more information about the voice and video calling SDK and service, see the [calling SDK overview](./voice-video-calling/calling-sdk-features.md) page or [known issues](./known-issues.md).
195195

196+
## Job Router
197+
When sending or receiving a high volume of requests, you might receive a ```ThrottleLimitExceededException``` error. This error indicates you're hitting the service limitations, and your requests will be dropped until the token of bucket to handle requests is replenished after a certain time.
198+
199+
Rate Limits for Job Router:
200+
201+
|Operation|Scope|Timeframe (seconds)| Limit (number of requests) | Timeout in seconds|
202+
|---------|-----|-------------|-------------------|-------------------------|
203+
|General Requests|Per Resource|10|1000|10|
204+
205+
### Action to take
206+
If you need to send a volume of messages that exceeds the rate limits, email us at [email protected].
207+
196208
## Teams Interoperability and Microsoft Graph
197209
Using a Teams interoperability scenario, you'll likely use some Microsoft Graph APIs to create [meetings](/graph/cloud-communications-online-meetings).
198210

articles/communication-services/how-tos/event-grid/local-testing-event-grid.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,17 @@ Testing Event Grid triggered Azure Functions locally can be complicated. You don
2020
- Install [Postman](https://www.postman.com/downloads/).
2121
- Have a running Azure Function that can be triggered by Event Grid. If you don't have one, you can follow the [quickstart](../../../azure-functions/functions-bindings-event-grid-trigger.md?tabs=in-process%2Cextensionv3&pivots=programming-language-javascript) to create one.
2222

23-
The Azure Function can be running either in Azure if you want to test it with some test events or if you want to test the entire flow locally (press `F5` in Visual Studio Code to run it locally). If you want to test the entire flow locally, you need to use [ngrok](https://ngrok.com/) to hook your locally running Azure Function. Configure ngrok by running the command:
23+
The Azure Function can be running either in Azure if you want to test it with some test events or if you want to test the entire flow locally (press `F5` in Visual Studio Code to run it locally). If you want to test the entire flow with an externally triggered webhook, you need to use [ngrok](https://ngrok.com/) to expose your locally running Azure Function
24+
to the public, allowing it to be triggered by internet sources (as an example from Azure Event WebHooks). Configure ngrok by running the command:
2425

2526
```bash
2627

2728
ngrok http 7071
2829

30+
```
31+
It is worth remembering that exposing development resources publicly might not be considered as secure. That is why you can also run the entire workflow locally without ngrok by invoking requests to:
32+
```
33+
http://localhost:7071/runtime/webhooks/EventGrid?functionName={functionname}
2934
```
3035

3136
## Configure Postman

articles/communication-services/quickstarts/includes/relay-token-python.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: include file
33
description: include file
44
services: azure-communication-services
5-
author: rahulva
5+
author: rahulva-msft
66
manager: shahen
77
ms.service: azure-communication-services
88
ms.subservice: azure-communication-services
@@ -65,7 +65,7 @@ Add this code inside the `try` block:
6565
```python
6666

6767
# You can find your endpoint and access token from your resource in the Azure Portal
68-
connection_str = "endpoint=ENDPOINT;accessKey=KEY"
68+
connection_string = "endpoint=ENDPOINT;accessKey=KEY"
6969
endpoint = "https://<RESOURCE_NAME>.communication.azure.com"
7070

7171
# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have
@@ -75,8 +75,8 @@ identity_client = CommunicationIdentityClient(endpoint, DefaultAzureCredential()
7575
relay_client = CommunicationRelayClient(endpoint, DefaultAzureCredential())
7676

7777
#You can also authenticate using your connection string
78-
identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string)
79-
relay_client = CommunicationRelayClient.from_connection_string(self.connection_string)
78+
identity_client = CommunicationIdentityClient.from_connection_string(connection_string)
79+
relay_client = CommunicationRelayClient.from_connection_string(connection_string)
8080
```
8181

8282
## Create a user from identity
@@ -91,7 +91,7 @@ user = identity_client.create_user()
9191
Call the Azure Communication token service to exchange the user access token for a TURN service token
9292

9393
```python
94-
relay_configuration = relay_client.get_relay_configuration()
94+
relay_configuration = relay_client.get_relay_configuration(user=user)
9595

9696
for iceServer in relay_configuration.ice_servers:
9797
assert iceServer.username is not None

articles/machine-learning/how-to-use-pipeline-component.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ In this article, you'll learn how to use pipeline component in Azure Machine Lea
3333

3434
- Understand how to use Azure Machine Learning pipeline with [CLI v2](how-to-create-component-pipelines-cli.md) and [SDK v2](how-to-create-component-pipeline-python.md).
3535
- Understand what is [component](concept-component.md) and how to use component in Azure Machine Learning pipeline.
36-
- Understand what is a [Azure Machine Learning pipeline](concept-ml-pipelines.md)
36+
- Understand what is an [Azure Machine Learning pipeline](concept-ml-pipelines.md)
3737

3838
## The difference between pipeline job and pipeline component
3939

articles/mysql/flexible-server/concepts-networking-vnet.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ You can then use the Azure Database for MySQL flexible server servername (FQDN)
115115

116116
- Public endpoint (or public IP or DNS) - An Azure Database for MySQL flexible server instance deployed to a virtual network can't have a public endpoint.
117117
- After the Azure Database for MySQL flexible server instance is deployed to a virtual network and subnet, you can't move it to another virtual network or subnet. You can't move the virtual network into another resource group or subscription.
118+
- Private DNS integration config cannot be changed once deployed.
118119
- Subnet size (address spaces) can't be increased once resources exist in the subnet.
119120

120121
## Next steps

articles/sap/monitor/provider-linux.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ For example - https://github.com/prometheus/node_exporter/releases/download/v1.6
4747
# Change to the directory where you want to install the node exporter.
4848

4949
wget https://github.com/prometheus/node_exporter/releases/download/v<xxx>/node_exporter-<xxx>.linux-amd64.tar.gz
50-
tar xvfz node_exporter-<xxx>.linux-amd64.tar.gz
50+
tar xzvf node_exporter-<xxx>.linux-amd64.tar.gz
5151
cd node_exporter-<xxx>linux-amd64
5252
nohup ./node_exporter --web.listen-address=":9100" &
5353
```

0 commit comments

Comments
 (0)