Creates or updates authorization.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/authorizationProviders/{authorizationProviderId}/authorizations/{authorizationId}?api-version=2022-08-01
URI Parameters
Name |
In |
Required |
Type |
Description |
authorizationId
|
path |
True
|
string
|
Identifier of the authorization.
Regex pattern: ^[^*#&+:<>?]+$
|
authorizationProviderId
|
path |
True
|
string
|
Identifier of the authorization provider.
Regex pattern: ^[^*#&+:<>?]+$
|
resourceGroupName
|
path |
True
|
string
|
The name of the resource group. The name is case insensitive.
|
serviceName
|
path |
True
|
string
|
The name of the API Management service.
Regex pattern: ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$
|
subscriptionId
|
path |
True
|
string
|
The ID of the target subscription.
|
api-version
|
query |
True
|
string
|
The API version to use for this operation.
|
Name |
Required |
Type |
Description |
If-Match
|
|
string
|
ETag of the Entity. Not required when creating an entity, but required when updating an entity.
|
Request Body
Name |
Type |
Description |
properties.authorizationType
|
AuthorizationType
|
Authorization type options
|
properties.error
|
AuthorizationError
|
|
properties.oauth2grantType
|
OAuth2GrantType
|
OAuth2 grant type options
|
properties.parameters
|
object
|
Authorization parameters
|
properties.status
|
string
|
Status of the Authorization
|
Responses
Name |
Type |
Description |
200 OK
|
AuthorizationContract
|
The existing Authorization was successfully updated.
Headers
ETag: string
|
201 Created
|
AuthorizationContract
|
Authorization was successfully created.
Headers
ETag: string
|
Other Status Codes
|
ErrorResponse
|
Error response describing why the operation failed.
|
Security
azure_auth
Azure Active Directory OAuth2 Flow.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name |
Description |
user_impersonation
|
impersonate your user account
|
Examples
ApiManagementCreateAuthorizationAADAuthCode
Sample request
PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithauthcode/authorizations/authz2?api-version=2022-08-01
{
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "AuthorizationCode"
}
}
import com.azure.resourcemanager.apimanagement.models.AuthorizationType;
import com.azure.resourcemanager.apimanagement.models.OAuth2GrantType;
import java.util.HashMap;
import java.util.Map;
/** Samples for Authorization CreateOrUpdate. */
public final class Main {
/*
* x-ms-original-file: specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADAuthCode.json
*/
/**
* Sample code: ApiManagementCreateAuthorizationAADAuthCode.
*
* @param manager Entry point to ApiManagementManager.
*/
public static void apiManagementCreateAuthorizationAADAuthCode(
com.azure.resourcemanager.apimanagement.ApiManagementManager manager) {
manager
.authorizations()
.define("authz2")
.withExistingAuthorizationProvider("rg1", "apimService1", "aadwithauthcode")
.withAuthorizationType(AuthorizationType.OAUTH2)
.withOAuth2GrantType(OAuth2GrantType.AUTHORIZATION_CODE)
.create();
}
// Use "Map.of" if available
@SuppressWarnings("unchecked")
private static <T> Map<String, T> mapOf(Object... inputs) {
Map<String, T> map = new HashMap<>();
for (int i = 0; i < inputs.length; i += 2) {
String key = (String) inputs[i];
T value = (T) inputs[i + 1];
map.put(key, value);
}
return map;
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from typing import Any, IO, Union
from azure.identity import DefaultAzureCredential
from azure.mgmt.apimanagement import ApiManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-apimanagement
# USAGE
python api_management_create_authorization_aad_auth_code.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ApiManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subid",
)
response = client.authorization.create_or_update(
resource_group_name="rg1",
service_name="apimService1",
authorization_provider_id="aadwithauthcode",
authorization_id="authz2",
parameters={"properties": {"authorizationType": "OAuth2", "oauth2grantType": "AuthorizationCode"}},
)
print(response)
# x-ms-original-file: specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADAuthCode.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armapimanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/apimanagement/armapimanagement/v2"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/4cd95123fb961c68740565a1efcaa5e43bd35802/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADAuthCode.json
func ExampleAuthorizationClient_CreateOrUpdate_apiManagementCreateAuthorizationAadAuthCode() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armapimanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAuthorizationClient().CreateOrUpdate(ctx, "rg1", "apimService1", "aadwithauthcode", "authz2", armapimanagement.AuthorizationContract{
Properties: &armapimanagement.AuthorizationContractProperties{
AuthorizationType: to.Ptr(armapimanagement.AuthorizationTypeOAuth2),
OAuth2GrantType: to.Ptr(armapimanagement.OAuth2GrantTypeAuthorizationCode),
},
}, &armapimanagement.AuthorizationClientCreateOrUpdateOptions{IfMatch: nil})
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AuthorizationContract = armapimanagement.AuthorizationContract{
// Name: to.Ptr("authz2"),
// Type: to.Ptr("Microsoft.ApiManagement/service/authorizationProviders/authorizations"),
// ID: to.Ptr("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithauthcode/authorizations/authz2"),
// Properties: &armapimanagement.AuthorizationContractProperties{
// AuthorizationType: to.Ptr(armapimanagement.AuthorizationTypeOAuth2),
// Error: &armapimanagement.AuthorizationError{
// Code: to.Ptr("Unauthenticated"),
// Message: to.Ptr("This connection is not authenticated."),
// },
// OAuth2GrantType: to.Ptr(armapimanagement.OAuth2GrantTypeAuthorizationCode),
// Status: to.Ptr("Error"),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ApiManagementClient } = require("@azure/arm-apimanagement");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Creates or updates authorization.
*
* @summary Creates or updates authorization.
* x-ms-original-file: specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADAuthCode.json
*/
async function apiManagementCreateAuthorizationAadAuthCode() {
const subscriptionId = process.env["APIMANAGEMENT_SUBSCRIPTION_ID"] || "subid";
const resourceGroupName = process.env["APIMANAGEMENT_RESOURCE_GROUP"] || "rg1";
const serviceName = "apimService1";
const authorizationProviderId = "aadwithauthcode";
const authorizationId = "authz2";
const parameters = {
authorizationType: "OAuth2",
oAuth2GrantType: "AuthorizationCode",
};
const credential = new DefaultAzureCredential();
const client = new ApiManagementClient(credential, subscriptionId);
const result = await client.authorization.createOrUpdate(
resourceGroupName,
serviceName,
authorizationProviderId,
authorizationId,
parameters
);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithauthcode/authorizations/authz2",
"type": "Microsoft.ApiManagement/service/authorizationProviders/authorizations",
"name": "authz2",
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "AuthorizationCode",
"status": "Error",
"error": {
"code": "Unauthenticated",
"message": "This connection is not authenticated."
}
}
}
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithauthcode/authorizations/authz2",
"type": "Microsoft.ApiManagement/service/authorizationProviders/authorizations",
"name": "authz2",
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "AuthorizationCode",
"status": "Error",
"error": {
"code": "Unauthenticated",
"message": "This connection is not authenticated."
}
}
}
ApiManagementCreateAuthorizationAADClientCred
Sample request
PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithclientcred/authorizations/authz1?api-version=2022-08-01
{
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "AuthorizationCode",
"parameters": {
"clientId": "53790925-fdd3-4b80-bc7a-4c3aaf25801d",
"clientSecret": "xxxxxxxxxxxxxxx~xxxxxxxxx"
}
}
}
import com.azure.resourcemanager.apimanagement.models.AuthorizationType;
import com.azure.resourcemanager.apimanagement.models.OAuth2GrantType;
import java.util.HashMap;
import java.util.Map;
/** Samples for Authorization CreateOrUpdate. */
public final class Main {
/*
* x-ms-original-file: specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADClientCred.json
*/
/**
* Sample code: ApiManagementCreateAuthorizationAADClientCred.
*
* @param manager Entry point to ApiManagementManager.
*/
public static void apiManagementCreateAuthorizationAADClientCred(
com.azure.resourcemanager.apimanagement.ApiManagementManager manager) {
manager
.authorizations()
.define("authz1")
.withExistingAuthorizationProvider("rg1", "apimService1", "aadwithclientcred")
.withAuthorizationType(AuthorizationType.OAUTH2)
.withOAuth2GrantType(OAuth2GrantType.AUTHORIZATION_CODE)
.withParameters(
mapOf("clientId", "53790925-fdd3-4b80-bc7a-4c3aaf25801d", "clientSecret", "fakeTokenPlaceholder"))
.create();
}
// Use "Map.of" if available
@SuppressWarnings("unchecked")
private static <T> Map<String, T> mapOf(Object... inputs) {
Map<String, T> map = new HashMap<>();
for (int i = 0; i < inputs.length; i += 2) {
String key = (String) inputs[i];
T value = (T) inputs[i + 1];
map.put(key, value);
}
return map;
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
from typing import Any, IO, Union
from azure.identity import DefaultAzureCredential
from azure.mgmt.apimanagement import ApiManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-apimanagement
# USAGE
python api_management_create_authorization_aad_client_cred.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ApiManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subid",
)
response = client.authorization.create_or_update(
resource_group_name="rg1",
service_name="apimService1",
authorization_provider_id="aadwithclientcred",
authorization_id="authz1",
parameters={
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "AuthorizationCode",
"parameters": {
"clientId": "53790925-fdd3-4b80-bc7a-4c3aaf25801d",
"clientSecret": "xxxxxxxxxxxxxxx~xxxxxxxxx",
},
}
},
)
print(response)
# x-ms-original-file: specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADClientCred.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armapimanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/apimanagement/armapimanagement/v2"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/4cd95123fb961c68740565a1efcaa5e43bd35802/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADClientCred.json
func ExampleAuthorizationClient_CreateOrUpdate_apiManagementCreateAuthorizationAadClientCred() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armapimanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAuthorizationClient().CreateOrUpdate(ctx, "rg1", "apimService1", "aadwithclientcred", "authz1", armapimanagement.AuthorizationContract{
Properties: &armapimanagement.AuthorizationContractProperties{
AuthorizationType: to.Ptr(armapimanagement.AuthorizationTypeOAuth2),
OAuth2GrantType: to.Ptr(armapimanagement.OAuth2GrantTypeAuthorizationCode),
Parameters: map[string]*string{
"clientId": to.Ptr("53790925-fdd3-4b80-bc7a-4c3aaf25801d"),
"clientSecret": to.Ptr("FcJkQ3iPSaKAQRA7Ft8Q~fZ1X5vKmqzUAfJagcJ8"),
},
},
}, &armapimanagement.AuthorizationClientCreateOrUpdateOptions{IfMatch: nil})
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AuthorizationContract = armapimanagement.AuthorizationContract{
// Name: to.Ptr("authz1"),
// Type: to.Ptr("Microsoft.ApiManagement/service/authorizationProviders/authorizations"),
// ID: to.Ptr("/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithclientcred/authorizations/authz1"),
// Properties: &armapimanagement.AuthorizationContractProperties{
// AuthorizationType: to.Ptr(armapimanagement.AuthorizationTypeOAuth2),
// OAuth2GrantType: to.Ptr(armapimanagement.OAuth2GrantTypeClientCredentials),
// Parameters: map[string]*string{
// "clientId": to.Ptr("53790925-fdd3-4b80-bc7a-4c3aaf25801d"),
// },
// Status: to.Ptr("Connected"),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ApiManagementClient } = require("@azure/arm-apimanagement");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Creates or updates authorization.
*
* @summary Creates or updates authorization.
* x-ms-original-file: specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/examples/ApiManagementCreateAuthorizationAADClientCred.json
*/
async function apiManagementCreateAuthorizationAadClientCred() {
const subscriptionId = process.env["APIMANAGEMENT_SUBSCRIPTION_ID"] || "subid";
const resourceGroupName = process.env["APIMANAGEMENT_RESOURCE_GROUP"] || "rg1";
const serviceName = "apimService1";
const authorizationProviderId = "aadwithclientcred";
const authorizationId = "authz1";
const parameters = {
authorizationType: "OAuth2",
oAuth2GrantType: "AuthorizationCode",
parameters: {
clientId: "",
clientSecret: "",
},
};
const credential = new DefaultAzureCredential();
const client = new ApiManagementClient(credential, subscriptionId);
const result = await client.authorization.createOrUpdate(
resourceGroupName,
serviceName,
authorizationProviderId,
authorizationId,
parameters
);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithclientcred/authorizations/authz1",
"type": "Microsoft.ApiManagement/service/authorizationProviders/authorizations",
"name": "authz1",
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "ClientCredentials",
"parameters": {
"clientId": "53790925-fdd3-4b80-bc7a-4c3aaf25801d"
},
"status": "Connected"
}
}
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/authorizationProviders/aadwithclientcred/authorizations/authz1",
"type": "Microsoft.ApiManagement/service/authorizationProviders/authorizations",
"name": "authz1",
"properties": {
"authorizationType": "OAuth2",
"oauth2grantType": "ClientCredentials",
"parameters": {
"clientId": "53790925-fdd3-4b80-bc7a-4c3aaf25801d"
},
"status": "Connected"
}
}
Definitions
AuthorizationContract
Authorization contract.
Name |
Type |
Description |
id
|
string
|
Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
|
name
|
string
|
The name of the resource
|
properties.authorizationType
|
AuthorizationType
|
Authorization type options
|
properties.error
|
AuthorizationError
|
|
properties.oauth2grantType
|
OAuth2GrantType
|
OAuth2 grant type options
|
properties.parameters
|
object
|
Authorization parameters
|
properties.status
|
string
|
Status of the Authorization
|
type
|
string
|
The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
|
AuthorizationError
Authorization error details.
Name |
Type |
Description |
code
|
string
|
Error code
|
message
|
string
|
Error message
|
AuthorizationType
Authorization type options
Name |
Type |
Description |
OAuth2
|
string
|
OAuth2 authorization type
|
ErrorFieldContract
Error Field contract.
Name |
Type |
Description |
code
|
string
|
Property level error code.
|
message
|
string
|
Human-readable representation of property-level error.
|
target
|
string
|
Property name.
|
ErrorResponse
Error Response.
Name |
Type |
Description |
error.code
|
string
|
Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response.
|
error.details
|
ErrorFieldContract[]
|
The list of invalid fields send in request, in case of validation error.
|
error.message
|
string
|
Human-readable representation of the error.
|
OAuth2GrantType
OAuth2 grant type options
Name |
Type |
Description |
AuthorizationCode
|
string
|
Authorization Code grant
|
ClientCredentials
|
string
|
Client Credential grant
|