Cmdlets for Azure Cosmos DB

Build 23.0.8839

Using Azure Service Principal

Azure Service Principal

Azure Service Principal is role-based application-based authentication. This means that authentication is done per application, rather than per user. All tasks taken by the app are done without a default user context, but based on the assigned roles. The application access to the resources is controlled through the assigned roles' permissions.

To use Azure Service Principal authentication, you must:

  • Set up the ability to assign a role to the authentication application. To do this, create a custom OAuth AD application, as described in Creating a Custom OAuth Application.
  • Register an application with an Azure AD tenant, to create a new service principal that can be used with the role-based access control, to access resources in your subscription.

Do the following:

  1. Create a custom Azure AD application, as described in Creating a Custom OAuth Application.
  2. Assign a role to the application:
    1. Use the search bar to search for the Subscriptions service.
    2. Open the Subscriptions page.
    3. Select the subscription to which to assign the application.
    4. Open the Access control (IAM).
    5. Select Add > Add role assignment. Azure Cosmos DB opens the Add role assignment page.
    6. Assign your custom Azure AD application the role of Owner.

Client Credentials

Client credentials refers to a flow in OAuth where there is no direct user authentication taking place. Instead, credentials are created for just the application itself. All tasks taken by the application are done without a default user context. This makes the authentication flow a bit different from the standard flow.

All permissions related to the client OAuth flow require admin consent. This means you cannot use the application embedded with the CData Cmdlets PowerShell Module for Azure Cosmos DB in the client OAuth flow. You must create your own OAuth application to use client credentials. See Creating a Custom OAuth Application for more information.

In your App Registration in portal.azure.com, navigate to API Permissions and select the Microsoft Graph permissions. There are two distinct sets of permissions: Delegated permissions and Application permissions. The permissions used during client credential authentication are under "Application Permissions".

Select the permissions you require for your integration. After you do this, set the following connection properties:

  • AuthScheme: AzureServicePrincipal.
  • InitiateOAuth: GETANDREFRESH. You can use InitiateOAuth to avoid repeating the OAuth exchange and manually setting the OAuthAccessToken.
  • AzureTenant: The tenant you wish to connect to.
  • OAuthGrantType: CLIENT.
  • OAuthClientId: The client Id in your application settings.
  • OAuthClientSecret: The client secret in your application settings.

Authentication with client credentials takes place automatically like any other connection, except there is no window opened prompting the user. Because there is no user context, there is no need for a browser popup. Connections will take place and be handled internally.

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839