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
Goal: Migrate all databases to only leverage managed identity by default.
Some overall design considerations:
Token vs. passwords
With managed identity, a key exchange is performed to retrieve a short-lived access token. This is different than traditional database passwords which is a pre-negotiated, long-lived key.
This will introduce challenges in the app code consumption, especially in zero-downtime access scenarios.
Ensure that your client application sends a new Microsoft Entra token at least three minutes before token expiry to avoid connection disruption.
When you call the Redis server AUTH command periodically, consider adding a random delay so that the AUTH commands are staggered. In this way, your Redis server doesn't receive too many AUTH commands at the same time.
The access token validity is anywhere between 5 minutes to 60 minutes. We recommend you get the access token before initiating the sign-in to Azure Database for MySQL flexible server.
The user is unable to use the existing MongoDB / NoSQL libraries. They must now import CosmosClient and connect to the client. They wouldn't be able, for example, directly use a MongoDB client. It breaks the technology abstraction.
Deployment scripts required
Certain database resource providers require a direct connection to the database to provision Entra objects enabled for Managed identity. This means that an ad-hoc script/operation is required. If we want a fully managed experience, this feature will then depend on operations / scripts as a pre-requisite.
Examples
For Postgres, the following execution statement is required:
We will likely have to support key-based connections. This is especially important when using existing Azure resources. In these cases, the app developer will not be able to grant themselves permissions to the database.
The important consideration here:
Managed identity is configured on the database server. If the database server isn't fully exposed in configuration, how would a user describe this gesture?
The text was updated successfully, but these errors were encountered:
Goal: Migrate all databases to only leverage managed identity by default.
Some overall design considerations:
Token vs. passwords
With managed identity, a key exchange is performed to retrieve a short-lived access token. This is different than traditional database passwords which is a pre-negotiated, long-lived key.
This will introduce challenges in the app code consumption, especially in zero-downtime access scenarios.
Examples
Azure Cache for Redis:
Postgres,
This password would expire after some time.
MySql:
Cosmos:
The user is unable to use the existing MongoDB / NoSQL libraries. They must now import
CosmosClient
and connect to the client. They wouldn't be able, for example, directly use a MongoDB client. It breaks the technology abstraction.Deployment scripts required
Certain database resource providers require a direct connection to the database to provision Entra objects enabled for Managed identity. This means that an ad-hoc script/operation is required. If we want a fully managed experience, this feature will then depend on operations / scripts as a pre-requisite.
Examples
For Postgres, the following execution statement is required:
For MySql,
CREATE AADUSER '[email protected]';
Keyless vs. Key-based connection
We will likely have to support key-based connections. This is especially important when using existing Azure resources. In these cases, the app developer will not be able to grant themselves permissions to the database.
The important consideration here:
Managed identity is configured on the database server. If the database server isn't fully exposed in configuration, how would a user describe this gesture?
The text was updated successfully, but these errors were encountered: